Snap for 11510257 from 9b3a58463c0698ecd12f83e0375aeeea0077951a to simpleperf-release

Change-Id: Iee045a0470ffd0e82855b731cf66b6b5a0cd566e
diff --git a/.gitattributes b/.gitattributes
index ca85b46..41eae37 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,11 @@
+# ~~~
+# Copyright 2018-2023 The Khronos Group Inc.
+# Copyright 2018-2023 Valve Corporation
+# Copyright 2018-2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ~~~
+
 # See https://git-scm.com/docs/gitattributes
 # See https://help.github.com/articles/dealing-with-line-endings/
 
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index d177bcc..df7450d 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -11,12 +11,18 @@
 
 Vulkan-Headers exists as a publishing mechanism for headers and related material sourced from multiple other repositories. If you have a problem with that material, it should *not* be reported here, but in the appropriate repository:
 
-- https://github.com/KhronosGroup/Vulkan-Docs - C headers, XML, validusage.json, and generation scripts
--  https://github.com/KhronosGroup/Vulkan-Hpp - C++ headers
-- This repository - Repository structure, management, and build system *only*
+This repository is responsible for the following files
 
-See the repository README for more details.
-
+* BUILD.gn
+* BUILD.md
+* CMakeLists.txt
+* tests/*
+* CODE_OF_CONDUCT.md
+* LICENSE.txt
+* README.md
+* Non-API headers
+  * include/vulkan/vk_icd.h
+  * include/vulkan/vk_layer.h
 
 **Describe the bug**
 
@@ -30,3 +36,17 @@
 
 **Additional context**
 Add any other context about the problem here.
+
+**Code**
+
+<details>
+<summary>code or terminal output</summary>
+
+```cpp
+int main()
+{
+    return 0;
+}
+```
+
+</details>
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..b25b0eb
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,12 @@
+# ~~~
+# Copyright 2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ~~~
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "weekly"
+    open-pull-requests-limit: 3
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 0000000..8090943
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,18 @@
+<!-- Please note when contributing what files this repository actually is responsible for.
+
+Vulkan-Headers exists as a publishing mechanism for headers and related material sourced from multiple other repositories. If you have a problem with that material, it should *not* be reported here, but in the appropriate repository:
+
+This repository is responsible for the following files
+
+* BUILD.gn
+* BUILD.md
+* CMakeLists.txt
+* tests/*
+* CODE_OF_CONDUCT.md
+* LICENSE.txt
+* README.md
+* Non-API headers
+  * include/vulkan/vk_icd.h
+  * include/vulkan/vk_layer.h
+
+-->
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ff621b8
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,41 @@
+# Copyright 2022-2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+name: ci
+
+on:
+  push:
+  pull_request:
+    branches:
+    - main
+
+env:
+  CMAKE_GENERATOR: Ninja
+            
+permissions:
+    contents: read
+
+jobs:
+  cmake:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ ubuntu-latest, windows-latest, macos-latest ]
+        cmake-version: [ '3.15', 'latest']
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: ${{ matrix.cmake-version }} 
+      - uses: ilammy/msvc-dev-cmd@v1
+      - run: cmake -S . -B build -D BUILD_TESTS=ON -G Ninja
+      - run: ctest --output-on-failure
+        working-directory: build
+
+  reuse:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v4
+    - name: REUSE Compliance Check
+      uses: fsfe/reuse-action@v2
diff --git a/.gitignore b/.gitignore
index 61df001..7f6900b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,11 @@
+# ~~~
+# Copyright 2018-2023 The Khronos Group Inc.
+# Copyright 2018-2023 Valve Corporation
+# Copyright 2018-2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ~~~
+
 # Python cache
 __pycache__
 *.pyc
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000..e3efbfc
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,15 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Vulkan-Headers
+Source: https://github.com/KhronosGroup/Vulkan-Headers
+
+Files: registry/profiles/VP_KHR_roadmap_2022.json
+Copyright: 2022-2023 The Khronos Group Inc.
+License: Apache-2.0
+
+Files: registry/validusage.json
+Copyright: 2018-2023 The Khronos Group Inc.
+License: Apache-2.0
+
+Files: .github/ISSUE_TEMPLATE/bug_report.md .github/pull_request_template.md
+Copyright: 2022-2023 The Khronos Group Inc.
+License: Apache-2.0
diff --git a/Android.bp b/Android.bp
index 34dbbc3..fa25ef3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -40,7 +40,7 @@
         "SPDX-license-identifier-BSD",
     ],
     license_text: [
-        "LICENSE.txt",
+        "LICENSE.md",
     ],
 }
 
@@ -49,10 +49,7 @@
     from: "include",
     to: "",
     srcs: [
-        "include/vulkan/vk_platform.h",
-        "include/vulkan/vulkan.h",
-        "include/vulkan/vulkan_core.h",
-        "include/vulkan/vulkan_android.h",
+        "include/**/*.h",
     ],
     license: "NOTICE",
 }
diff --git a/BUILD.gn b/BUILD.gn
index fe551f4..df1ba65 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1,17 +1,7 @@
-# Copyright (C) 2018-2019 The ANGLE Project Authors.
-# Copyright (C) 2019 LunarG, Inc.
+# Copyright 2018-2023 The ANGLE Project Authors.
+# Copyright 2019-2023 LunarG, Inc.
 #
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 
 import("//build_overrides/vulkan_headers.gni")
 
@@ -37,12 +27,23 @@
   if (is_fuchsia) {
     defines += [ "VK_USE_PLATFORM_FUCHSIA" ]
   }
-  if (is_mac) {
+  if (is_apple) {
     defines += [ "VK_USE_PLATFORM_METAL_EXT" ]
   }
+  if (is_mac) {
+    defines += [ "VK_USE_PLATFORM_MACOS_MVK" ]
+  }
+  if (is_ios) {
+    defines += [ "VK_USE_PLATFORM_IOS_MVK" ]
+  }
   if (defined(is_ggp) && is_ggp) {
     defines += [ "VK_USE_PLATFORM_GGP" ]
   }
+  if (is_clang) {
+    cflags = [
+      "-Wno-redundant-parens",
+    ]
+  }
 }
 
 # Vulkan headers only, no compiled sources.
@@ -51,12 +52,17 @@
     "include/vulkan/vk_icd.h",
     "include/vulkan/vk_layer.h",
     "include/vulkan/vk_platform.h",
-    "include/vulkan/vk_sdk_platform.h",
     "include/vulkan/vulkan.h",
     "include/vulkan/vulkan.hpp",
     "include/vulkan/vulkan_core.h",
     "include/vulkan/vulkan_screen.h",
+    "include/vk_video/vulkan_video_codec_h264std_decode.h",
+    "include/vk_video/vulkan_video_codec_h264std_encode.h",
+    "include/vk_video/vulkan_video_codec_h264std.h",
+    "include/vk_video/vulkan_video_codec_h265std_decode.h",
+    "include/vk_video/vulkan_video_codec_h265std_encode.h",
+    "include/vk_video/vulkan_video_codec_h265std.h",
+    "include/vk_video/vulkan_video_codecs_common.h",
   ]
   public_configs = [ ":vulkan_headers_config" ]
 }
-
diff --git a/BUILD.md b/BUILD.md
index 03d6b7c..a9ccd98 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -1,38 +1,29 @@
+<!--
+Copyright 2018-2023 The Khronos Group Inc.
+
+SPDX-License-Identifier: Apache-2.0
+-->
+
 # Build Instructions
 
-Instructions for building this repository on Windows, Linux, and MacOS.
+Instructions for building this repository.
 
-## Index
+```bash
+git clone https://github.com/KhronosGroup/Vulkan-Headers.git
 
-1. [Contributing](#contributing-to-the-repository)
-1. [Repository Content](#repository-content)
-1. [Repository Set-up](#repository-set-up)
-1. [Windows Build](#building-on-windows)
-1. [Linux Build](#building-on-linux)
-1. [MacOS Build](#building-on-macos)
+cd Vulkan-Headers/
 
-## Contributing to the Repository
+# Configure the project
+cmake -S . -B build/
 
-The contents of this repository are sourced primarily from the Khronos Vulkan
-API specification [repository](https://github.com/KhronosGroup/Vulkan-Docs).
-Please visit that repository for information on contributing.
+# Because Vulkan-Headers is header only we don't need to build anything.
+# Users can install it where they need to.
+cmake --install build --prefix build/install
+```
 
-## Repository Content
+See the official [CMake documentation](https://cmake.org/cmake/help/latest/index.html) for more information.
 
-This repository contains the Vulkan header files and the Vulkan API definition
-(registry) with its related files. This repository does not create libraries
-or executables.
-
-However, this repository contains CMake build configuration files to "install"
-the files from this repository to a specific install directory. For example,
-you can install the files to a system directory such as `/usr/local` on Linux.
-
-If you are building other Vulkan-related repositories such as
-[Vulkan-Loader](https://github.com/KhronosGroup/Vulkan-Loader),
-you need to build the install target of this repository and provide the
-resulting install directory to those repositories.
-
-### Installed Files
+## Installed Files
 
 The `install` target installs the following files under the directory
 indicated by *install_dir*:
@@ -44,224 +35,12 @@
 - *install_dir*`/share/vulkan/registry` : The registry files found in the
   `registry` directory of this repository
 
-### Usage in CMake
-
-The library provides a Config file for CMake, once installed it can be found via `find_package`.
-
-Which, when successful, will add library target called `Vulkan::Headers` which you can use via the usual `target_link_libraries` mechanism.
+## Usage in CMake
 
 ```cmake
 find_package(VulkanHeaders REQUIRED CONFIG)
 
 target_link_libraries(foobar PRIVATE Vulkan::Headers)
+
+message(STATUS "Vulkan Headers Version: ${VulkanHeaders_VERSION}")
 ```
-
-## Repository Set-Up
-
-### Download the Repository
-
-To create your local git repository:
-
-    git clone https://github.com/KhronosGroup/Vulkan-Headers.git
-
-### Repository Dependencies
-
-This repository does not depend on any other repositories.
-
-### Build and Install Directories
-
-A common convention is to place the build directory in the top directory of
-the repository with a name of `build` and place the install directory as a
-child of the build directory with the name `install`. The remainder of these
-instructions follow this convention, although you can use any name for these
-directories and place them in any location.
-
-## Building On Windows
-
-### Windows Development Environment Requirements
-
-- Windows
-  - Any Personal Computer version supported by Microsoft
-- Microsoft [Visual Studio](https://www.visualstudio.com/)
-  - Versions
-    - [2015](https://www.visualstudio.com/vs/older-downloads/)
-    - [2017](https://www.visualstudio.com/vs/older-downloads/)
-    - [2019](https://www.visualstudio.com/vs/downloads/)
-  - The Community Edition of each of the above versions is sufficient, as
-    well as any more capable edition.
-- [CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip) is recommended.
-  - Use the installer option to add CMake to the system PATH
-- Git Client Support
-  - [Git for Windows](http://git-scm.com/download/win) is a popular solution
-    for Windows
-  - Some IDEs (e.g., [Visual Studio](https://www.visualstudio.com/),
-    [GitHub Desktop](https://desktop.github.com/)) have integrated
-    Git client support
-
-### Windows Build - Microsoft Visual Studio
-
-The general approach is to run CMake to generate the Visual Studio project
-files. Then either run CMake with the `--build` option to build from the
-command line or use the Visual Studio IDE to open the generated solution and
-work with the solution interactively.
-
-#### Windows Quick Start
-
-From a "Developer Command Prompt for VS 201x" console:
-
-    cd Vulkan-Headers
-    mkdir build
-    cd build
-    cmake ..
-    cmake --build . --target install
-
-See below for the details.
-
-#### Use `CMake` to Create the Visual Studio Project Files
-
-From within a "Developer Command Prompt for VS 201x" console, change your
-current directory to the top of the cloned repository directory, create a
-build directory and generate the Visual Studio project files:
-
-    cd Vulkan-Headers
-    mkdir build
-    cd build
-    cmake ..
-
-> Note: The `..` parameter tells `cmake` the location of the top of the
-> repository. If you place your build directory someplace else, you'll need to
-> specify the location of the repository top differently.
-
-The CMake configuration files set the default install directory location to
-`$CMAKE_BINARY_DIR\install`, which is a child of your build directory. In this
-example, the install directory becomes the `Vulkan-Headers\build\install`
-directory.
-
-The project installs the header files to
-
-    Vulkan-Headers\build\install\include\vulkan
-
-and installs the registry files to
-
-    Vulkan-Headers\build\install\share\vulkan\registry
-
-You can change the install directory with the `CMAKE_INSTALL_PREFIX` CMake
-variable.
-
-For example:
-
-    cd Vulkan-Headers
-    mkdir build
-    cd build
-    cmake -DCMAKE_INSTALL_PREFIX=/c/Users/dev/install ..  # MINGW64 shell
-
-As it starts generating the project files, `cmake` responds with something
-like:
-
-    -- Building for: Visual Studio 14 2015
-
-which is a 32-bit generator.
-
-Since this repository does not compile anything, there is no need to specify a
-specific generator such as "Visual Studio 14 2015 Win64", so the default
-generator should suffice.
-
-The above steps create a Windows solution file named `Vulkan-Headers.sln` in
-the build directory.
-
-At this point, you can build the solution from the command line or open the
-generated solution with Visual Studio.
-
-#### Build the Solution From the Command Line
-
-While still in the build directory:
-
-    cmake --build . --target install
-
-to build the install target.
-
-#### Build the Solution With Visual Studio
-
-Launch Visual Studio and open the "Vulkan-Headers.sln" solution file in the
-build directory. Build the `INSTALL` target from the Visual Studio solution
-explorer.
-
-## Building On Linux
-
-### Linux Development Environment Requirements
-
-There are no specific Linux distribution or compiler version requirements for
-building this repository. The required tools are
-
-- [CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz) is recommended.
-- git
-
-### Linux Build
-
-The general approach is to run CMake to generate make files. Then either run
-CMake with the `--build` option or `make` to build from the command line.
-
-#### Linux Quick Start
-
-    cd Vulkan-Headers
-    mkdir build
-    cd build
-    cmake -DCMAKE_INSTALL_PREFIX=install ..
-    make install
-
-See below for the details.
-
-#### Use CMake to Create the Make Files
-
-Change your current directory to the top of the cloned repository directory,
-create a build directory and generate the make files:
-
-    cd Vulkan-Headers
-    mkdir build
-    cd build
-    cmake -DCMAKE_INSTALL_PREFIX=install ..
-
-> Note: The `..` parameter tells `cmake` the location of the top of the
-> repository. If you place your `build` directory someplace else, you'll need
-> to specify the location of the repository top differently.
-
-Set the `CMAKE_INSTALL_PREFIX` variable to the directory to serve as the
-destination directory for the `install` target.
-
-The above `cmake` command sets the install directory to
-`$CMAKE_BINARY_DIR/install`, which is a child of your `build` directory. In
-this example, the install directory becomes the `Vulkan-Headers/build/install`
-directory.
-
-The make file install target installs the header files to
-
-    Vulkan-Headers/build/install/include/vulkan
-
-and installs the registry files to
-
-    Vulkan-Headers/build/install/share/vulkan/registry
-
-> Note: For Linux, the default value for `CMAKE_INSTALL_PREFIX` is
-> `/usr/local`, which would be used if you do not specify
-> `CMAKE_INSTALL_PREFIX`. In this case, you may need to use `sudo` to install
-> to system directories later when you run `make install`.
-
-Note that after generating the make files, running `make`:
-
-    make
-
-does nothing, since there are no libraries or executables to build.
-
-To install the header files:
-
-    make install
-
-or
-
-    cmake --build . --target install
-
-## Building on MacOS
-
-The instructions for building this repository on MacOS are similar to those for Linux.
-
-[CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz) is recommended.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d728536..e1a2af0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,23 +1,16 @@
 # ~~~
-# Copyright (c) 2018-2022 Valve Corporation
-# Copyright (c) 2018-2022 LunarG, Inc.
+# Copyright 2018-2023 The Khronos Group Inc.
+# Copyright 2018-2023 Valve Corporation
+# Copyright 2018-2023 LunarG, Inc.
 #
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# SPDX-License-Identifier: Apache-2.0
 # ~~~
-cmake_minimum_required(VERSION 3.10.2)
+cmake_minimum_required(VERSION 3.15...3.25)
 
-# Written as a function to minimize variable scope
-# Only VK_VERSION_STRING will be returned to the PARENT_SCOPE
+# NOTE: Parsing the version like this is suboptimal but neccessary due to our release process:
+# https://github.com/KhronosGroup/Vulkan-Headers/pull/346
+#
+# As shown a more robust approach would be just to add basic test code to check the project version.
 function(vlk_get_header_version)
     set(vulkan_core_header_file "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan/vulkan_core.h")
     if (NOT EXISTS ${vulkan_core_header_file})
@@ -26,78 +19,55 @@
 
     file(READ ${vulkan_core_header_file} ver)
 
-    # Get the major/minor version
     if (ver MATCHES "#define[ ]+VK_HEADER_VERSION_COMPLETE[ ]+VK_MAKE_API_VERSION\\([ ]*[0-9]+,[ ]*([0-9]+),[ ]*([0-9]+),[ ]*VK_HEADER_VERSION[ ]*\\)")
-        set(VK_VERSION_MAJOR "${CMAKE_MATCH_1}")
-        set(VK_VERSION_MINOR "${CMAKE_MATCH_2}")
+        set(MAJOR_VERSION "${CMAKE_MATCH_1}")
+        set(MINOR_VERSION "${CMAKE_MATCH_2}")
     else()
         message(FATAL_ERROR "Couldn't get major/minor version")
     endif()
 
-    # Get the patch version
     if (ver MATCHES "#define[ ]+VK_HEADER_VERSION[ ]+([0-9]+)")
-        set(VK_HEADER_VERSION "${CMAKE_MATCH_1}")
+        set(PATCH_VERSION "${CMAKE_MATCH_1}")
     else()
         message(FATAL_ERROR "Couldn't get the patch version")
     endif()
 
-    set(VK_VERSION_STRING "${VK_VERSION_MAJOR}.${VK_VERSION_MINOR}.${VK_HEADER_VERSION}" PARENT_SCOPE)
+    set(VK_VERSION_STRING "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}" PARENT_SCOPE)
 endfunction()
 vlk_get_header_version()
 
-project(Vulkan-Headers LANGUAGES C VERSION ${VK_VERSION_STRING})
-message(STATUS "${PROJECT_NAME} = ${PROJECT_VERSION}")
+project(VULKAN_HEADERS LANGUAGES C VERSION ${VK_VERSION_STRING})
 
 add_library(Vulkan-Headers INTERFACE)
-target_include_directories(Vulkan-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
 add_library(Vulkan::Headers ALIAS Vulkan-Headers)
+target_include_directories(Vulkan-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
 
-add_library(Vulkan-Registry INTERFACE)
-target_include_directories(Vulkan-Registry INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/registry>)
-add_library(Vulkan::Registry ALIAS Vulkan-Registry)
-
-# https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
-string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
+if (CMAKE_VERSION VERSION_LESS "3.21")
+    # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
+    string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
+endif()
 
 if (PROJECT_IS_TOP_LEVEL)
+    option(BUILD_TESTS "Build the tests")
+    if (BUILD_TESTS)
+        enable_testing()
+        add_subdirectory(tests)
+    endif()
+
     include(GNUInstallDirs)
     include(CMakePackageConfigHelpers)
 
-    # Location registry files will be installed to
-    set(VLK_REGISTRY_DIR "${CMAKE_INSTALL_DATADIR}/vulkan")
-
-    # Install header files
     install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vk_video" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-    # Install registry files
-    install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION ${VLK_REGISTRY_DIR})
+    # Preserve source permissions https://github.com/KhronosGroup/Vulkan-Headers/issues/336
+    install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION "${CMAKE_INSTALL_DATADIR}/vulkan" USE_SOURCE_PERMISSIONS)
 
-    set(export_name "VulkanHeadersConfig")
-    set(namespace "Vulkan::")
-    set(cmake_files_install_dir ${CMAKE_INSTALL_DATADIR}/cmake/VulkanHeaders/)
-
-    # Set EXPORT_NAME for consistency with established names. The CMake generated ones won't work.
     set_target_properties(Vulkan-Headers PROPERTIES EXPORT_NAME "Headers")
-    set_target_properties(Vulkan-Registry PROPERTIES EXPORT_NAME "Registry")
 
-    # Add find_package() support
-    target_include_directories(Vulkan-Headers INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
-    install(TARGETS Vulkan-Headers EXPORT ${export_name})
+    install(TARGETS Vulkan-Headers EXPORT VulkanHeadersConfig INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+    install(EXPORT VulkanHeadersConfig NAMESPACE "Vulkan::" DESTINATION "share/cmake/VulkanHeaders")
 
-    target_include_directories(Vulkan-Registry INTERFACE $<INSTALL_INTERFACE:${VLK_REGISTRY_DIR}/registry>)
-    install(TARGETS Vulkan-Registry EXPORT ${export_name})
-
-    install(EXPORT ${export_name} NAMESPACE ${namespace} DESTINATION ${cmake_files_install_dir})
-    export(TARGETS Vulkan-Headers NAMESPACE ${namespace} FILE ${export_name}.cmake)
-
-    set(config_version "${CMAKE_CURRENT_BINARY_DIR}/${export_name}Version.cmake")
-
-    # Add find_package() versioning support
-    if(${CMAKE_VERSION} VERSION_LESS "3.14.0")
-        write_basic_package_version_file(${config_version} COMPATIBILITY SameMajorVersion)
-    else()
-        write_basic_package_version_file(${config_version} COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT)
-    endif()
-
-    install(FILES ${config_version} DESTINATION ${cmake_files_install_dir})
+    set(version_config "${CMAKE_CURRENT_BINARY_DIR}/generated/VulkanHeadersConfigVersion.cmake")
+    write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT)
+    install(FILES "${version_config}" DESTINATION "share/cmake/VulkanHeaders")
 endif()
diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc
new file mode 100644
index 0000000..bd635bb
--- /dev/null
+++ b/CODE_OF_CONDUCT.adoc
@@ -0,0 +1,10 @@
+// Copyright 2018-2023 The Khronos Group Inc.
+// SPDX-License-Identifier: MIT
+
+= Code of Conduct
+
+A reminder that this repository is managed by the Khronos Group.
+Interactions here should follow the
+https://www.khronos.org/about/code-of-conduct[Khronos Code of Conduct],
+which prohibits aggressive or derogatory language. Please keep the
+discussion friendly and civil.
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index a11610b..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1 +0,0 @@
-A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..584f75e
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,40 @@
+<!--
+Copyright 2018-2023 The Khronos Group Inc.
+
+SPDX-License-Identifier: Apache-2.0
+-->
+
+# CONTRIBUTING
+
+Please note when contributing what files this repository actually is responsible for.
+
+The majority for the Vulkan headers come from [Vulkan-Docs](https://github.com/KhronosGroup/Vulkan-Docs) or [Vulkan-Hpp](https://github.com/KhronosGroup/Vulkan-Hpp)
+
+### This repository (https://github.com/KhronosGroup/Vulkan-Headers)
+
+* BUILD.gn
+* BUILD.md
+* CMakeLists.txt
+* tests/*
+* CODE_OF_CONDUCT.md
+* LICENSE.txt
+* README.md
+* Non-API headers
+  * include/vulkan/vk_icd.h
+  * include/vulkan/vk_layer.h
+
+### Specification repository (https://github.com/KhronosGroup/Vulkan-Docs)
+
+* registry/*.py
+* registry/spec_tools/*.py
+* registry/profiles/*.json
+* All files under include/vulkan/ which are *not* listed explicitly as originating from another repository.
+
+### Vulkan C++ Binding Repository (https://github.com/KhronosGroup/Vulkan-Hpp)
+
+As of the Vulkan-Docs 1.2.182 spec update, the Vulkan-Hpp headers have been
+split into multiple files. All of those files are now included in this
+repository.
+
+* include/vulkan/*.hpp
+* include/vulkan/*.cppm
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..f4bc6c6
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,219 @@
+Files: registry/parse_dependency.py
+
+MIT License
+
+Copyright (c) 2015-2023 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---
+
+Files: all files except registry/parse_dependency.py
+
+See LICENSE.md for specifics
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..d6a0648
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,18 @@
+Copyright 2015-2023 The Khronos Group Inc.
+
+Files in this repository fall under one of these licenses:
+
+- `Apache-2.0`
+- `MIT`
+
+Note: With the exception of `parse_dependency.py` the files using `MIT` license
+also fall under `Apache-2.0`. Example:
+
+```
+SPDX-License-Identifier: Apache-2.0 OR MIT
+```
+
+Full license text of these licenses is available at:
+
+  * Apache-2.0: https://opensource.org/licenses/Apache-2.0
+  * MIT: https://opensource.org/licenses/MIT
diff --git a/LICENSE.txt b/LICENSES/Apache-2.0.txt
similarity index 100%
rename from LICENSE.txt
rename to LICENSES/Apache-2.0.txt
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 0000000..8495fe9
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) 2015-2023 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/NOTICE b/NOTICE
index 85de3d4..7a694c9 120000
--- a/NOTICE
+++ b/NOTICE
@@ -1 +1 @@
-LICENSE.txt
\ No newline at end of file
+LICENSE
\ No newline at end of file
diff --git a/README.md b/README.md
index c84985d..d2d74ed 100644
--- a/README.md
+++ b/README.md
@@ -1,51 +1,52 @@
+<!--
+Copyright 2018-2023 The Khronos Group Inc.
+
+SPDX-License-Identifier: Apache-2.0
+-->
+
 # Vulkan-Headers
 
 Vulkan header files and API registry
 
-The contents of this repository are largely obtained from other repositories
-and are collected, coordinated, and curated here.
+This repository contains Vulkan header files, include files for C and C++,
+and related scripts and tests.
 
-If proposing changes to any file originating from a different repository,
-please propose such changes in that repository, rather than Vulkan-Headers.
-Files in this repository originate from:
+Most of the files in this repository are sourced from, or generated from,
+other repositories as described in [CONTRIBUTING.md](CONTRIBUTING.md).
+Vulkan-Headers exists as a staging area for these files, most of which are
+then consumed by downstream repositories used to build SDK components such
+as the Vulkan Validation Layers and Conformance Test Suite.
 
-### Specification repository (https://github.com/KhronosGroup/Vulkan-Docs)
+Developers normally obtain headers from the official
+[Vulkan-SDK](https://www.lunarg.com/vulkan-sdk/).
+They can also use headers from, or packaged from, this repository.
 
-* registry/*.py
-* registry/spec_tools/*.py
-* registry/profiles/*.json
-* All files under include/vulkan/ which are *not* listed explicitly as originating from another repository.
+In most cases, developers should only need the headers, not the scripts and
+other material in this repository.
+If you need to run the scripts, please use them from their canonical source
+in the [Vulkan Specification
+repository](https://github.com/KhronosGroup/Vulkan-Docs).
 
-### This repository (https://github.com/KhronosGroup/Vulkan-Headers)
+## Contributing
 
-* BUILD.gn
-* BUILD.md
-* CMakeLists.txt
-* cmake/*
-* CODE_OF_CONDUCT.md
-* LICENSE.txt
-* README.md
-* Non-API headers
-  * include/vulkan/vk_icd.h
-  * include/vulkan/vk_layer.h
-  * include/vulkan/vk_sdk_platform.h
+See the [CONTRIBUTING.md](CONTRIBUTING.md)
 
-### Vulkan C++ Binding Repository (https://github.com/KhronosGroup/Vulkan-Hpp)
+## Building
 
-As of the Vulkan-Docs 1.2.182 spec update, the Vulkan-Hpp headers have been
-split into multiple files. All of those files are now included in this
-repository.
+See [BUILD.md](BUILD.md)
 
-* include/vulkan/*.hpp
+## SDK Support
+
+Vulkan-Headers are shipped as part of the official [Vulkan-SDK](https://www.lunarg.com/vulkan-sdk/)
+
+## C/C++ Package Manager Support
+
+`Vulkan-Headers` are also supported by both [conan](https://conan.io/) & [vcpkg](https://learn.microsoft.com/en-us/vcpkg/).
 
 ## Version Tagging Scheme
 
-Updates to the `Vulkan-Headers` repository which correspond to a new Vulkan
-specification release are tagged using the following format:
-`v<`_`version`_`>` (e.g., `v1.1.96`).
+Updates to this repository which correspond to a new Vulkan specification release are tagged using the following format: `v<`_`version`_`>` (e.g., `v1.3.266`).
 
-**Note**: Marked version releases have undergone thorough testing but do not
-imply the same quality level as SDK tags. SDK tags follow the
-`sdk-<`_`version`_`>.<`_`patch`_`>` format (e.g., `sdk-1.1.92.0`).
+**Note**: Marked version releases have undergone thorough testing but do not imply the same quality level as SDK tags. SDK tags follow the `vulkan-sdk-<`_`version`_`>.<`_`patch`_`>` format (e.g., `vulkan-sdk-1.3.266.0`).
 
-This scheme was adopted following the 1.1.96 Vulkan specification release.
+This scheme was adopted following the `1.3.266` Vulkan specification release.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..4453379
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,11 @@
+<!--
+Copyright 2023 The Khronos Group Inc.
+
+SPDX-License-Identifier: Apache-2.0
+-->
+
+# Security Policy
+
+To report a security issue, please disclose it at [security advisory](https://github.com/KhronosGroup/Vulkan-Headers/security/advisories/new).
+
+This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure.
diff --git a/include/vk_video/vulkan_video_codec_h264std.h b/include/vk_video/vulkan_video_codec_h264std.h
index d3ebec6..6d27af3 100644
--- a/include/vk_video/vulkan_video_codec_h264std.h
+++ b/include/vk_video/vulkan_video_codec_h264std.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H264STD_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,8 +19,9 @@
 
 
 
+// vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h264std 1
-#include <stdint.h>
+#include "vulkan_video_codecs_common.h"
 #define STD_VIDEO_H264_CPB_CNT_LIST_SIZE  32
 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
@@ -28,6 +29,7 @@
 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
 #define STD_VIDEO_H264_MAX_NUM_LIST_REF   32
 #define STD_VIDEO_H264_MAX_CHROMA_PLANES  2
+#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF
 
 typedef enum StdVideoH264ChromaFormatIdc {
     STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
diff --git a/include/vk_video/vulkan_video_codec_h264std_decode.h b/include/vk_video/vulkan_video_codec_h264std_decode.h
index 98744f6..439cb88 100644
--- a/include/vk_video/vulkan_video_codec_h264std_decode.h
+++ b/include/vk_video/vulkan_video_codec_h264std_decode.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,13 +19,15 @@
 
 
 
+// vulkan_video_codec_h264std_decode is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h264std_decode 1
-// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8 VK_MAKE_VIDEO_STD_VERSION(0, 9, 8) // Patch version should always be set to 0
+#include "vulkan_video_codec_h264std.h"
 
-#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
+#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
 
 typedef enum StdVideoDecodeH264FieldOrderCount {
     STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
diff --git a/include/vk_video/vulkan_video_codec_h264std_encode.h b/include/vk_video/vulkan_video_codec_h264std_encode.h
index 323d19b..9e24aa5 100644
--- a/include/vk_video/vulkan_video_codec_h264std_encode.h
+++ b/include/vk_video/vulkan_video_codec_h264std_encode.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,11 +19,13 @@
 
 
 
+// vulkan_video_codec_h264std_encode is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h264std_encode 1
-// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8 VK_MAKE_VIDEO_STD_VERSION(0, 9, 8) // Patch version should always be set to 0
+#include "vulkan_video_codec_h264std.h"
 
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0
 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
 typedef struct StdVideoEncodeH264WeightTableFlags {
     uint32_t    luma_weight_l0_flag;
@@ -46,29 +48,31 @@
     int8_t                                chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
 } StdVideoEncodeH264WeightTable;
 
-#define vulkan_video_codec_h264std_encode 1
 typedef struct StdVideoEncodeH264SliceHeaderFlags {
     uint32_t    direct_spatial_mv_pred_flag : 1;
     uint32_t    num_ref_idx_active_override_flag : 1;
-    uint32_t    no_output_of_prior_pics_flag : 1;
-    uint32_t    adaptive_ref_pic_marking_mode_flag : 1;
-    uint32_t    no_prior_references_available_flag : 1;
+    uint32_t    reserved : 30;
 } StdVideoEncodeH264SliceHeaderFlags;
 
 typedef struct StdVideoEncodeH264PictureInfoFlags {
-    uint32_t    idr_flag : 1;
-    uint32_t    is_reference_flag : 1;
-    uint32_t    used_for_long_term_reference : 1;
+    uint32_t    IdrPicFlag : 1;
+    uint32_t    is_reference : 1;
+    uint32_t    no_output_of_prior_pics_flag : 1;
+    uint32_t    long_term_reference_flag : 1;
+    uint32_t    adaptive_ref_pic_marking_mode_flag : 1;
+    uint32_t    reserved : 27;
 } StdVideoEncodeH264PictureInfoFlags;
 
 typedef struct StdVideoEncodeH264ReferenceInfoFlags {
     uint32_t    used_for_long_term_reference : 1;
+    uint32_t    reserved : 31;
 } StdVideoEncodeH264ReferenceInfoFlags;
 
-typedef struct StdVideoEncodeH264RefMgmtFlags {
-    uint32_t    ref_pic_list_modification_l0_flag : 1;
-    uint32_t    ref_pic_list_modification_l1_flag : 1;
-} StdVideoEncodeH264RefMgmtFlags;
+typedef struct StdVideoEncodeH264ReferenceListsInfoFlags {
+    uint32_t    ref_pic_list_modification_flag_l0 : 1;
+    uint32_t    ref_pic_list_modification_flag_l1 : 1;
+    uint32_t    reserved : 30;
+} StdVideoEncodeH264ReferenceListsInfoFlags;
 
 typedef struct StdVideoEncodeH264RefListModEntry {
     StdVideoH264ModificationOfPicNumsIdc    modification_of_pic_nums_idc;
@@ -77,51 +81,61 @@
 } StdVideoEncodeH264RefListModEntry;
 
 typedef struct StdVideoEncodeH264RefPicMarkingEntry {
-    StdVideoH264MemMgmtControlOp    operation;
+    StdVideoH264MemMgmtControlOp    memory_management_control_operation;
     uint16_t                        difference_of_pic_nums_minus1;
     uint16_t                        long_term_pic_num;
     uint16_t                        long_term_frame_idx;
     uint16_t                        max_long_term_frame_idx_plus1;
 } StdVideoEncodeH264RefPicMarkingEntry;
 
-typedef struct StdVideoEncodeH264RefMemMgmtCtrlOperations {
-    StdVideoEncodeH264RefMgmtFlags                 flags;
+typedef struct StdVideoEncodeH264ReferenceListsInfo {
+    StdVideoEncodeH264ReferenceListsInfoFlags      flags;
+    uint8_t                                        num_ref_idx_l0_active_minus1;
+    uint8_t                                        num_ref_idx_l1_active_minus1;
+    uint8_t                                        RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
+    uint8_t                                        RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
     uint8_t                                        refList0ModOpCount;
-    const StdVideoEncodeH264RefListModEntry*       pRefList0ModOperations;
     uint8_t                                        refList1ModOpCount;
-    const StdVideoEncodeH264RefListModEntry*       pRefList1ModOperations;
     uint8_t                                        refPicMarkingOpCount;
+    uint8_t                                        reserved1[7];
+    const StdVideoEncodeH264RefListModEntry*       pRefList0ModOperations;
+    const StdVideoEncodeH264RefListModEntry*       pRefList1ModOperations;
     const StdVideoEncodeH264RefPicMarkingEntry*    pRefPicMarkingOperations;
-} StdVideoEncodeH264RefMemMgmtCtrlOperations;
+} StdVideoEncodeH264ReferenceListsInfo;
 
 typedef struct StdVideoEncodeH264PictureInfo {
-    StdVideoEncodeH264PictureInfoFlags    flags;
-    uint8_t                               seq_parameter_set_id;
-    uint8_t                               pic_parameter_set_id;
-    StdVideoH264PictureType               pictureType;
-    uint32_t                              frame_num;
-    int32_t                               PicOrderCnt;
+    StdVideoEncodeH264PictureInfoFlags             flags;
+    uint8_t                                        seq_parameter_set_id;
+    uint8_t                                        pic_parameter_set_id;
+    uint16_t                                       idr_pic_id;
+    StdVideoH264PictureType                        primary_pic_type;
+    uint32_t                                       frame_num;
+    int32_t                                        PicOrderCnt;
+    uint8_t                                        temporal_id;
+    uint8_t                                        reserved1[3];
+    const StdVideoEncodeH264ReferenceListsInfo*    pRefLists;
 } StdVideoEncodeH264PictureInfo;
 
 typedef struct StdVideoEncodeH264ReferenceInfo {
     StdVideoEncodeH264ReferenceInfoFlags    flags;
+    StdVideoH264PictureType                 primary_pic_type;
     uint32_t                                FrameNum;
     int32_t                                 PicOrderCnt;
     uint16_t                                long_term_pic_num;
     uint16_t                                long_term_frame_idx;
+    uint8_t                                 temporal_id;
 } StdVideoEncodeH264ReferenceInfo;
 
 typedef struct StdVideoEncodeH264SliceHeader {
     StdVideoEncodeH264SliceHeaderFlags        flags;
     uint32_t                                  first_mb_in_slice;
     StdVideoH264SliceType                     slice_type;
-    uint16_t                                  idr_pic_id;
-    uint8_t                                   num_ref_idx_l0_active_minus1;
-    uint8_t                                   num_ref_idx_l1_active_minus1;
-    StdVideoH264CabacInitIdc                  cabac_init_idc;
-    StdVideoH264DisableDeblockingFilterIdc    disable_deblocking_filter_idc;
     int8_t                                    slice_alpha_c0_offset_div2;
     int8_t                                    slice_beta_offset_div2;
+    int8_t                                    slice_qp_delta;
+    uint8_t                                   reserved1;
+    StdVideoH264CabacInitIdc                  cabac_init_idc;
+    StdVideoH264DisableDeblockingFilterIdc    disable_deblocking_filter_idc;
     const StdVideoEncodeH264WeightTable*      pWeightTable;
 } StdVideoEncodeH264SliceHeader;
 
diff --git a/include/vk_video/vulkan_video_codec_h265std.h b/include/vk_video/vulkan_video_codec_h265std.h
index 862f881..d0a1bac 100644
--- a/include/vk_video/vulkan_video_codec_h265std.h
+++ b/include/vk_video/vulkan_video_codec_h265std.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H265STD_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,9 +19,11 @@
 
 
 
+// vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h265std 1
-#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
+#include "vulkan_video_codecs_common.h"
 #define STD_VIDEO_H265_CPB_CNT_LIST_SIZE  32
+#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
 #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
@@ -30,18 +32,19 @@
 #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
-#define STD_VIDEO_H265_MAX_DPB_SIZE       16
-#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
 #define STD_VIDEO_H265_MAX_NUM_LIST_REF   15
 #define STD_VIDEO_H265_MAX_CHROMA_PLANES  2
 #define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
+#define STD_VIDEO_H265_MAX_DPB_SIZE       16
+#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
 #define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
 #define STD_VIDEO_H265_MAX_DELTA_POC      48
+#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF
 
 typedef enum StdVideoH265ChromaFormatIdc {
     STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
diff --git a/include/vk_video/vulkan_video_codec_h265std_decode.h b/include/vk_video/vulkan_video_codec_h265std_decode.h
index 831c41b..0178793 100644
--- a/include/vk_video/vulkan_video_codec_h265std_decode.h
+++ b/include/vk_video/vulkan_video_codec_h265std_decode.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,13 +19,15 @@
 
 
 
+// vulkan_video_codec_h265std_decode is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h265std_decode 1
-// Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9 VK_MAKE_VIDEO_STD_VERSION(0, 9, 9) // Patch version should always be set to 0
+#include "vulkan_video_codec_h265std.h"
 
-#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
+#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
 typedef struct StdVideoDecodeH265PictureInfoFlags {
     uint32_t    IrapPicFlag : 1;
     uint32_t    IdrPicFlag  : 1;
diff --git a/include/vk_video/vulkan_video_codec_h265std_encode.h b/include/vk_video/vulkan_video_codec_h265std_encode.h
index 84e34e5..ee34491 100644
--- a/include/vk_video/vulkan_video_codec_h265std_encode.h
+++ b/include/vk_video/vulkan_video_codec_h265std_encode.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,11 +19,13 @@
 
 
 
+// vulkan_video_codec_h265std_encode is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codec_h265std_encode 1
-// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9 VK_MAKE_VIDEO_STD_VERSION(0, 9, 9) // Patch version should always be set to 0
+#include "vulkan_video_codec_h265std.h"
 
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0
 #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
 typedef struct StdVideoEncodeH265WeightTableFlags {
     uint16_t    luma_weight_l0_flag;
@@ -48,11 +50,7 @@
 
 typedef struct StdVideoEncodeH265SliceSegmentHeaderFlags {
     uint32_t    first_slice_segment_in_pic_flag : 1;
-    uint32_t    no_output_of_prior_pics_flag : 1;
     uint32_t    dependent_slice_segment_flag : 1;
-    uint32_t    pic_output_flag : 1;
-    uint32_t    short_term_ref_pic_set_sps_flag : 1;
-    uint32_t    slice_temporal_mvp_enable_flag : 1;
     uint32_t    slice_sao_luma_flag : 1;
     uint32_t    slice_sao_chroma_flag : 1;
     uint32_t    num_ref_idx_active_override_flag : 1;
@@ -63,9 +61,57 @@
     uint32_t    slice_deblocking_filter_disabled_flag : 1;
     uint32_t    collocated_from_l0_flag : 1;
     uint32_t    slice_loop_filter_across_slices_enabled_flag : 1;
+    uint32_t    reserved : 20;
 } StdVideoEncodeH265SliceSegmentHeaderFlags;
 
-typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics {
+typedef struct StdVideoEncodeH265SliceSegmentHeader {
+    StdVideoEncodeH265SliceSegmentHeaderFlags    flags;
+    StdVideoH265SliceType                        slice_type;
+    uint32_t                                     slice_segment_address;
+    uint8_t                                      collocated_ref_idx;
+    uint8_t                                      MaxNumMergeCand;
+    int8_t                                       slice_cb_qp_offset;
+    int8_t                                       slice_cr_qp_offset;
+    int8_t                                       slice_beta_offset_div2;
+    int8_t                                       slice_tc_offset_div2;
+    int8_t                                       slice_act_y_qp_offset;
+    int8_t                                       slice_act_cb_qp_offset;
+    int8_t                                       slice_act_cr_qp_offset;
+    int8_t                                       slice_qp_delta;
+    uint16_t                                     reserved1;
+    const StdVideoEncodeH265WeightTable*         pWeightTable;
+} StdVideoEncodeH265SliceSegmentHeader;
+
+typedef struct StdVideoEncodeH265ReferenceListsInfoFlags {
+    uint32_t    ref_pic_list_modification_flag_l0 : 1;
+    uint32_t    ref_pic_list_modification_flag_l1 : 1;
+    uint32_t    reserved : 30;
+} StdVideoEncodeH265ReferenceListsInfoFlags;
+
+typedef struct StdVideoEncodeH265ReferenceListsInfo {
+    StdVideoEncodeH265ReferenceListsInfoFlags    flags;
+    uint8_t                                      num_ref_idx_l0_active_minus1;
+    uint8_t                                      num_ref_idx_l1_active_minus1;
+    uint8_t                                      RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+    uint8_t                                      RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+    uint8_t                                      list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+    uint8_t                                      list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+} StdVideoEncodeH265ReferenceListsInfo;
+
+typedef struct StdVideoEncodeH265PictureInfoFlags {
+    uint32_t    is_reference : 1;
+    uint32_t    IrapPicFlag : 1;
+    uint32_t    used_for_long_term_reference : 1;
+    uint32_t    discardable_flag : 1;
+    uint32_t    cross_layer_bla_flag : 1;
+    uint32_t    pic_output_flag : 1;
+    uint32_t    no_output_of_prior_pics_flag : 1;
+    uint32_t    short_term_ref_pic_set_sps_flag : 1;
+    uint32_t    slice_temporal_mvp_enabled_flag : 1;
+    uint32_t    reserved : 23;
+} StdVideoEncodeH265PictureInfoFlags;
+
+typedef struct StdVideoEncodeH265LongTermRefPics {
     uint8_t     num_long_term_sps;
     uint8_t     num_long_term_pics;
     uint8_t     lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
@@ -73,67 +119,32 @@
     uint16_t    used_by_curr_pic_lt_flag;
     uint8_t     delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC];
     uint8_t     delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC];
-} StdVideoEncodeH265SliceSegmentLongTermRefPics;
-
-typedef struct StdVideoEncodeH265SliceSegmentHeader {
-    StdVideoEncodeH265SliceSegmentHeaderFlags               flags;
-    StdVideoH265SliceType                                   slice_type;
-    uint32_t                                                slice_segment_address;
-    uint8_t                                                 short_term_ref_pic_set_idx;
-    uint8_t                                                 collocated_ref_idx;
-    uint8_t                                                 num_ref_idx_l0_active_minus1;
-    uint8_t                                                 num_ref_idx_l1_active_minus1;
-    uint8_t                                                 MaxNumMergeCand;
-    int8_t                                                  slice_cb_qp_offset;
-    int8_t                                                  slice_cr_qp_offset;
-    int8_t                                                  slice_beta_offset_div2;
-    int8_t                                                  slice_tc_offset_div2;
-    int8_t                                                  slice_act_y_qp_offset;
-    int8_t                                                  slice_act_cb_qp_offset;
-    int8_t                                                  slice_act_cr_qp_offset;
-    const StdVideoH265ShortTermRefPicSet*                   pShortTermRefPicSet;
-    const StdVideoEncodeH265SliceSegmentLongTermRefPics*    pLongTermRefPics;
-    const StdVideoEncodeH265WeightTable*                    pWeightTable;
-} StdVideoEncodeH265SliceSegmentHeader;
-
-typedef struct StdVideoEncodeH265ReferenceModificationFlags {
-    uint32_t    ref_pic_list_modification_flag_l0 : 1;
-    uint32_t    ref_pic_list_modification_flag_l1 : 1;
-} StdVideoEncodeH265ReferenceModificationFlags;
-
-typedef struct StdVideoEncodeH265ReferenceModifications {
-    StdVideoEncodeH265ReferenceModificationFlags    flags;
-    uint8_t                                         referenceList0ModificationsCount;
-    const uint8_t*                                  pReferenceList0Modifications;
-    uint8_t                                         referenceList1ModificationsCount;
-    const uint8_t*                                  pReferenceList1Modifications;
-} StdVideoEncodeH265ReferenceModifications;
-
-typedef struct StdVideoEncodeH265PictureInfoFlags {
-    uint32_t    is_reference_flag : 1;
-    uint32_t    IrapPicFlag : 1;
-    uint32_t    long_term_flag : 1;
-    uint32_t    discardable_flag : 1;
-    uint32_t    cross_layer_bla_flag : 1;
-} StdVideoEncodeH265PictureInfoFlags;
+} StdVideoEncodeH265LongTermRefPics;
 
 typedef struct StdVideoEncodeH265PictureInfo {
-    StdVideoEncodeH265PictureInfoFlags    flags;
-    StdVideoH265PictureType               PictureType;
-    uint8_t                               sps_video_parameter_set_id;
-    uint8_t                               pps_seq_parameter_set_id;
-    uint8_t                               pps_pic_parameter_set_id;
-    int32_t                               PicOrderCntVal;
-    uint8_t                               TemporalId;
+    StdVideoEncodeH265PictureInfoFlags             flags;
+    StdVideoH265PictureType                        pic_type;
+    uint8_t                                        sps_video_parameter_set_id;
+    uint8_t                                        pps_seq_parameter_set_id;
+    uint8_t                                        pps_pic_parameter_set_id;
+    uint8_t                                        short_term_ref_pic_set_idx;
+    int32_t                                        PicOrderCntVal;
+    uint8_t                                        TemporalId;
+    uint8_t                                        reserved1[7];
+    const StdVideoEncodeH265ReferenceListsInfo*    pRefLists;
+    const StdVideoH265ShortTermRefPicSet*          pShortTermRefPicSet;
+    const StdVideoEncodeH265LongTermRefPics*       pLongTermRefPics;
 } StdVideoEncodeH265PictureInfo;
 
 typedef struct StdVideoEncodeH265ReferenceInfoFlags {
     uint32_t    used_for_long_term_reference : 1;
     uint32_t    unused_for_reference : 1;
+    uint32_t    reserved : 30;
 } StdVideoEncodeH265ReferenceInfoFlags;
 
 typedef struct StdVideoEncodeH265ReferenceInfo {
     StdVideoEncodeH265ReferenceInfoFlags    flags;
+    StdVideoH265PictureType                 pic_type;
     int32_t                                 PicOrderCntVal;
     uint8_t                                 TemporalId;
 } StdVideoEncodeH265ReferenceInfo;
diff --git a/include/vk_video/vulkan_video_codecs_common.h b/include/vk_video/vulkan_video_codecs_common.h
index 1e49826..5e6ef1d 100644
--- a/include/vk_video/vulkan_video_codecs_common.h
+++ b/include/vk_video/vulkan_video_codecs_common.h
@@ -2,7 +2,7 @@
 #define VULKAN_VIDEO_CODECS_COMMON_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,7 +19,12 @@
 
 
 
+// vulkan_video_codecs_common is a preprocessor guard. Do not pass it to API calls.
 #define vulkan_video_codecs_common 1
+#if !defined(VK_NO_STDINT_H)
+    #include <stdint.h>
+#endif
+
 #define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \
     ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
 
diff --git a/include/vulkan/vk_icd.h b/include/vulkan/vk_icd.h
index fa90fcf..59204a3 100644
--- a/include/vulkan/vk_icd.h
+++ b/include/vulkan/vk_icd.h
@@ -1,27 +1,11 @@
-//
-// File: vk_icd.h
-//
 /*
- * Copyright (c) 2015-2016, 2022 The Khronos Group Inc.
- * Copyright (c) 2015-2016, 2022 Valve Corporation
- * Copyright (c) 2015-2016, 2022 LunarG, Inc.
+ * Copyright 2015-2023 The Khronos Group Inc.
+ * Copyright 2015-2023 Valve Corporation
+ * Copyright 2015-2023 LunarG, Inc.
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
+ * SPDX-License-Identifier: Apache-2.0
  */
-
-#ifndef VKICD_H
-#define VKICD_H
+#pragma once
 
 #include "vulkan.h"
 #include <stdbool.h>
@@ -80,7 +64,7 @@
 #endif
     VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion);
     VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName);
-    VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName);
+    VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char* pName);
 #if defined(VK_USE_PLATFORM_WIN32_KHR)
     VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID,
         uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
@@ -258,5 +242,3 @@
   VkIcdSurfaceBase base;
 } VkIcdSurfaceImagePipe;
 #endif // VK_USE_PLATFORM_FUCHSIA
-
-#endif  // VKICD_H
diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h
index 0651870..19d88fc 100644
--- a/include/vulkan/vk_layer.h
+++ b/include/vulkan/vk_layer.h
@@ -1,39 +1,18 @@
-//
-// File: vk_layer.h
-//
 /*
- * Copyright (c) 2015-2017 The Khronos Group Inc.
- * Copyright (c) 2015-2017 Valve Corporation
- * Copyright (c) 2015-2017 LunarG, Inc.
+ * Copyright 2015-2023 The Khronos Group Inc.
+ * Copyright 2015-2023 Valve Corporation
+ * Copyright 2015-2023 LunarG, Inc.
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
+ * SPDX-License-Identifier: Apache-2.0
  */
+#pragma once
 
 /* Need to define dispatch table
  * Core struct can then have ptr to dispatch table at the top
  * Along with object ptrs for current and next OBJ
  */
-#pragma once
 
-#include "vulkan.h"
-#if defined(__GNUC__) && __GNUC__ >= 4
-#define VK_LAYER_EXPORT __attribute__((visibility("default")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define VK_LAYER_EXPORT __attribute__((visibility("default")))
-#else
-#define VK_LAYER_EXPORT
-#endif
+#include "vulkan_core.h"
 
 #define MAX_NUM_UNKNOWN_EXTS 250
 
diff --git a/include/vulkan/vk_platform.h b/include/vulkan/vk_platform.h
index 3ff8c5d..0ecd4f6 100644
--- a/include/vulkan/vk_platform.h
+++ b/include/vulkan/vk_platform.h
@@ -2,7 +2,7 @@
 // File: vk_platform.h
 //
 /*
-** Copyright 2014-2022 The Khronos Group Inc.
+** Copyright 2014-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
diff --git a/include/vulkan/vk_sdk_platform.h b/include/vulkan/vk_sdk_platform.h
deleted file mode 100644
index f192c1c..0000000
--- a/include/vulkan/vk_sdk_platform.h
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// File: vk_sdk_platform.h
-//
-/*
- * Copyright (c) 2015-2016 The Khronos Group Inc.
- * Copyright (c) 2015-2016 Valve Corporation
- * Copyright (c) 2015-2016 LunarG, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef VK_SDK_PLATFORM_H
-#define VK_SDK_PLATFORM_H
-
-#if defined(_WIN32)
-#ifndef NOMINMAX
-#define NOMINMAX
-#endif
-#ifndef __cplusplus
-#undef inline
-#define inline __inline
-#endif // __cplusplus
-
-#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/)
-// C99:
-// Microsoft didn't implement C99 in Visual Studio; but started adding it with
-// VS2013.  However, VS2013 still didn't have snprintf().  The following is a
-// work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the
-// "CMakeLists.txt" file).
-// NOTE: This is fixed in Visual Studio 2015.
-#define snprintf _snprintf
-#endif
-
-#define strdup _strdup
-
-#endif // _WIN32
-
-// Check for noexcept support using clang, with fallback to Windows or GCC version numbers
-#ifndef NOEXCEPT
-#if defined(__clang__)
-#if __has_feature(cxx_noexcept)
-#define HAS_NOEXCEPT
-#endif
-#else
-#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46
-#define HAS_NOEXCEPT
-#else
-#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS
-#define HAS_NOEXCEPT
-#endif
-#endif
-#endif
-
-#ifdef HAS_NOEXCEPT
-#define NOEXCEPT noexcept
-#else
-#define NOEXCEPT
-#endif
-#endif
-
-#endif  // VK_SDK_PLATFORM_H
diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm
new file mode 100644
index 0000000..e54433e
--- /dev/null
+++ b/include/vulkan/vulkan.cppm
@@ -0,0 +1,4741 @@
+// Copyright 2015-2024 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+//
+
+// This header is generated from the Khronos Vulkan XML API Registry.
+
+// Note: This module is still in an experimental state.
+// Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues.
+
+module;
+
+#include <vulkan/vulkan.hpp>
+#include <vulkan/vulkan_extension_inspection.hpp>
+#include <vulkan/vulkan_format_traits.hpp>
+#include <vulkan/vulkan_hash.hpp>
+#include <vulkan/vulkan_raii.hpp>
+#include <vulkan/vulkan_shared.hpp>
+
+export module vulkan_hpp;
+
+export namespace VULKAN_HPP_NAMESPACE
+{
+  //=====================================
+  //=== HARDCODED TYPEs AND FUNCTIONs ===
+  //=====================================
+  using VULKAN_HPP_NAMESPACE::ArrayWrapper1D;
+  using VULKAN_HPP_NAMESPACE::ArrayWrapper2D;
+  using VULKAN_HPP_NAMESPACE::DispatchLoaderBase;
+  using VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic;
+  using VULKAN_HPP_NAMESPACE::Flags;
+  using VULKAN_HPP_NAMESPACE::FlagTraits;
+
+#if !defined( VK_NO_PROTOTYPES )
+  using VULKAN_HPP_NAMESPACE::DispatchLoaderStatic;
+#endif /*VK_NO_PROTOTYPES*/
+
+  using VULKAN_HPP_NAMESPACE::operator&;
+  using VULKAN_HPP_NAMESPACE::operator|;
+  using VULKAN_HPP_NAMESPACE::operator^;
+  using VULKAN_HPP_NAMESPACE::operator~;
+  using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE;
+
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+  using VULKAN_HPP_NAMESPACE::ArrayProxy;
+  using VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries;
+  using VULKAN_HPP_NAMESPACE::Optional;
+  using VULKAN_HPP_NAMESPACE::StridedArrayProxy;
+  using VULKAN_HPP_NAMESPACE::StructureChain;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+  using VULKAN_HPP_NAMESPACE::ObjectDestroy;
+  using VULKAN_HPP_NAMESPACE::ObjectDestroyShared;
+  using VULKAN_HPP_NAMESPACE::ObjectFree;
+  using VULKAN_HPP_NAMESPACE::ObjectFreeShared;
+  using VULKAN_HPP_NAMESPACE::ObjectRelease;
+  using VULKAN_HPP_NAMESPACE::ObjectReleaseShared;
+  using VULKAN_HPP_NAMESPACE::PoolFree;
+  using VULKAN_HPP_NAMESPACE::PoolFreeShared;
+  using VULKAN_HPP_NAMESPACE::SharedHandle;
+  using VULKAN_HPP_NAMESPACE::UniqueHandle;
+#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
+
+  //==================
+  //=== BASE TYPEs ===
+  //==================
+  using VULKAN_HPP_NAMESPACE::Bool32;
+  using VULKAN_HPP_NAMESPACE::DeviceAddress;
+  using VULKAN_HPP_NAMESPACE::DeviceSize;
+  using VULKAN_HPP_NAMESPACE::RemoteAddressNV;
+  using VULKAN_HPP_NAMESPACE::SampleMask;
+
+  //=============
+  //=== ENUMs ===
+  //=============
+  using VULKAN_HPP_NAMESPACE::CppType;
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::AccessFlagBits;
+  using VULKAN_HPP_NAMESPACE::AccessFlags;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlagBits;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags;
+  using VULKAN_HPP_NAMESPACE::AttachmentLoadOp;
+  using VULKAN_HPP_NAMESPACE::AttachmentStoreOp;
+  using VULKAN_HPP_NAMESPACE::BlendFactor;
+  using VULKAN_HPP_NAMESPACE::BlendOp;
+  using VULKAN_HPP_NAMESPACE::BorderColor;
+  using VULKAN_HPP_NAMESPACE::BufferCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::BufferCreateFlags;
+  using VULKAN_HPP_NAMESPACE::BufferUsageFlagBits;
+  using VULKAN_HPP_NAMESPACE::BufferUsageFlags;
+  using VULKAN_HPP_NAMESPACE::BufferViewCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::BufferViewCreateFlags;
+  using VULKAN_HPP_NAMESPACE::ColorComponentFlagBits;
+  using VULKAN_HPP_NAMESPACE::ColorComponentFlags;
+  using VULKAN_HPP_NAMESPACE::CommandBufferLevel;
+  using VULKAN_HPP_NAMESPACE::CommandBufferResetFlagBits;
+  using VULKAN_HPP_NAMESPACE::CommandBufferResetFlags;
+  using VULKAN_HPP_NAMESPACE::CommandBufferUsageFlagBits;
+  using VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags;
+  using VULKAN_HPP_NAMESPACE::CommandPoolCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags;
+  using VULKAN_HPP_NAMESPACE::CommandPoolResetFlagBits;
+  using VULKAN_HPP_NAMESPACE::CommandPoolResetFlags;
+  using VULKAN_HPP_NAMESPACE::CompareOp;
+  using VULKAN_HPP_NAMESPACE::ComponentSwizzle;
+  using VULKAN_HPP_NAMESPACE::CullModeFlagBits;
+  using VULKAN_HPP_NAMESPACE::CullModeFlags;
+  using VULKAN_HPP_NAMESPACE::DependencyFlagBits;
+  using VULKAN_HPP_NAMESPACE::DependencyFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlagBits;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorType;
+  using VULKAN_HPP_NAMESPACE::DeviceCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::DeviceCreateFlags;
+  using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags;
+  using VULKAN_HPP_NAMESPACE::DynamicState;
+  using VULKAN_HPP_NAMESPACE::EventCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::EventCreateFlags;
+  using VULKAN_HPP_NAMESPACE::FenceCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::FenceCreateFlags;
+  using VULKAN_HPP_NAMESPACE::Filter;
+  using VULKAN_HPP_NAMESPACE::Format;
+  using VULKAN_HPP_NAMESPACE::FormatFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::FormatFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::FramebufferCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::FramebufferCreateFlags;
+  using VULKAN_HPP_NAMESPACE::FrontFace;
+  using VULKAN_HPP_NAMESPACE::ImageAspectFlagBits;
+  using VULKAN_HPP_NAMESPACE::ImageAspectFlags;
+  using VULKAN_HPP_NAMESPACE::ImageCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::ImageCreateFlags;
+  using VULKAN_HPP_NAMESPACE::ImageLayout;
+  using VULKAN_HPP_NAMESPACE::ImageTiling;
+  using VULKAN_HPP_NAMESPACE::ImageType;
+  using VULKAN_HPP_NAMESPACE::ImageUsageFlagBits;
+  using VULKAN_HPP_NAMESPACE::ImageUsageFlags;
+  using VULKAN_HPP_NAMESPACE::ImageViewCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::ImageViewCreateFlags;
+  using VULKAN_HPP_NAMESPACE::ImageViewType;
+  using VULKAN_HPP_NAMESPACE::IndexType;
+  using VULKAN_HPP_NAMESPACE::InstanceCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::InstanceCreateFlags;
+  using VULKAN_HPP_NAMESPACE::InternalAllocationType;
+  using VULKAN_HPP_NAMESPACE::LogicOp;
+  using VULKAN_HPP_NAMESPACE::MemoryHeapFlagBits;
+  using VULKAN_HPP_NAMESPACE::MemoryHeapFlags;
+  using VULKAN_HPP_NAMESPACE::MemoryMapFlagBits;
+  using VULKAN_HPP_NAMESPACE::MemoryMapFlags;
+  using VULKAN_HPP_NAMESPACE::MemoryPropertyFlagBits;
+  using VULKAN_HPP_NAMESPACE::MemoryPropertyFlags;
+  using VULKAN_HPP_NAMESPACE::ObjectType;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceType;
+  using VULKAN_HPP_NAMESPACE::PipelineBindPoint;
+  using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion;
+  using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineStageFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineStageFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::PolygonMode;
+  using VULKAN_HPP_NAMESPACE::PrimitiveTopology;
+  using VULKAN_HPP_NAMESPACE::QueryControlFlagBits;
+  using VULKAN_HPP_NAMESPACE::QueryControlFlags;
+  using VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlagBits;
+  using VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags;
+  using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags;
+  using VULKAN_HPP_NAMESPACE::QueryResultFlagBits;
+  using VULKAN_HPP_NAMESPACE::QueryResultFlags;
+  using VULKAN_HPP_NAMESPACE::QueryType;
+  using VULKAN_HPP_NAMESPACE::QueueFlagBits;
+  using VULKAN_HPP_NAMESPACE::QueueFlags;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreateFlags;
+  using VULKAN_HPP_NAMESPACE::Result;
+  using VULKAN_HPP_NAMESPACE::SampleCountFlagBits;
+  using VULKAN_HPP_NAMESPACE::SampleCountFlags;
+  using VULKAN_HPP_NAMESPACE::SamplerAddressMode;
+  using VULKAN_HPP_NAMESPACE::SamplerCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::SamplerCreateFlags;
+  using VULKAN_HPP_NAMESPACE::SamplerMipmapMode;
+  using VULKAN_HPP_NAMESPACE::SemaphoreCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags;
+  using VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags;
+  using VULKAN_HPP_NAMESPACE::ShaderStageFlagBits;
+  using VULKAN_HPP_NAMESPACE::ShaderStageFlags;
+  using VULKAN_HPP_NAMESPACE::SharingMode;
+  using VULKAN_HPP_NAMESPACE::SparseImageFormatFlagBits;
+  using VULKAN_HPP_NAMESPACE::SparseImageFormatFlags;
+  using VULKAN_HPP_NAMESPACE::SparseMemoryBindFlagBits;
+  using VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags;
+  using VULKAN_HPP_NAMESPACE::StencilFaceFlagBits;
+  using VULKAN_HPP_NAMESPACE::StencilFaceFlags;
+  using VULKAN_HPP_NAMESPACE::StencilOp;
+  using VULKAN_HPP_NAMESPACE::StructureType;
+  using VULKAN_HPP_NAMESPACE::SubpassContents;
+  using VULKAN_HPP_NAMESPACE::SubpassDescriptionFlagBits;
+  using VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags;
+  using VULKAN_HPP_NAMESPACE::SystemAllocationScope;
+  using VULKAN_HPP_NAMESPACE::VendorId;
+  using VULKAN_HPP_NAMESPACE::VertexInputRate;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::ChromaLocation;
+  using VULKAN_HPP_NAMESPACE::ChromaLocationKHR;
+  using VULKAN_HPP_NAMESPACE::CommandPoolTrimFlagBits;
+  using VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateTypeKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags;
+  using VULKAN_HPP_NAMESPACE::FenceImportFlagBits;
+  using VULKAN_HPP_NAMESPACE::FenceImportFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::FenceImportFlags;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateFlagBits;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateFlags;
+  using VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::PointClippingBehavior;
+  using VULKAN_HPP_NAMESPACE::PointClippingBehaviorKHR;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversionKHR;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrRange;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrRangeKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreImportFlagBits;
+  using VULKAN_HPP_NAMESPACE::SemaphoreImportFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreImportFlags;
+  using VULKAN_HPP_NAMESPACE::SubgroupFeatureFlagBits;
+  using VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags;
+  using VULKAN_HPP_NAMESPACE::TessellationDomainOrigin;
+  using VULKAN_HPP_NAMESPACE::TessellationDomainOriginKHR;
+
+  //=== VK_VERSION_1_2 ===
+  using VULKAN_HPP_NAMESPACE::DescriptorBindingFlagBits;
+  using VULKAN_HPP_NAMESPACE::DescriptorBindingFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorBindingFlags;
+  using VULKAN_HPP_NAMESPACE::DriverId;
+  using VULKAN_HPP_NAMESPACE::DriverIdKHR;
+  using VULKAN_HPP_NAMESPACE::ResolveModeFlagBits;
+  using VULKAN_HPP_NAMESPACE::ResolveModeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::ResolveModeFlags;
+  using VULKAN_HPP_NAMESPACE::SamplerReductionMode;
+  using VULKAN_HPP_NAMESPACE::SamplerReductionModeEXT;
+  using VULKAN_HPP_NAMESPACE::SemaphoreType;
+  using VULKAN_HPP_NAMESPACE::SemaphoreTypeKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreWaitFlagBits;
+  using VULKAN_HPP_NAMESPACE::SemaphoreWaitFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags;
+  using VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence;
+  using VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependenceKHR;
+
+  //=== VK_VERSION_1_3 ===
+  using VULKAN_HPP_NAMESPACE::AccessFlagBits2;
+  using VULKAN_HPP_NAMESPACE::AccessFlagBits2KHR;
+  using VULKAN_HPP_NAMESPACE::AccessFlags2;
+  using VULKAN_HPP_NAMESPACE::FormatFeatureFlagBits2;
+  using VULKAN_HPP_NAMESPACE::FormatFeatureFlagBits2KHR;
+  using VULKAN_HPP_NAMESPACE::FormatFeatureFlags2;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagBits;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags;
+  using VULKAN_HPP_NAMESPACE::PipelineStageFlagBits2;
+  using VULKAN_HPP_NAMESPACE::PipelineStageFlagBits2KHR;
+  using VULKAN_HPP_NAMESPACE::PipelineStageFlags2;
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagBits;
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags;
+  using VULKAN_HPP_NAMESPACE::RenderingFlagBits;
+  using VULKAN_HPP_NAMESPACE::RenderingFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::RenderingFlags;
+  using VULKAN_HPP_NAMESPACE::SubmitFlagBits;
+  using VULKAN_HPP_NAMESPACE::SubmitFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::SubmitFlags;
+  using VULKAN_HPP_NAMESPACE::ToolPurposeFlagBits;
+  using VULKAN_HPP_NAMESPACE::ToolPurposeFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ToolPurposeFlags;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::ColorSpaceKHR;
+  using VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::PresentModeKHR;
+  using VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::SwapchainCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+  //=== VK_KHR_xlib_surface ===
+  using VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+  //=== VK_KHR_xcb_surface ===
+  using VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+  //=== VK_KHR_wayland_surface ===
+  using VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_KHR_android_surface ===
+  using VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_surface ===
+  using VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::DebugReportFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT;
+
+  //=== VK_AMD_rasterization_order ===
+  using VULKAN_HPP_NAMESPACE::RasterizationOrderAMD;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::QueryResultStatusKHR;
+  using VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCapabilityFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCodingControlFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEndCodingFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR;
+
+  //=== VK_KHR_video_decode_queue ===
+  using VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR;
+
+  //=== VK_EXT_transform_feedback ===
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT;
+
+  //=== VK_KHR_video_encode_h264 ===
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsKHR;
+
+  //=== VK_KHR_video_encode_h265 ===
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsKHR;
+
+  //=== VK_KHR_video_decode_h264 ===
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsKHR;
+
+  //=== VK_AMD_shader_info ===
+  using VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_stream_descriptor_surface ===
+  using VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagBitsGGP;
+  using VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_NV_external_memory_capabilities ===
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV;
+
+  //=== VK_EXT_validation_flags ===
+  using VULKAN_HPP_NAMESPACE::ValidationCheckEXT;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+  //=== VK_NN_vi_surface ===
+  using VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagBitsNN;
+  using VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN;
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+  //=== VK_EXT_pipeline_robustness ===
+  using VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT;
+
+  //=== VK_EXT_conditional_rendering ===
+  using VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT;
+
+  //=== VK_EXT_display_surface_counter ===
+  using VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT;
+
+  //=== VK_EXT_display_control ===
+  using VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT;
+  using VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT;
+  using VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT;
+
+  //=== VK_NV_viewport_swizzle ===
+  using VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV;
+  using VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV;
+
+  //=== VK_EXT_discard_rectangles ===
+  using VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT;
+
+  //=== VK_EXT_conservative_rasterization ===
+  using VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT;
+
+  //=== VK_EXT_depth_clip_enable ===
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT;
+
+  //=== VK_KHR_performance_query ===
+  using VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+  //=== VK_MVK_ios_surface ===
+  using VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagBitsMVK;
+  using VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+  //=== VK_MVK_macos_surface ===
+  using VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagBitsMVK;
+  using VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK;
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT;
+
+  //=== VK_EXT_blend_operation_advanced ===
+  using VULKAN_HPP_NAMESPACE::BlendOverlapEXT;
+
+  //=== VK_NV_fragment_coverage_to_color ===
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV;
+  using VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR;
+  using VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR;
+  using VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeNV;
+  using VULKAN_HPP_NAMESPACE::GeometryFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::GeometryFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::GeometryFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::GeometryInstanceFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::GeometryInstanceFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::GeometryTypeKHR;
+  using VULKAN_HPP_NAMESPACE::GeometryTypeNV;
+
+  //=== VK_KHR_ray_tracing_pipeline ===
+  using VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR;
+  using VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV;
+  using VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR;
+
+  //=== VK_NV_framebuffer_mixed_samples ===
+  using VULKAN_HPP_NAMESPACE::CoverageModulationModeNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::ValidationCacheHeaderVersionEXT;
+
+  //=== VK_NV_shading_rate_image ===
+  using VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV;
+  using VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV;
+
+  //=== VK_AMD_pipeline_compiler_control ===
+  using VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagBitsAMD;
+  using VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD;
+
+  //=== VK_KHR_global_priority ===
+  using VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT;
+  using VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR;
+
+  //=== VK_AMD_memory_overallocation_behavior ===
+  using VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL;
+  using VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_imagepipe_surface ===
+  using VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagBitsFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_surface ===
+  using VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_KHR_fragment_shading_rate ===
+  using VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR;
+
+  //=== VK_AMD_shader_core_properties2 ===
+  using VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagBitsAMD;
+  using VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD;
+
+  //=== VK_EXT_validation_features ===
+  using VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT;
+  using VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT;
+
+  //=== VK_NV_coverage_reduction_mode ===
+  using VULKAN_HPP_NAMESPACE::CoverageReductionModeNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV;
+
+  //=== VK_EXT_provoking_vertex ===
+  using VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_EXT_full_screen_exclusive ===
+  using VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_headless_surface ===
+  using VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT;
+
+  //=== VK_EXT_line_rasterization ===
+  using VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT;
+
+  //=== VK_KHR_pipeline_executable_properties ===
+  using VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR;
+
+  //=== VK_EXT_host_image_copy ===
+  using VULKAN_HPP_NAMESPACE::HostImageCopyFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT;
+
+  //=== VK_KHR_map_memory2 ===
+  using VULKAN_HPP_NAMESPACE::MemoryUnmapFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR;
+
+  //=== VK_EXT_surface_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::PresentGravityFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::PresentScalingFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV;
+  using VULKAN_HPP_NAMESPACE::IndirectStateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV;
+
+  //=== VK_EXT_depth_bias_control ===
+  using VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT;
+
+  //=== VK_EXT_device_memory_report ===
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT;
+
+  //=== VK_KHR_video_encode_queue ===
+  using VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagBitsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR;
+
+  //=== VK_NV_device_diagnostics_config ===
+  using VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_objects ===
+  using VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagsEXT;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_EXT_graphics_pipeline_library ===
+  using VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT;
+
+  //=== VK_NV_fragment_shading_rate_enums ===
+  using VULKAN_HPP_NAMESPACE::FragmentShadingRateNV;
+  using VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV;
+
+  //=== VK_NV_ray_tracing_motion_blur ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV;
+
+  //=== VK_EXT_image_compression_control ===
+  using VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::ImageCompressionFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT;
+
+  //=== VK_EXT_device_fault ===
+  using VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT;
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+  //=== VK_EXT_directfb_surface ===
+  using VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+  //=== VK_EXT_device_address_binding_report ===
+  using VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagBitsFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagBitsFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_frame_boundary ===
+  using VULKAN_HPP_NAMESPACE::FrameBoundaryFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_screen_surface ===
+  using VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagBitsQNX;
+  using VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::BuildMicromapFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT;
+  using VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapTypeEXT;
+  using VULKAN_HPP_NAMESPACE::OpacityMicromapFormatEXT;
+  using VULKAN_HPP_NAMESPACE::OpacityMicromapSpecialIndexEXT;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  using VULKAN_HPP_NAMESPACE::DisplacementMicromapFormatNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_ARM_scheduling_controls ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagBitsARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM;
+
+  //=== VK_NV_memory_decompression ===
+  using VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV;
+
+  //=== VK_EXT_subpass_merge_feedback ===
+  using VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT;
+
+  //=== VK_LUNARG_direct_driver_loading ===
+  using VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagBitsLUNARG;
+  using VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG;
+  using VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagBitsNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV;
+
+  //=== VK_KHR_maintenance5 ===
+  using VULKAN_HPP_NAMESPACE::BufferUsageFlagBits2KHR;
+  using VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR;
+  using VULKAN_HPP_NAMESPACE::PipelineCreateFlagBits2KHR;
+  using VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT;
+  using VULKAN_HPP_NAMESPACE::ShaderCreateFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT;
+
+  //=== VK_NV_ray_tracing_invocation_reorder ===
+  using VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV;
+
+  //=== VK_EXT_layer_settings ===
+  using VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT;
+
+  //=== VK_NV_low_latency2 ===
+  using VULKAN_HPP_NAMESPACE::LatencyMarkerNV;
+  using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV;
+
+  //=== VK_KHR_cooperative_matrix ===
+  using VULKAN_HPP_NAMESPACE::ComponentTypeKHR;
+  using VULKAN_HPP_NAMESPACE::ComponentTypeNV;
+  using VULKAN_HPP_NAMESPACE::ScopeKHR;
+  using VULKAN_HPP_NAMESPACE::ScopeNV;
+
+  //=== VK_QCOM_image_processing2 ===
+  using VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM;
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  using VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM;
+
+  //=== VK_MSFT_layered_driver ===
+  using VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT;
+
+  //=== VK_KHR_calibrated_timestamps ===
+  using VULKAN_HPP_NAMESPACE::TimeDomainEXT;
+  using VULKAN_HPP_NAMESPACE::TimeDomainKHR;
+
+  //=========================
+  //=== Index Type Traits ===
+  //=========================
+  using VULKAN_HPP_NAMESPACE::IndexTypeValue;
+
+  //======================
+  //=== ENUM to_string ===
+  //======================
+#if !defined( VULKAN_HPP_NO_TO_STRING )
+  using VULKAN_HPP_NAMESPACE::to_string;
+  using VULKAN_HPP_NAMESPACE::toHexString;
+#endif /*VULKAN_HPP_NO_TO_STRING*/
+
+  //=============================
+  //=== EXCEPTIONs AND ERRORs ===
+  //=============================
+#if !defined( VULKAN_HPP_NO_EXCEPTIONS )
+  using VULKAN_HPP_NAMESPACE::DeviceLostError;
+  using VULKAN_HPP_NAMESPACE::Error;
+  using VULKAN_HPP_NAMESPACE::errorCategory;
+  using VULKAN_HPP_NAMESPACE::ErrorCategoryImpl;
+  using VULKAN_HPP_NAMESPACE::ExtensionNotPresentError;
+  using VULKAN_HPP_NAMESPACE::FeatureNotPresentError;
+  using VULKAN_HPP_NAMESPACE::FormatNotSupportedError;
+  using VULKAN_HPP_NAMESPACE::FragmentationError;
+  using VULKAN_HPP_NAMESPACE::FragmentedPoolError;
+  using VULKAN_HPP_NAMESPACE::ImageUsageNotSupportedKHRError;
+  using VULKAN_HPP_NAMESPACE::IncompatibleDisplayKHRError;
+  using VULKAN_HPP_NAMESPACE::IncompatibleDriverError;
+  using VULKAN_HPP_NAMESPACE::InitializationFailedError;
+  using VULKAN_HPP_NAMESPACE::InvalidDrmFormatModifierPlaneLayoutEXTError;
+  using VULKAN_HPP_NAMESPACE::InvalidExternalHandleError;
+  using VULKAN_HPP_NAMESPACE::InvalidOpaqueCaptureAddressError;
+  using VULKAN_HPP_NAMESPACE::InvalidShaderNVError;
+  using VULKAN_HPP_NAMESPACE::LayerNotPresentError;
+  using VULKAN_HPP_NAMESPACE::LogicError;
+  using VULKAN_HPP_NAMESPACE::make_error_code;
+  using VULKAN_HPP_NAMESPACE::make_error_condition;
+  using VULKAN_HPP_NAMESPACE::MemoryMapFailedError;
+  using VULKAN_HPP_NAMESPACE::NativeWindowInUseKHRError;
+  using VULKAN_HPP_NAMESPACE::NotPermittedKHRError;
+  using VULKAN_HPP_NAMESPACE::OutOfDateKHRError;
+  using VULKAN_HPP_NAMESPACE::OutOfDeviceMemoryError;
+  using VULKAN_HPP_NAMESPACE::OutOfHostMemoryError;
+  using VULKAN_HPP_NAMESPACE::OutOfPoolMemoryError;
+  using VULKAN_HPP_NAMESPACE::SurfaceLostKHRError;
+  using VULKAN_HPP_NAMESPACE::SystemError;
+  using VULKAN_HPP_NAMESPACE::TooManyObjectsError;
+  using VULKAN_HPP_NAMESPACE::UnknownError;
+  using VULKAN_HPP_NAMESPACE::ValidationFailedEXTError;
+  using VULKAN_HPP_NAMESPACE::VideoPictureLayoutNotSupportedKHRError;
+  using VULKAN_HPP_NAMESPACE::VideoProfileCodecNotSupportedKHRError;
+  using VULKAN_HPP_NAMESPACE::VideoProfileFormatNotSupportedKHRError;
+  using VULKAN_HPP_NAMESPACE::VideoProfileOperationNotSupportedKHRError;
+  using VULKAN_HPP_NAMESPACE::VideoStdVersionNotSupportedKHRError;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+  using VULKAN_HPP_NAMESPACE::FullScreenExclusiveModeLostEXTError;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  using VULKAN_HPP_NAMESPACE::CompressionExhaustedEXTError;
+  using VULKAN_HPP_NAMESPACE::IncompatibleShaderBinaryEXTError;
+  using VULKAN_HPP_NAMESPACE::InvalidVideoStdParametersKHRError;
+#endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+
+  using VULKAN_HPP_NAMESPACE::createResultValueType;
+  using VULKAN_HPP_NAMESPACE::ignore;
+  using VULKAN_HPP_NAMESPACE::resultCheck;
+  using VULKAN_HPP_NAMESPACE::ResultValue;
+  using VULKAN_HPP_NAMESPACE::ResultValueType;
+
+  //===========================
+  //=== CONSTEXPR CONSTANTs ===
+  //===========================
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::AttachmentUnused;
+  using VULKAN_HPP_NAMESPACE::False;
+  using VULKAN_HPP_NAMESPACE::LodClampNone;
+  using VULKAN_HPP_NAMESPACE::MaxDescriptionSize;
+  using VULKAN_HPP_NAMESPACE::MaxExtensionNameSize;
+  using VULKAN_HPP_NAMESPACE::MaxMemoryHeaps;
+  using VULKAN_HPP_NAMESPACE::MaxMemoryTypes;
+  using VULKAN_HPP_NAMESPACE::MaxPhysicalDeviceNameSize;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyIgnored;
+  using VULKAN_HPP_NAMESPACE::RemainingArrayLayers;
+  using VULKAN_HPP_NAMESPACE::RemainingMipLevels;
+  using VULKAN_HPP_NAMESPACE::SubpassExternal;
+  using VULKAN_HPP_NAMESPACE::True;
+  using VULKAN_HPP_NAMESPACE::UuidSize;
+  using VULKAN_HPP_NAMESPACE::WholeSize;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::LuidSize;
+  using VULKAN_HPP_NAMESPACE::MaxDeviceGroupSize;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyExternal;
+
+  //=== VK_VERSION_1_2 ===
+  using VULKAN_HPP_NAMESPACE::MaxDriverInfoSize;
+  using VULKAN_HPP_NAMESPACE::MaxDriverNameSize;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSurfaceSpecVersion;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::KHRSwapchainExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSwapchainSpecVersion;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::KHRDisplayExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDisplaySpecVersion;
+
+  //=== VK_KHR_display_swapchain ===
+  using VULKAN_HPP_NAMESPACE::KHRDisplaySwapchainExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDisplaySwapchainSpecVersion;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+  //=== VK_KHR_xlib_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRXlibSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRXlibSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+  //=== VK_KHR_xcb_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRXcbSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRXcbSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+  //=== VK_KHR_wayland_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRWaylandSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRWaylandSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_KHR_android_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRAndroidSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRAndroidSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_surface ===
+  using VULKAN_HPP_NAMESPACE::KHRWin32SurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRWin32SurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::EXTDebugReportExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDebugReportSpecVersion;
+
+  //=== VK_NV_glsl_shader ===
+  using VULKAN_HPP_NAMESPACE::NVGlslShaderExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVGlslShaderSpecVersion;
+
+  //=== VK_EXT_depth_range_unrestricted ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthRangeUnrestrictedExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthRangeUnrestrictedSpecVersion;
+
+  //=== VK_KHR_sampler_mirror_clamp_to_edge ===
+  using VULKAN_HPP_NAMESPACE::KHRSamplerMirrorClampToEdgeExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSamplerMirrorClampToEdgeSpecVersion;
+
+  //=== VK_IMG_filter_cubic ===
+  using VULKAN_HPP_NAMESPACE::IMGFilterCubicExtensionName;
+  using VULKAN_HPP_NAMESPACE::IMGFilterCubicSpecVersion;
+
+  //=== VK_AMD_rasterization_order ===
+  using VULKAN_HPP_NAMESPACE::AMDRasterizationOrderExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDRasterizationOrderSpecVersion;
+
+  //=== VK_AMD_shader_trinary_minmax ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderTrinaryMinmaxExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderTrinaryMinmaxSpecVersion;
+
+  //=== VK_AMD_shader_explicit_vertex_parameter ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderExplicitVertexParameterExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderExplicitVertexParameterSpecVersion;
+
+  //=== VK_EXT_debug_marker ===
+  using VULKAN_HPP_NAMESPACE::EXTDebugMarkerExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDebugMarkerSpecVersion;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoQueueExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoQueueSpecVersion;
+
+  //=== VK_KHR_video_decode_queue ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeQueueExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeQueueSpecVersion;
+
+  //=== VK_AMD_gcn_shader ===
+  using VULKAN_HPP_NAMESPACE::AMDGcnShaderExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDGcnShaderSpecVersion;
+
+  //=== VK_NV_dedicated_allocation ===
+  using VULKAN_HPP_NAMESPACE::NVDedicatedAllocationExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDedicatedAllocationSpecVersion;
+
+  //=== VK_EXT_transform_feedback ===
+  using VULKAN_HPP_NAMESPACE::EXTTransformFeedbackExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTTransformFeedbackSpecVersion;
+
+  //=== VK_NVX_binary_import ===
+  using VULKAN_HPP_NAMESPACE::NVXBinaryImportExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVXBinaryImportSpecVersion;
+
+  //=== VK_NVX_image_view_handle ===
+  using VULKAN_HPP_NAMESPACE::NVXImageViewHandleExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVXImageViewHandleSpecVersion;
+
+  //=== VK_AMD_draw_indirect_count ===
+  using VULKAN_HPP_NAMESPACE::AMDDrawIndirectCountExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDDrawIndirectCountSpecVersion;
+
+  //=== VK_AMD_negative_viewport_height ===
+  using VULKAN_HPP_NAMESPACE::AMDNegativeViewportHeightExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDNegativeViewportHeightSpecVersion;
+
+  //=== VK_AMD_gpu_shader_half_float ===
+  using VULKAN_HPP_NAMESPACE::AMDGpuShaderHalfFloatExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDGpuShaderHalfFloatSpecVersion;
+
+  //=== VK_AMD_shader_ballot ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderBallotExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderBallotSpecVersion;
+
+  //=== VK_KHR_video_encode_h264 ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeH264ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeH264SpecVersion;
+
+  //=== VK_KHR_video_encode_h265 ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeH265ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeH265SpecVersion;
+
+  //=== VK_KHR_video_decode_h264 ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeH264ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeH264SpecVersion;
+
+  //=== VK_AMD_texture_gather_bias_lod ===
+  using VULKAN_HPP_NAMESPACE::AMDTextureGatherBiasLodExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDTextureGatherBiasLodSpecVersion;
+
+  //=== VK_AMD_shader_info ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderInfoExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderInfoSpecVersion;
+
+  //=== VK_KHR_dynamic_rendering ===
+  using VULKAN_HPP_NAMESPACE::KHRDynamicRenderingExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDynamicRenderingSpecVersion;
+
+  //=== VK_AMD_shader_image_load_store_lod ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderImageLoadStoreLodExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderImageLoadStoreLodSpecVersion;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_stream_descriptor_surface ===
+  using VULKAN_HPP_NAMESPACE::GGPStreamDescriptorSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::GGPStreamDescriptorSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_NV_corner_sampled_image ===
+  using VULKAN_HPP_NAMESPACE::NVCornerSampledImageExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVCornerSampledImageSpecVersion;
+
+  //=== VK_KHR_multiview ===
+  using VULKAN_HPP_NAMESPACE::KHRMultiviewExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMultiviewSpecVersion;
+
+  //=== VK_IMG_format_pvrtc ===
+  using VULKAN_HPP_NAMESPACE::IMGFormatPvrtcExtensionName;
+  using VULKAN_HPP_NAMESPACE::IMGFormatPvrtcSpecVersion;
+
+  //=== VK_NV_external_memory_capabilities ===
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryCapabilitiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryCapabilitiesSpecVersion;
+
+  //=== VK_NV_external_memory ===
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVExternalMemorySpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_external_memory_win32 ===
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryWin32ExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryWin32SpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_win32_keyed_mutex ===
+  using VULKAN_HPP_NAMESPACE::NVWin32KeyedMutexExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVWin32KeyedMutexSpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_get_physical_device_properties2 ===
+  using VULKAN_HPP_NAMESPACE::KHRGetPhysicalDeviceProperties2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRGetPhysicalDeviceProperties2SpecVersion;
+
+  //=== VK_KHR_device_group ===
+  using VULKAN_HPP_NAMESPACE::KHRDeviceGroupExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDeviceGroupSpecVersion;
+
+  //=== VK_EXT_validation_flags ===
+  using VULKAN_HPP_NAMESPACE::EXTValidationFlagsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTValidationFlagsSpecVersion;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+  //=== VK_NN_vi_surface ===
+  using VULKAN_HPP_NAMESPACE::NNViSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::NNViSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+  //=== VK_KHR_shader_draw_parameters ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderDrawParametersExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderDrawParametersSpecVersion;
+
+  //=== VK_EXT_shader_subgroup_ballot ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderSubgroupBallotExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderSubgroupBallotSpecVersion;
+
+  //=== VK_EXT_shader_subgroup_vote ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderSubgroupVoteExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderSubgroupVoteSpecVersion;
+
+  //=== VK_EXT_texture_compression_astc_hdr ===
+  using VULKAN_HPP_NAMESPACE::EXTTextureCompressionAstcHdrExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTTextureCompressionAstcHdrSpecVersion;
+
+  //=== VK_EXT_astc_decode_mode ===
+  using VULKAN_HPP_NAMESPACE::EXTAstcDecodeModeExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTAstcDecodeModeSpecVersion;
+
+  //=== VK_EXT_pipeline_robustness ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelineRobustnessExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelineRobustnessSpecVersion;
+
+  //=== VK_KHR_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance1SpecVersion;
+
+  //=== VK_KHR_device_group_creation ===
+  using VULKAN_HPP_NAMESPACE::KHRDeviceGroupCreationExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDeviceGroupCreationSpecVersion;
+  using VULKAN_HPP_NAMESPACE::MaxDeviceGroupSizeKHR;
+
+  //=== VK_KHR_external_memory_capabilities ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryCapabilitiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryCapabilitiesSpecVersion;
+  using VULKAN_HPP_NAMESPACE::LuidSizeKHR;
+
+  //=== VK_KHR_external_memory ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemorySpecVersion;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyExternalKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_memory_win32 ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryWin32ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryWin32SpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_memory_fd ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryFdExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalMemoryFdSpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_keyed_mutex ===
+  using VULKAN_HPP_NAMESPACE::KHRWin32KeyedMutexExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRWin32KeyedMutexSpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_semaphore_capabilities ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreCapabilitiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreCapabilitiesSpecVersion;
+
+  //=== VK_KHR_external_semaphore ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreSpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_semaphore_win32 ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreWin32ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreWin32SpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_semaphore_fd ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreFdExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalSemaphoreFdSpecVersion;
+
+  //=== VK_KHR_push_descriptor ===
+  using VULKAN_HPP_NAMESPACE::KHRPushDescriptorExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPushDescriptorSpecVersion;
+
+  //=== VK_EXT_conditional_rendering ===
+  using VULKAN_HPP_NAMESPACE::EXTConditionalRenderingExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTConditionalRenderingSpecVersion;
+
+  //=== VK_KHR_shader_float16_int8 ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderFloat16Int8ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderFloat16Int8SpecVersion;
+
+  //=== VK_KHR_16bit_storage ===
+  using VULKAN_HPP_NAMESPACE::KHR16BitStorageExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHR16BitStorageSpecVersion;
+
+  //=== VK_KHR_incremental_present ===
+  using VULKAN_HPP_NAMESPACE::KHRIncrementalPresentExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRIncrementalPresentSpecVersion;
+
+  //=== VK_KHR_descriptor_update_template ===
+  using VULKAN_HPP_NAMESPACE::KHRDescriptorUpdateTemplateExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDescriptorUpdateTemplateSpecVersion;
+
+  //=== VK_NV_clip_space_w_scaling ===
+  using VULKAN_HPP_NAMESPACE::NVClipSpaceWScalingExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVClipSpaceWScalingSpecVersion;
+
+  //=== VK_EXT_direct_mode_display ===
+  using VULKAN_HPP_NAMESPACE::EXTDirectModeDisplayExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDirectModeDisplaySpecVersion;
+
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+  //=== VK_EXT_acquire_xlib_display ===
+  using VULKAN_HPP_NAMESPACE::EXTAcquireXlibDisplayExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTAcquireXlibDisplaySpecVersion;
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+  //=== VK_EXT_display_surface_counter ===
+  using VULKAN_HPP_NAMESPACE::EXTDisplaySurfaceCounterExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDisplaySurfaceCounterSpecVersion;
+
+  //=== VK_EXT_display_control ===
+  using VULKAN_HPP_NAMESPACE::EXTDisplayControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDisplayControlSpecVersion;
+
+  //=== VK_GOOGLE_display_timing ===
+  using VULKAN_HPP_NAMESPACE::GOOGLEDisplayTimingExtensionName;
+  using VULKAN_HPP_NAMESPACE::GOOGLEDisplayTimingSpecVersion;
+
+  //=== VK_NV_sample_mask_override_coverage ===
+  using VULKAN_HPP_NAMESPACE::NVSampleMaskOverrideCoverageExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVSampleMaskOverrideCoverageSpecVersion;
+
+  //=== VK_NV_geometry_shader_passthrough ===
+  using VULKAN_HPP_NAMESPACE::NVGeometryShaderPassthroughExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVGeometryShaderPassthroughSpecVersion;
+
+  //=== VK_NV_viewport_array2 ===
+  using VULKAN_HPP_NAMESPACE::NVViewportArray2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVViewportArray2SpecVersion;
+
+  //=== VK_NVX_multiview_per_view_attributes ===
+  using VULKAN_HPP_NAMESPACE::NVXMultiviewPerViewAttributesExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVXMultiviewPerViewAttributesSpecVersion;
+
+  //=== VK_NV_viewport_swizzle ===
+  using VULKAN_HPP_NAMESPACE::NVViewportSwizzleExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVViewportSwizzleSpecVersion;
+
+  //=== VK_EXT_discard_rectangles ===
+  using VULKAN_HPP_NAMESPACE::EXTDiscardRectanglesExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDiscardRectanglesSpecVersion;
+
+  //=== VK_EXT_conservative_rasterization ===
+  using VULKAN_HPP_NAMESPACE::EXTConservativeRasterizationExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTConservativeRasterizationSpecVersion;
+
+  //=== VK_EXT_depth_clip_enable ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthClipEnableExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthClipEnableSpecVersion;
+
+  //=== VK_EXT_swapchain_colorspace ===
+  using VULKAN_HPP_NAMESPACE::EXTSwapchainColorSpaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSwapchainColorSpaceSpecVersion;
+
+  //=== VK_EXT_hdr_metadata ===
+  using VULKAN_HPP_NAMESPACE::EXTHdrMetadataExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTHdrMetadataSpecVersion;
+
+  //=== VK_KHR_imageless_framebuffer ===
+  using VULKAN_HPP_NAMESPACE::KHRImagelessFramebufferExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRImagelessFramebufferSpecVersion;
+
+  //=== VK_KHR_create_renderpass2 ===
+  using VULKAN_HPP_NAMESPACE::KHRCreateRenderpass2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRCreateRenderpass2SpecVersion;
+
+  //=== VK_IMG_relaxed_line_rasterization ===
+  using VULKAN_HPP_NAMESPACE::IMGRelaxedLineRasterizationExtensionName;
+  using VULKAN_HPP_NAMESPACE::IMGRelaxedLineRasterizationSpecVersion;
+
+  //=== VK_KHR_shared_presentable_image ===
+  using VULKAN_HPP_NAMESPACE::KHRSharedPresentableImageExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSharedPresentableImageSpecVersion;
+
+  //=== VK_KHR_external_fence_capabilities ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceCapabilitiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceCapabilitiesSpecVersion;
+
+  //=== VK_KHR_external_fence ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceSpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_fence_win32 ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceWin32ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceWin32SpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_fence_fd ===
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceFdExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRExternalFenceFdSpecVersion;
+
+  //=== VK_KHR_performance_query ===
+  using VULKAN_HPP_NAMESPACE::KHRPerformanceQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPerformanceQuerySpecVersion;
+
+  //=== VK_KHR_maintenance2 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance2SpecVersion;
+
+  //=== VK_KHR_get_surface_capabilities2 ===
+  using VULKAN_HPP_NAMESPACE::KHRGetSurfaceCapabilities2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRGetSurfaceCapabilities2SpecVersion;
+
+  //=== VK_KHR_variable_pointers ===
+  using VULKAN_HPP_NAMESPACE::KHRVariablePointersExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVariablePointersSpecVersion;
+
+  //=== VK_KHR_get_display_properties2 ===
+  using VULKAN_HPP_NAMESPACE::KHRGetDisplayProperties2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRGetDisplayProperties2SpecVersion;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+  //=== VK_MVK_ios_surface ===
+  using VULKAN_HPP_NAMESPACE::MVKIosSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::MVKIosSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+  //=== VK_MVK_macos_surface ===
+  using VULKAN_HPP_NAMESPACE::MVKMacosSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::MVKMacosSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+  //=== VK_EXT_external_memory_dma_buf ===
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryDmaBufExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryDmaBufSpecVersion;
+
+  //=== VK_EXT_queue_family_foreign ===
+  using VULKAN_HPP_NAMESPACE::EXTQueueFamilyForeignExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTQueueFamilyForeignSpecVersion;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyForeignEXT;
+
+  //=== VK_KHR_dedicated_allocation ===
+  using VULKAN_HPP_NAMESPACE::KHRDedicatedAllocationExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDedicatedAllocationSpecVersion;
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::EXTDebugUtilsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDebugUtilsSpecVersion;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+  using VULKAN_HPP_NAMESPACE::ANDROIDExternalMemoryAndroidHardwareBufferExtensionName;
+  using VULKAN_HPP_NAMESPACE::ANDROIDExternalMemoryAndroidHardwareBufferSpecVersion;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_EXT_sampler_filter_minmax ===
+  using VULKAN_HPP_NAMESPACE::EXTSamplerFilterMinmaxExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSamplerFilterMinmaxSpecVersion;
+
+  //=== VK_KHR_storage_buffer_storage_class ===
+  using VULKAN_HPP_NAMESPACE::KHRStorageBufferStorageClassExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRStorageBufferStorageClassSpecVersion;
+
+  //=== VK_AMD_gpu_shader_int16 ===
+  using VULKAN_HPP_NAMESPACE::AMDGpuShaderInt16ExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDGpuShaderInt16SpecVersion;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  using VULKAN_HPP_NAMESPACE::AMDXShaderEnqueueExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDXShaderEnqueueSpecVersion;
+  using VULKAN_HPP_NAMESPACE::ShaderIndexUnusedAMDX;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_AMD_mixed_attachment_samples ===
+  using VULKAN_HPP_NAMESPACE::AMDMixedAttachmentSamplesExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDMixedAttachmentSamplesSpecVersion;
+
+  //=== VK_AMD_shader_fragment_mask ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderFragmentMaskExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderFragmentMaskSpecVersion;
+
+  //=== VK_EXT_inline_uniform_block ===
+  using VULKAN_HPP_NAMESPACE::EXTInlineUniformBlockExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTInlineUniformBlockSpecVersion;
+
+  //=== VK_EXT_shader_stencil_export ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderStencilExportExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderStencilExportSpecVersion;
+
+  //=== VK_EXT_sample_locations ===
+  using VULKAN_HPP_NAMESPACE::EXTSampleLocationsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSampleLocationsSpecVersion;
+
+  //=== VK_KHR_relaxed_block_layout ===
+  using VULKAN_HPP_NAMESPACE::KHRRelaxedBlockLayoutExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRRelaxedBlockLayoutSpecVersion;
+
+  //=== VK_KHR_get_memory_requirements2 ===
+  using VULKAN_HPP_NAMESPACE::KHRGetMemoryRequirements2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRGetMemoryRequirements2SpecVersion;
+
+  //=== VK_KHR_image_format_list ===
+  using VULKAN_HPP_NAMESPACE::KHRImageFormatListExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRImageFormatListSpecVersion;
+
+  //=== VK_EXT_blend_operation_advanced ===
+  using VULKAN_HPP_NAMESPACE::EXTBlendOperationAdvancedExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTBlendOperationAdvancedSpecVersion;
+
+  //=== VK_NV_fragment_coverage_to_color ===
+  using VULKAN_HPP_NAMESPACE::NVFragmentCoverageToColorExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVFragmentCoverageToColorSpecVersion;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::KHRAccelerationStructureExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRAccelerationStructureSpecVersion;
+
+  //=== VK_KHR_ray_tracing_pipeline ===
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingPipelineExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingPipelineSpecVersion;
+  using VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
+
+  //=== VK_KHR_ray_query ===
+  using VULKAN_HPP_NAMESPACE::KHRRayQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRRayQuerySpecVersion;
+
+  //=== VK_NV_framebuffer_mixed_samples ===
+  using VULKAN_HPP_NAMESPACE::NVFramebufferMixedSamplesExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVFramebufferMixedSamplesSpecVersion;
+
+  //=== VK_NV_fill_rectangle ===
+  using VULKAN_HPP_NAMESPACE::NVFillRectangleExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVFillRectangleSpecVersion;
+
+  //=== VK_NV_shader_sm_builtins ===
+  using VULKAN_HPP_NAMESPACE::NVShaderSmBuiltinsExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVShaderSmBuiltinsSpecVersion;
+
+  //=== VK_EXT_post_depth_coverage ===
+  using VULKAN_HPP_NAMESPACE::EXTPostDepthCoverageExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPostDepthCoverageSpecVersion;
+
+  //=== VK_KHR_sampler_ycbcr_conversion ===
+  using VULKAN_HPP_NAMESPACE::KHRSamplerYcbcrConversionExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSamplerYcbcrConversionSpecVersion;
+
+  //=== VK_KHR_bind_memory2 ===
+  using VULKAN_HPP_NAMESPACE::KHRBindMemory2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRBindMemory2SpecVersion;
+
+  //=== VK_EXT_image_drm_format_modifier ===
+  using VULKAN_HPP_NAMESPACE::EXTImageDrmFormatModifierExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageDrmFormatModifierSpecVersion;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::EXTValidationCacheExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTValidationCacheSpecVersion;
+
+  //=== VK_EXT_descriptor_indexing ===
+  using VULKAN_HPP_NAMESPACE::EXTDescriptorIndexingExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDescriptorIndexingSpecVersion;
+
+  //=== VK_EXT_shader_viewport_index_layer ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderViewportIndexLayerExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderViewportIndexLayerSpecVersion;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_KHR_portability_subset ===
+  using VULKAN_HPP_NAMESPACE::KHRPortabilitySubsetExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPortabilitySubsetSpecVersion;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_shading_rate_image ===
+  using VULKAN_HPP_NAMESPACE::NVShadingRateImageExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVShadingRateImageSpecVersion;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::NVRayTracingExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVRayTracingSpecVersion;
+  using VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
+
+  //=== VK_NV_representative_fragment_test ===
+  using VULKAN_HPP_NAMESPACE::NVRepresentativeFragmentTestExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVRepresentativeFragmentTestSpecVersion;
+
+  //=== VK_KHR_maintenance3 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance3ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance3SpecVersion;
+
+  //=== VK_KHR_draw_indirect_count ===
+  using VULKAN_HPP_NAMESPACE::KHRDrawIndirectCountExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDrawIndirectCountSpecVersion;
+
+  //=== VK_EXT_filter_cubic ===
+  using VULKAN_HPP_NAMESPACE::EXTFilterCubicExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFilterCubicSpecVersion;
+
+  //=== VK_QCOM_render_pass_shader_resolve ===
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassShaderResolveExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassShaderResolveSpecVersion;
+
+  //=== VK_EXT_global_priority ===
+  using VULKAN_HPP_NAMESPACE::EXTGlobalPriorityExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTGlobalPrioritySpecVersion;
+
+  //=== VK_KHR_shader_subgroup_extended_types ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderSubgroupExtendedTypesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderSubgroupExtendedTypesSpecVersion;
+
+  //=== VK_KHR_8bit_storage ===
+  using VULKAN_HPP_NAMESPACE::KHR8BitStorageExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHR8BitStorageSpecVersion;
+
+  //=== VK_EXT_external_memory_host ===
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryHostExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryHostSpecVersion;
+
+  //=== VK_AMD_buffer_marker ===
+  using VULKAN_HPP_NAMESPACE::AMDBufferMarkerExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDBufferMarkerSpecVersion;
+
+  //=== VK_KHR_shader_atomic_int64 ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderAtomicInt64ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderAtomicInt64SpecVersion;
+
+  //=== VK_KHR_shader_clock ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderClockExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderClockSpecVersion;
+
+  //=== VK_AMD_pipeline_compiler_control ===
+  using VULKAN_HPP_NAMESPACE::AMDPipelineCompilerControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDPipelineCompilerControlSpecVersion;
+
+  //=== VK_EXT_calibrated_timestamps ===
+  using VULKAN_HPP_NAMESPACE::EXTCalibratedTimestampsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTCalibratedTimestampsSpecVersion;
+
+  //=== VK_AMD_shader_core_properties ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderCorePropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderCorePropertiesSpecVersion;
+
+  //=== VK_KHR_video_decode_h265 ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeH265ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoDecodeH265SpecVersion;
+
+  //=== VK_KHR_global_priority ===
+  using VULKAN_HPP_NAMESPACE::KHRGlobalPriorityExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRGlobalPrioritySpecVersion;
+  using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeKHR;
+
+  //=== VK_AMD_memory_overallocation_behavior ===
+  using VULKAN_HPP_NAMESPACE::AMDMemoryOverallocationBehaviorExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDMemoryOverallocationBehaviorSpecVersion;
+
+  //=== VK_EXT_vertex_attribute_divisor ===
+  using VULKAN_HPP_NAMESPACE::EXTVertexAttributeDivisorExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTVertexAttributeDivisorSpecVersion;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_frame_token ===
+  using VULKAN_HPP_NAMESPACE::GGPFrameTokenExtensionName;
+  using VULKAN_HPP_NAMESPACE::GGPFrameTokenSpecVersion;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_EXT_pipeline_creation_feedback ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelineCreationFeedbackExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelineCreationFeedbackSpecVersion;
+
+  //=== VK_KHR_driver_properties ===
+  using VULKAN_HPP_NAMESPACE::KHRDriverPropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDriverPropertiesSpecVersion;
+  using VULKAN_HPP_NAMESPACE::MaxDriverInfoSizeKHR;
+  using VULKAN_HPP_NAMESPACE::MaxDriverNameSizeKHR;
+
+  //=== VK_KHR_shader_float_controls ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderFloatControlsExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderFloatControlsSpecVersion;
+
+  //=== VK_NV_shader_subgroup_partitioned ===
+  using VULKAN_HPP_NAMESPACE::NVShaderSubgroupPartitionedExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVShaderSubgroupPartitionedSpecVersion;
+
+  //=== VK_KHR_depth_stencil_resolve ===
+  using VULKAN_HPP_NAMESPACE::KHRDepthStencilResolveExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDepthStencilResolveSpecVersion;
+
+  //=== VK_KHR_swapchain_mutable_format ===
+  using VULKAN_HPP_NAMESPACE::KHRSwapchainMutableFormatExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSwapchainMutableFormatSpecVersion;
+
+  //=== VK_NV_compute_shader_derivatives ===
+  using VULKAN_HPP_NAMESPACE::NVComputeShaderDerivativesExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVComputeShaderDerivativesSpecVersion;
+
+  //=== VK_NV_mesh_shader ===
+  using VULKAN_HPP_NAMESPACE::NVMeshShaderExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVMeshShaderSpecVersion;
+
+  //=== VK_NV_fragment_shader_barycentric ===
+  using VULKAN_HPP_NAMESPACE::NVFragmentShaderBarycentricExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVFragmentShaderBarycentricSpecVersion;
+
+  //=== VK_NV_shader_image_footprint ===
+  using VULKAN_HPP_NAMESPACE::NVShaderImageFootprintExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVShaderImageFootprintSpecVersion;
+
+  //=== VK_NV_scissor_exclusive ===
+  using VULKAN_HPP_NAMESPACE::NVScissorExclusiveExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVScissorExclusiveSpecVersion;
+
+  //=== VK_NV_device_diagnostic_checkpoints ===
+  using VULKAN_HPP_NAMESPACE::NVDeviceDiagnosticCheckpointsExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDeviceDiagnosticCheckpointsSpecVersion;
+
+  //=== VK_KHR_timeline_semaphore ===
+  using VULKAN_HPP_NAMESPACE::KHRTimelineSemaphoreExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRTimelineSemaphoreSpecVersion;
+
+  //=== VK_INTEL_shader_integer_functions2 ===
+  using VULKAN_HPP_NAMESPACE::INTELShaderIntegerFunctions2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::INTELShaderIntegerFunctions2SpecVersion;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::INTELPerformanceQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::INTELPerformanceQuerySpecVersion;
+
+  //=== VK_KHR_vulkan_memory_model ===
+  using VULKAN_HPP_NAMESPACE::KHRVulkanMemoryModelExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVulkanMemoryModelSpecVersion;
+
+  //=== VK_EXT_pci_bus_info ===
+  using VULKAN_HPP_NAMESPACE::EXTPciBusInfoExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPciBusInfoSpecVersion;
+
+  //=== VK_AMD_display_native_hdr ===
+  using VULKAN_HPP_NAMESPACE::AMDDisplayNativeHdrExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDDisplayNativeHdrSpecVersion;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_imagepipe_surface ===
+  using VULKAN_HPP_NAMESPACE::FUCHSIAImagepipeSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::FUCHSIAImagepipeSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_KHR_shader_terminate_invocation ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderTerminateInvocationExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderTerminateInvocationSpecVersion;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_surface ===
+  using VULKAN_HPP_NAMESPACE::EXTMetalSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMetalSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_EXT_fragment_density_map ===
+  using VULKAN_HPP_NAMESPACE::EXTFragmentDensityMapExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFragmentDensityMapSpecVersion;
+
+  //=== VK_EXT_scalar_block_layout ===
+  using VULKAN_HPP_NAMESPACE::EXTScalarBlockLayoutExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTScalarBlockLayoutSpecVersion;
+
+  //=== VK_GOOGLE_hlsl_functionality1 ===
+  using VULKAN_HPP_NAMESPACE::GOOGLEHlslFunctionality1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::GOOGLEHlslFunctionality1SpecVersion;
+
+  //=== VK_GOOGLE_decorate_string ===
+  using VULKAN_HPP_NAMESPACE::GOOGLEDecorateStringExtensionName;
+  using VULKAN_HPP_NAMESPACE::GOOGLEDecorateStringSpecVersion;
+
+  //=== VK_EXT_subgroup_size_control ===
+  using VULKAN_HPP_NAMESPACE::EXTSubgroupSizeControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSubgroupSizeControlSpecVersion;
+
+  //=== VK_KHR_fragment_shading_rate ===
+  using VULKAN_HPP_NAMESPACE::KHRFragmentShadingRateExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRFragmentShadingRateSpecVersion;
+
+  //=== VK_AMD_shader_core_properties2 ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderCoreProperties2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderCoreProperties2SpecVersion;
+
+  //=== VK_AMD_device_coherent_memory ===
+  using VULKAN_HPP_NAMESPACE::AMDDeviceCoherentMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDDeviceCoherentMemorySpecVersion;
+
+  //=== VK_EXT_shader_image_atomic_int64 ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderImageAtomicInt64ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderImageAtomicInt64SpecVersion;
+
+  //=== VK_KHR_spirv_1_4 ===
+  using VULKAN_HPP_NAMESPACE::KHRSpirv14ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSpirv14SpecVersion;
+
+  //=== VK_EXT_memory_budget ===
+  using VULKAN_HPP_NAMESPACE::EXTMemoryBudgetExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMemoryBudgetSpecVersion;
+
+  //=== VK_EXT_memory_priority ===
+  using VULKAN_HPP_NAMESPACE::EXTMemoryPriorityExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMemoryPrioritySpecVersion;
+
+  //=== VK_KHR_surface_protected_capabilities ===
+  using VULKAN_HPP_NAMESPACE::KHRSurfaceProtectedCapabilitiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSurfaceProtectedCapabilitiesSpecVersion;
+
+  //=== VK_NV_dedicated_allocation_image_aliasing ===
+  using VULKAN_HPP_NAMESPACE::NVDedicatedAllocationImageAliasingExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDedicatedAllocationImageAliasingSpecVersion;
+
+  //=== VK_KHR_separate_depth_stencil_layouts ===
+  using VULKAN_HPP_NAMESPACE::KHRSeparateDepthStencilLayoutsExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSeparateDepthStencilLayoutsSpecVersion;
+
+  //=== VK_EXT_buffer_device_address ===
+  using VULKAN_HPP_NAMESPACE::EXTBufferDeviceAddressExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTBufferDeviceAddressSpecVersion;
+
+  //=== VK_EXT_tooling_info ===
+  using VULKAN_HPP_NAMESPACE::EXTToolingInfoExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTToolingInfoSpecVersion;
+
+  //=== VK_EXT_separate_stencil_usage ===
+  using VULKAN_HPP_NAMESPACE::EXTSeparateStencilUsageExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSeparateStencilUsageSpecVersion;
+
+  //=== VK_EXT_validation_features ===
+  using VULKAN_HPP_NAMESPACE::EXTValidationFeaturesExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTValidationFeaturesSpecVersion;
+
+  //=== VK_KHR_present_wait ===
+  using VULKAN_HPP_NAMESPACE::KHRPresentWaitExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPresentWaitSpecVersion;
+
+  //=== VK_NV_cooperative_matrix ===
+  using VULKAN_HPP_NAMESPACE::NVCooperativeMatrixExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVCooperativeMatrixSpecVersion;
+
+  //=== VK_NV_coverage_reduction_mode ===
+  using VULKAN_HPP_NAMESPACE::NVCoverageReductionModeExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVCoverageReductionModeSpecVersion;
+
+  //=== VK_EXT_fragment_shader_interlock ===
+  using VULKAN_HPP_NAMESPACE::EXTFragmentShaderInterlockExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFragmentShaderInterlockSpecVersion;
+
+  //=== VK_EXT_ycbcr_image_arrays ===
+  using VULKAN_HPP_NAMESPACE::EXTYcbcrImageArraysExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTYcbcrImageArraysSpecVersion;
+
+  //=== VK_KHR_uniform_buffer_standard_layout ===
+  using VULKAN_HPP_NAMESPACE::KHRUniformBufferStandardLayoutExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRUniformBufferStandardLayoutSpecVersion;
+
+  //=== VK_EXT_provoking_vertex ===
+  using VULKAN_HPP_NAMESPACE::EXTProvokingVertexExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTProvokingVertexSpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_EXT_full_screen_exclusive ===
+  using VULKAN_HPP_NAMESPACE::EXTFullScreenExclusiveExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFullScreenExclusiveSpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_headless_surface ===
+  using VULKAN_HPP_NAMESPACE::EXTHeadlessSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTHeadlessSurfaceSpecVersion;
+
+  //=== VK_KHR_buffer_device_address ===
+  using VULKAN_HPP_NAMESPACE::KHRBufferDeviceAddressExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRBufferDeviceAddressSpecVersion;
+
+  //=== VK_EXT_line_rasterization ===
+  using VULKAN_HPP_NAMESPACE::EXTLineRasterizationExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTLineRasterizationSpecVersion;
+
+  //=== VK_EXT_shader_atomic_float ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderAtomicFloatExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderAtomicFloatSpecVersion;
+
+  //=== VK_EXT_host_query_reset ===
+  using VULKAN_HPP_NAMESPACE::EXTHostQueryResetExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTHostQueryResetSpecVersion;
+
+  //=== VK_EXT_index_type_uint8 ===
+  using VULKAN_HPP_NAMESPACE::EXTIndexTypeUint8ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTIndexTypeUint8SpecVersion;
+
+  //=== VK_EXT_extended_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicStateExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicStateSpecVersion;
+
+  //=== VK_KHR_deferred_host_operations ===
+  using VULKAN_HPP_NAMESPACE::KHRDeferredHostOperationsExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRDeferredHostOperationsSpecVersion;
+
+  //=== VK_KHR_pipeline_executable_properties ===
+  using VULKAN_HPP_NAMESPACE::KHRPipelineExecutablePropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPipelineExecutablePropertiesSpecVersion;
+
+  //=== VK_EXT_host_image_copy ===
+  using VULKAN_HPP_NAMESPACE::EXTHostImageCopyExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTHostImageCopySpecVersion;
+
+  //=== VK_KHR_map_memory2 ===
+  using VULKAN_HPP_NAMESPACE::KHRMapMemory2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMapMemory2SpecVersion;
+
+  //=== VK_EXT_shader_atomic_float2 ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderAtomicFloat2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderAtomicFloat2SpecVersion;
+
+  //=== VK_EXT_surface_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::EXTSurfaceMaintenance1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSurfaceMaintenance1SpecVersion;
+
+  //=== VK_EXT_swapchain_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::EXTSwapchainMaintenance1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSwapchainMaintenance1SpecVersion;
+
+  //=== VK_EXT_shader_demote_to_helper_invocation ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderDemoteToHelperInvocationExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderDemoteToHelperInvocationSpecVersion;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::NVDeviceGeneratedCommandsExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDeviceGeneratedCommandsSpecVersion;
+
+  //=== VK_NV_inherited_viewport_scissor ===
+  using VULKAN_HPP_NAMESPACE::NVInheritedViewportScissorExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVInheritedViewportScissorSpecVersion;
+
+  //=== VK_KHR_shader_integer_dot_product ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderIntegerDotProductExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderIntegerDotProductSpecVersion;
+
+  //=== VK_EXT_texel_buffer_alignment ===
+  using VULKAN_HPP_NAMESPACE::EXTTexelBufferAlignmentExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTTexelBufferAlignmentSpecVersion;
+
+  //=== VK_QCOM_render_pass_transform ===
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassTransformExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassTransformSpecVersion;
+
+  //=== VK_EXT_depth_bias_control ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthBiasControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthBiasControlSpecVersion;
+
+  //=== VK_EXT_device_memory_report ===
+  using VULKAN_HPP_NAMESPACE::EXTDeviceMemoryReportExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDeviceMemoryReportSpecVersion;
+
+  //=== VK_EXT_acquire_drm_display ===
+  using VULKAN_HPP_NAMESPACE::EXTAcquireDrmDisplayExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTAcquireDrmDisplaySpecVersion;
+
+  //=== VK_EXT_robustness2 ===
+  using VULKAN_HPP_NAMESPACE::EXTRobustness2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTRobustness2SpecVersion;
+
+  //=== VK_EXT_custom_border_color ===
+  using VULKAN_HPP_NAMESPACE::EXTCustomBorderColorExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTCustomBorderColorSpecVersion;
+
+  //=== VK_GOOGLE_user_type ===
+  using VULKAN_HPP_NAMESPACE::GOOGLEUserTypeExtensionName;
+  using VULKAN_HPP_NAMESPACE::GOOGLEUserTypeSpecVersion;
+
+  //=== VK_KHR_pipeline_library ===
+  using VULKAN_HPP_NAMESPACE::KHRPipelineLibraryExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPipelineLibrarySpecVersion;
+
+  //=== VK_NV_present_barrier ===
+  using VULKAN_HPP_NAMESPACE::NVPresentBarrierExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVPresentBarrierSpecVersion;
+
+  //=== VK_KHR_shader_non_semantic_info ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderNonSemanticInfoExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderNonSemanticInfoSpecVersion;
+
+  //=== VK_KHR_present_id ===
+  using VULKAN_HPP_NAMESPACE::KHRPresentIdExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPresentIdSpecVersion;
+
+  //=== VK_EXT_private_data ===
+  using VULKAN_HPP_NAMESPACE::EXTPrivateDataExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPrivateDataSpecVersion;
+
+  //=== VK_EXT_pipeline_creation_cache_control ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelineCreationCacheControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelineCreationCacheControlSpecVersion;
+
+  //=== VK_KHR_video_encode_queue ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeQueueExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoEncodeQueueSpecVersion;
+
+  //=== VK_NV_device_diagnostics_config ===
+  using VULKAN_HPP_NAMESPACE::NVDeviceDiagnosticsConfigExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDeviceDiagnosticsConfigSpecVersion;
+
+  //=== VK_QCOM_render_pass_store_ops ===
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassStoreOpsExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMRenderPassStoreOpsSpecVersion;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  using VULKAN_HPP_NAMESPACE::NVCudaKernelLaunchExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVCudaKernelLaunchSpecVersion;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_low_latency ===
+  using VULKAN_HPP_NAMESPACE::NVLowLatencyExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVLowLatencySpecVersion;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_objects ===
+  using VULKAN_HPP_NAMESPACE::EXTMetalObjectsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMetalObjectsSpecVersion;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_KHR_synchronization2 ===
+  using VULKAN_HPP_NAMESPACE::KHRSynchronization2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRSynchronization2SpecVersion;
+
+  //=== VK_EXT_descriptor_buffer ===
+  using VULKAN_HPP_NAMESPACE::EXTDescriptorBufferExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDescriptorBufferSpecVersion;
+
+  //=== VK_EXT_graphics_pipeline_library ===
+  using VULKAN_HPP_NAMESPACE::EXTGraphicsPipelineLibraryExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTGraphicsPipelineLibrarySpecVersion;
+
+  //=== VK_AMD_shader_early_and_late_fragment_tests ===
+  using VULKAN_HPP_NAMESPACE::AMDShaderEarlyAndLateFragmentTestsExtensionName;
+  using VULKAN_HPP_NAMESPACE::AMDShaderEarlyAndLateFragmentTestsSpecVersion;
+
+  //=== VK_KHR_fragment_shader_barycentric ===
+  using VULKAN_HPP_NAMESPACE::KHRFragmentShaderBarycentricExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRFragmentShaderBarycentricSpecVersion;
+
+  //=== VK_KHR_shader_subgroup_uniform_control_flow ===
+  using VULKAN_HPP_NAMESPACE::KHRShaderSubgroupUniformControlFlowExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRShaderSubgroupUniformControlFlowSpecVersion;
+
+  //=== VK_KHR_zero_initialize_workgroup_memory ===
+  using VULKAN_HPP_NAMESPACE::KHRZeroInitializeWorkgroupMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRZeroInitializeWorkgroupMemorySpecVersion;
+
+  //=== VK_NV_fragment_shading_rate_enums ===
+  using VULKAN_HPP_NAMESPACE::NVFragmentShadingRateEnumsExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVFragmentShadingRateEnumsSpecVersion;
+
+  //=== VK_NV_ray_tracing_motion_blur ===
+  using VULKAN_HPP_NAMESPACE::NVRayTracingMotionBlurExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVRayTracingMotionBlurSpecVersion;
+
+  //=== VK_EXT_mesh_shader ===
+  using VULKAN_HPP_NAMESPACE::EXTMeshShaderExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMeshShaderSpecVersion;
+
+  //=== VK_EXT_ycbcr_2plane_444_formats ===
+  using VULKAN_HPP_NAMESPACE::EXTYcbcr2Plane444FormatsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTYcbcr2Plane444FormatsSpecVersion;
+
+  //=== VK_EXT_fragment_density_map2 ===
+  using VULKAN_HPP_NAMESPACE::EXTFragmentDensityMap2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFragmentDensityMap2SpecVersion;
+
+  //=== VK_QCOM_rotated_copy_commands ===
+  using VULKAN_HPP_NAMESPACE::QCOMRotatedCopyCommandsExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMRotatedCopyCommandsSpecVersion;
+
+  //=== VK_EXT_image_robustness ===
+  using VULKAN_HPP_NAMESPACE::EXTImageRobustnessExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageRobustnessSpecVersion;
+
+  //=== VK_KHR_workgroup_memory_explicit_layout ===
+  using VULKAN_HPP_NAMESPACE::KHRWorkgroupMemoryExplicitLayoutExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRWorkgroupMemoryExplicitLayoutSpecVersion;
+
+  //=== VK_KHR_copy_commands2 ===
+  using VULKAN_HPP_NAMESPACE::KHRCopyCommands2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRCopyCommands2SpecVersion;
+
+  //=== VK_EXT_image_compression_control ===
+  using VULKAN_HPP_NAMESPACE::EXTImageCompressionControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageCompressionControlSpecVersion;
+
+  //=== VK_EXT_attachment_feedback_loop_layout ===
+  using VULKAN_HPP_NAMESPACE::EXTAttachmentFeedbackLoopLayoutExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTAttachmentFeedbackLoopLayoutSpecVersion;
+
+  //=== VK_EXT_4444_formats ===
+  using VULKAN_HPP_NAMESPACE::EXT4444FormatsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXT4444FormatsSpecVersion;
+
+  //=== VK_EXT_device_fault ===
+  using VULKAN_HPP_NAMESPACE::EXTDeviceFaultExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDeviceFaultSpecVersion;
+
+  //=== VK_ARM_rasterization_order_attachment_access ===
+  using VULKAN_HPP_NAMESPACE::ARMRasterizationOrderAttachmentAccessExtensionName;
+  using VULKAN_HPP_NAMESPACE::ARMRasterizationOrderAttachmentAccessSpecVersion;
+
+  //=== VK_EXT_rgba10x6_formats ===
+  using VULKAN_HPP_NAMESPACE::EXTRgba10X6FormatsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTRgba10X6FormatsSpecVersion;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_acquire_winrt_display ===
+  using VULKAN_HPP_NAMESPACE::NVAcquireWinrtDisplayExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVAcquireWinrtDisplaySpecVersion;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+  //=== VK_EXT_directfb_surface ===
+  using VULKAN_HPP_NAMESPACE::EXTDirectfbSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDirectfbSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+  //=== VK_VALVE_mutable_descriptor_type ===
+  using VULKAN_HPP_NAMESPACE::VALVEMutableDescriptorTypeExtensionName;
+  using VULKAN_HPP_NAMESPACE::VALVEMutableDescriptorTypeSpecVersion;
+
+  //=== VK_EXT_vertex_input_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::EXTVertexInputDynamicStateExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTVertexInputDynamicStateSpecVersion;
+
+  //=== VK_EXT_physical_device_drm ===
+  using VULKAN_HPP_NAMESPACE::EXTPhysicalDeviceDrmExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPhysicalDeviceDrmSpecVersion;
+
+  //=== VK_EXT_device_address_binding_report ===
+  using VULKAN_HPP_NAMESPACE::EXTDeviceAddressBindingReportExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDeviceAddressBindingReportSpecVersion;
+
+  //=== VK_EXT_depth_clip_control ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthClipControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthClipControlSpecVersion;
+
+  //=== VK_EXT_primitive_topology_list_restart ===
+  using VULKAN_HPP_NAMESPACE::EXTPrimitiveTopologyListRestartExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPrimitiveTopologyListRestartSpecVersion;
+
+  //=== VK_KHR_format_feature_flags2 ===
+  using VULKAN_HPP_NAMESPACE::KHRFormatFeatureFlags2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRFormatFeatureFlags2SpecVersion;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_memory ===
+  using VULKAN_HPP_NAMESPACE::FUCHSIAExternalMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::FUCHSIAExternalMemorySpecVersion;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_semaphore ===
+  using VULKAN_HPP_NAMESPACE::FUCHSIAExternalSemaphoreExtensionName;
+  using VULKAN_HPP_NAMESPACE::FUCHSIAExternalSemaphoreSpecVersion;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::FUCHSIABufferCollectionExtensionName;
+  using VULKAN_HPP_NAMESPACE::FUCHSIABufferCollectionSpecVersion;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_HUAWEI_subpass_shading ===
+  using VULKAN_HPP_NAMESPACE::HUAWEISubpassShadingExtensionName;
+  using VULKAN_HPP_NAMESPACE::HUAWEISubpassShadingSpecVersion;
+
+  //=== VK_HUAWEI_invocation_mask ===
+  using VULKAN_HPP_NAMESPACE::HUAWEIInvocationMaskExtensionName;
+  using VULKAN_HPP_NAMESPACE::HUAWEIInvocationMaskSpecVersion;
+
+  //=== VK_NV_external_memory_rdma ===
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryRdmaExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVExternalMemoryRdmaSpecVersion;
+
+  //=== VK_EXT_pipeline_properties ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelinePropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelinePropertiesSpecVersion;
+
+  //=== VK_EXT_frame_boundary ===
+  using VULKAN_HPP_NAMESPACE::EXTFrameBoundaryExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTFrameBoundarySpecVersion;
+
+  //=== VK_EXT_multisampled_render_to_single_sampled ===
+  using VULKAN_HPP_NAMESPACE::EXTMultisampledRenderToSingleSampledExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMultisampledRenderToSingleSampledSpecVersion;
+
+  //=== VK_EXT_extended_dynamic_state2 ===
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicState2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicState2SpecVersion;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_screen_surface ===
+  using VULKAN_HPP_NAMESPACE::QNXScreenSurfaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::QNXScreenSurfaceSpecVersion;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_EXT_color_write_enable ===
+  using VULKAN_HPP_NAMESPACE::EXTColorWriteEnableExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTColorWriteEnableSpecVersion;
+
+  //=== VK_EXT_primitives_generated_query ===
+  using VULKAN_HPP_NAMESPACE::EXTPrimitivesGeneratedQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPrimitivesGeneratedQuerySpecVersion;
+
+  //=== VK_KHR_ray_tracing_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingMaintenance1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingMaintenance1SpecVersion;
+
+  //=== VK_EXT_global_priority_query ===
+  using VULKAN_HPP_NAMESPACE::EXTGlobalPriorityQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTGlobalPriorityQuerySpecVersion;
+  using VULKAN_HPP_NAMESPACE::MaxGlobalPrioritySizeEXT;
+
+  //=== VK_EXT_image_view_min_lod ===
+  using VULKAN_HPP_NAMESPACE::EXTImageViewMinLodExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageViewMinLodSpecVersion;
+
+  //=== VK_EXT_multi_draw ===
+  using VULKAN_HPP_NAMESPACE::EXTMultiDrawExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMultiDrawSpecVersion;
+
+  //=== VK_EXT_image_2d_view_of_3d ===
+  using VULKAN_HPP_NAMESPACE::EXTImage2DViewOf3DExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImage2DViewOf3DSpecVersion;
+
+  //=== VK_KHR_portability_enumeration ===
+  using VULKAN_HPP_NAMESPACE::KHRPortabilityEnumerationExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRPortabilityEnumerationSpecVersion;
+
+  //=== VK_EXT_shader_tile_image ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderTileImageExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderTileImageSpecVersion;
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::EXTOpacityMicromapExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTOpacityMicromapSpecVersion;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  using VULKAN_HPP_NAMESPACE::NVDisplacementMicromapExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDisplacementMicromapSpecVersion;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_EXT_load_store_op_none ===
+  using VULKAN_HPP_NAMESPACE::EXTLoadStoreOpNoneExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTLoadStoreOpNoneSpecVersion;
+
+  //=== VK_HUAWEI_cluster_culling_shader ===
+  using VULKAN_HPP_NAMESPACE::HUAWEIClusterCullingShaderExtensionName;
+  using VULKAN_HPP_NAMESPACE::HUAWEIClusterCullingShaderSpecVersion;
+
+  //=== VK_EXT_border_color_swizzle ===
+  using VULKAN_HPP_NAMESPACE::EXTBorderColorSwizzleExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTBorderColorSwizzleSpecVersion;
+
+  //=== VK_EXT_pageable_device_local_memory ===
+  using VULKAN_HPP_NAMESPACE::EXTPageableDeviceLocalMemoryExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPageableDeviceLocalMemorySpecVersion;
+
+  //=== VK_KHR_maintenance4 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance4ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance4SpecVersion;
+
+  //=== VK_ARM_shader_core_properties ===
+  using VULKAN_HPP_NAMESPACE::ARMShaderCorePropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::ARMShaderCorePropertiesSpecVersion;
+
+  //=== VK_ARM_scheduling_controls ===
+  using VULKAN_HPP_NAMESPACE::ARMSchedulingControlsExtensionName;
+  using VULKAN_HPP_NAMESPACE::ARMSchedulingControlsSpecVersion;
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  using VULKAN_HPP_NAMESPACE::EXTImageSlicedViewOf3DExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageSlicedViewOf3DSpecVersion;
+  using VULKAN_HPP_NAMESPACE::Remaining3DSlicesEXT;
+
+  //=== VK_VALVE_descriptor_set_host_mapping ===
+  using VULKAN_HPP_NAMESPACE::VALVEDescriptorSetHostMappingExtensionName;
+  using VULKAN_HPP_NAMESPACE::VALVEDescriptorSetHostMappingSpecVersion;
+
+  //=== VK_EXT_depth_clamp_zero_one ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthClampZeroOneExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthClampZeroOneSpecVersion;
+
+  //=== VK_EXT_non_seamless_cube_map ===
+  using VULKAN_HPP_NAMESPACE::EXTNonSeamlessCubeMapExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTNonSeamlessCubeMapSpecVersion;
+
+  //=== VK_ARM_render_pass_striped ===
+  using VULKAN_HPP_NAMESPACE::ARMRenderPassStripedExtensionName;
+  using VULKAN_HPP_NAMESPACE::ARMRenderPassStripedSpecVersion;
+
+  //=== VK_QCOM_fragment_density_map_offset ===
+  using VULKAN_HPP_NAMESPACE::QCOMFragmentDensityMapOffsetExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMFragmentDensityMapOffsetSpecVersion;
+
+  //=== VK_NV_copy_memory_indirect ===
+  using VULKAN_HPP_NAMESPACE::NVCopyMemoryIndirectExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVCopyMemoryIndirectSpecVersion;
+
+  //=== VK_NV_memory_decompression ===
+  using VULKAN_HPP_NAMESPACE::NVMemoryDecompressionExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVMemoryDecompressionSpecVersion;
+
+  //=== VK_NV_device_generated_commands_compute ===
+  using VULKAN_HPP_NAMESPACE::NVDeviceGeneratedCommandsComputeExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDeviceGeneratedCommandsComputeSpecVersion;
+
+  //=== VK_NV_linear_color_attachment ===
+  using VULKAN_HPP_NAMESPACE::NVLinearColorAttachmentExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVLinearColorAttachmentSpecVersion;
+
+  //=== VK_GOOGLE_surfaceless_query ===
+  using VULKAN_HPP_NAMESPACE::GOOGLESurfacelessQueryExtensionName;
+  using VULKAN_HPP_NAMESPACE::GOOGLESurfacelessQuerySpecVersion;
+
+  //=== VK_EXT_image_compression_control_swapchain ===
+  using VULKAN_HPP_NAMESPACE::EXTImageCompressionControlSwapchainExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTImageCompressionControlSwapchainSpecVersion;
+
+  //=== VK_QCOM_image_processing ===
+  using VULKAN_HPP_NAMESPACE::QCOMImageProcessingExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMImageProcessingSpecVersion;
+
+  //=== VK_EXT_nested_command_buffer ===
+  using VULKAN_HPP_NAMESPACE::EXTNestedCommandBufferExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTNestedCommandBufferSpecVersion;
+
+  //=== VK_EXT_external_memory_acquire_unmodified ===
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryAcquireUnmodifiedExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExternalMemoryAcquireUnmodifiedSpecVersion;
+
+  //=== VK_EXT_extended_dynamic_state3 ===
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicState3ExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTExtendedDynamicState3SpecVersion;
+
+  //=== VK_EXT_subpass_merge_feedback ===
+  using VULKAN_HPP_NAMESPACE::EXTSubpassMergeFeedbackExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTSubpassMergeFeedbackSpecVersion;
+
+  //=== VK_LUNARG_direct_driver_loading ===
+  using VULKAN_HPP_NAMESPACE::LUNARGDirectDriverLoadingExtensionName;
+  using VULKAN_HPP_NAMESPACE::LUNARGDirectDriverLoadingSpecVersion;
+
+  //=== VK_EXT_shader_module_identifier ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderModuleIdentifierExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderModuleIdentifierSpecVersion;
+  using VULKAN_HPP_NAMESPACE::MaxShaderModuleIdentifierSizeEXT;
+
+  //=== VK_EXT_rasterization_order_attachment_access ===
+  using VULKAN_HPP_NAMESPACE::EXTRasterizationOrderAttachmentAccessExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTRasterizationOrderAttachmentAccessSpecVersion;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::NVOpticalFlowExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVOpticalFlowSpecVersion;
+
+  //=== VK_EXT_legacy_dithering ===
+  using VULKAN_HPP_NAMESPACE::EXTLegacyDitheringExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTLegacyDitheringSpecVersion;
+
+  //=== VK_EXT_pipeline_protected_access ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelineProtectedAccessExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelineProtectedAccessSpecVersion;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_format_resolve ===
+  using VULKAN_HPP_NAMESPACE::ANDROIDExternalFormatResolveExtensionName;
+  using VULKAN_HPP_NAMESPACE::ANDROIDExternalFormatResolveSpecVersion;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_KHR_maintenance5 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance5ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance5SpecVersion;
+
+  //=== VK_KHR_ray_tracing_position_fetch ===
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingPositionFetchExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRRayTracingPositionFetchSpecVersion;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::EXTShaderObjectExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTShaderObjectSpecVersion;
+
+  //=== VK_QCOM_tile_properties ===
+  using VULKAN_HPP_NAMESPACE::QCOMTilePropertiesExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMTilePropertiesSpecVersion;
+
+  //=== VK_SEC_amigo_profiling ===
+  using VULKAN_HPP_NAMESPACE::SECAmigoProfilingExtensionName;
+  using VULKAN_HPP_NAMESPACE::SECAmigoProfilingSpecVersion;
+
+  //=== VK_QCOM_multiview_per_view_viewports ===
+  using VULKAN_HPP_NAMESPACE::QCOMMultiviewPerViewViewportsExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMMultiviewPerViewViewportsSpecVersion;
+
+  //=== VK_NV_ray_tracing_invocation_reorder ===
+  using VULKAN_HPP_NAMESPACE::NVRayTracingInvocationReorderExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVRayTracingInvocationReorderSpecVersion;
+
+  //=== VK_NV_extended_sparse_address_space ===
+  using VULKAN_HPP_NAMESPACE::NVExtendedSparseAddressSpaceExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVExtendedSparseAddressSpaceSpecVersion;
+
+  //=== VK_EXT_mutable_descriptor_type ===
+  using VULKAN_HPP_NAMESPACE::EXTMutableDescriptorTypeExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTMutableDescriptorTypeSpecVersion;
+
+  //=== VK_EXT_layer_settings ===
+  using VULKAN_HPP_NAMESPACE::EXTLayerSettingsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTLayerSettingsSpecVersion;
+
+  //=== VK_ARM_shader_core_builtins ===
+  using VULKAN_HPP_NAMESPACE::ARMShaderCoreBuiltinsExtensionName;
+  using VULKAN_HPP_NAMESPACE::ARMShaderCoreBuiltinsSpecVersion;
+
+  //=== VK_EXT_pipeline_library_group_handles ===
+  using VULKAN_HPP_NAMESPACE::EXTPipelineLibraryGroupHandlesExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTPipelineLibraryGroupHandlesSpecVersion;
+
+  //=== VK_EXT_dynamic_rendering_unused_attachments ===
+  using VULKAN_HPP_NAMESPACE::EXTDynamicRenderingUnusedAttachmentsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDynamicRenderingUnusedAttachmentsSpecVersion;
+
+  //=== VK_NV_low_latency2 ===
+  using VULKAN_HPP_NAMESPACE::NVLowLatency2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVLowLatency2SpecVersion;
+
+  //=== VK_KHR_cooperative_matrix ===
+  using VULKAN_HPP_NAMESPACE::KHRCooperativeMatrixExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRCooperativeMatrixSpecVersion;
+
+  //=== VK_QCOM_multiview_per_view_render_areas ===
+  using VULKAN_HPP_NAMESPACE::QCOMMultiviewPerViewRenderAreasExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMMultiviewPerViewRenderAreasSpecVersion;
+
+  //=== VK_KHR_video_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance1ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance1SpecVersion;
+
+  //=== VK_NV_per_stage_descriptor_set ===
+  using VULKAN_HPP_NAMESPACE::NVPerStageDescriptorSetExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVPerStageDescriptorSetSpecVersion;
+
+  //=== VK_QCOM_image_processing2 ===
+  using VULKAN_HPP_NAMESPACE::QCOMImageProcessing2ExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMImageProcessing2SpecVersion;
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  using VULKAN_HPP_NAMESPACE::QCOMFilterCubicWeightsExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMFilterCubicWeightsSpecVersion;
+
+  //=== VK_QCOM_ycbcr_degamma ===
+  using VULKAN_HPP_NAMESPACE::QCOMYcbcrDegammaExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMYcbcrDegammaSpecVersion;
+
+  //=== VK_QCOM_filter_cubic_clamp ===
+  using VULKAN_HPP_NAMESPACE::QCOMFilterCubicClampExtensionName;
+  using VULKAN_HPP_NAMESPACE::QCOMFilterCubicClampSpecVersion;
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::EXTAttachmentFeedbackLoopDynamicStateExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTAttachmentFeedbackLoopDynamicStateSpecVersion;
+
+  //=== VK_KHR_vertex_attribute_divisor ===
+  using VULKAN_HPP_NAMESPACE::KHRVertexAttributeDivisorExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRVertexAttributeDivisorSpecVersion;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+  using VULKAN_HPP_NAMESPACE::QNXExternalMemoryScreenBufferExtensionName;
+  using VULKAN_HPP_NAMESPACE::QNXExternalMemoryScreenBufferSpecVersion;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_MSFT_layered_driver ===
+  using VULKAN_HPP_NAMESPACE::MSFTLayeredDriverExtensionName;
+  using VULKAN_HPP_NAMESPACE::MSFTLayeredDriverSpecVersion;
+
+  //=== VK_KHR_calibrated_timestamps ===
+  using VULKAN_HPP_NAMESPACE::KHRCalibratedTimestampsExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRCalibratedTimestampsSpecVersion;
+
+  //=== VK_KHR_maintenance6 ===
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance6ExtensionName;
+  using VULKAN_HPP_NAMESPACE::KHRMaintenance6SpecVersion;
+
+  //=== VK_NV_descriptor_pool_overallocation ===
+  using VULKAN_HPP_NAMESPACE::NVDescriptorPoolOverallocationExtensionName;
+  using VULKAN_HPP_NAMESPACE::NVDescriptorPoolOverallocationSpecVersion;
+
+  //========================
+  //=== CONSTEXPR VALUEs ===
+  //========================
+  using VULKAN_HPP_NAMESPACE::HeaderVersion;
+
+  //=========================
+  //=== CONSTEXPR CALLEEs ===
+  //=========================
+  using VULKAN_HPP_NAMESPACE::apiVersionMajor;
+  using VULKAN_HPP_NAMESPACE::apiVersionMinor;
+  using VULKAN_HPP_NAMESPACE::apiVersionPatch;
+  using VULKAN_HPP_NAMESPACE::apiVersionVariant;
+  using VULKAN_HPP_NAMESPACE::makeApiVersion;
+  using VULKAN_HPP_NAMESPACE::makeVersion;
+  using VULKAN_HPP_NAMESPACE::versionMajor;
+  using VULKAN_HPP_NAMESPACE::versionMinor;
+  using VULKAN_HPP_NAMESPACE::versionPatch;
+
+  //==========================
+  //=== CONSTEXPR CALLERs ===
+  //==========================
+  using VULKAN_HPP_NAMESPACE::ApiVersion;
+  using VULKAN_HPP_NAMESPACE::ApiVersion10;
+  using VULKAN_HPP_NAMESPACE::ApiVersion11;
+  using VULKAN_HPP_NAMESPACE::ApiVersion12;
+  using VULKAN_HPP_NAMESPACE::ApiVersion13;
+  using VULKAN_HPP_NAMESPACE::HeaderVersionComplete;
+
+  //===============
+  //=== STRUCTs ===
+  //===============
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::AllocationCallbacks;
+  using VULKAN_HPP_NAMESPACE::ApplicationInfo;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescription;
+  using VULKAN_HPP_NAMESPACE::AttachmentReference;
+  using VULKAN_HPP_NAMESPACE::BaseInStructure;
+  using VULKAN_HPP_NAMESPACE::BaseOutStructure;
+  using VULKAN_HPP_NAMESPACE::BindSparseInfo;
+  using VULKAN_HPP_NAMESPACE::BufferCopy;
+  using VULKAN_HPP_NAMESPACE::BufferCreateInfo;
+  using VULKAN_HPP_NAMESPACE::BufferImageCopy;
+  using VULKAN_HPP_NAMESPACE::BufferMemoryBarrier;
+  using VULKAN_HPP_NAMESPACE::BufferViewCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ClearAttachment;
+  using VULKAN_HPP_NAMESPACE::ClearColorValue;
+  using VULKAN_HPP_NAMESPACE::ClearDepthStencilValue;
+  using VULKAN_HPP_NAMESPACE::ClearRect;
+  using VULKAN_HPP_NAMESPACE::ClearValue;
+  using VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo;
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo;
+  using VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ComponentMapping;
+  using VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo;
+  using VULKAN_HPP_NAMESPACE::CopyDescriptorSet;
+  using VULKAN_HPP_NAMESPACE::DescriptorBufferInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorImageInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolSize;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DispatchIndirectCommand;
+  using VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand;
+  using VULKAN_HPP_NAMESPACE::DrawIndirectCommand;
+  using VULKAN_HPP_NAMESPACE::EventCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ExtensionProperties;
+  using VULKAN_HPP_NAMESPACE::Extent2D;
+  using VULKAN_HPP_NAMESPACE::Extent3D;
+  using VULKAN_HPP_NAMESPACE::FenceCreateInfo;
+  using VULKAN_HPP_NAMESPACE::FormatProperties;
+  using VULKAN_HPP_NAMESPACE::FramebufferCreateInfo;
+  using VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ImageBlit;
+  using VULKAN_HPP_NAMESPACE::ImageCopy;
+  using VULKAN_HPP_NAMESPACE::ImageCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ImageFormatProperties;
+  using VULKAN_HPP_NAMESPACE::ImageMemoryBarrier;
+  using VULKAN_HPP_NAMESPACE::ImageResolve;
+  using VULKAN_HPP_NAMESPACE::ImageSubresource;
+  using VULKAN_HPP_NAMESPACE::ImageSubresourceLayers;
+  using VULKAN_HPP_NAMESPACE::ImageSubresourceRange;
+  using VULKAN_HPP_NAMESPACE::ImageViewCreateInfo;
+  using VULKAN_HPP_NAMESPACE::InstanceCreateInfo;
+  using VULKAN_HPP_NAMESPACE::LayerProperties;
+  using VULKAN_HPP_NAMESPACE::MappedMemoryRange;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::MemoryBarrier;
+  using VULKAN_HPP_NAMESPACE::MemoryHeap;
+  using VULKAN_HPP_NAMESPACE::MemoryRequirements;
+  using VULKAN_HPP_NAMESPACE::MemoryType;
+  using VULKAN_HPP_NAMESPACE::Offset2D;
+  using VULKAN_HPP_NAMESPACE::Offset3D;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties;
+  using VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne;
+  using VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState;
+  using VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PushConstantRange;
+  using VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyProperties;
+  using VULKAN_HPP_NAMESPACE::Rect2D;
+  using VULKAN_HPP_NAMESPACE::RenderPassBeginInfo;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SamplerCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo;
+  using VULKAN_HPP_NAMESPACE::SparseImageFormatProperties;
+  using VULKAN_HPP_NAMESPACE::SparseImageMemoryBind;
+  using VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo;
+  using VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements;
+  using VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo;
+  using VULKAN_HPP_NAMESPACE::SparseMemoryBind;
+  using VULKAN_HPP_NAMESPACE::SpecializationInfo;
+  using VULKAN_HPP_NAMESPACE::SpecializationMapEntry;
+  using VULKAN_HPP_NAMESPACE::StencilOpState;
+  using VULKAN_HPP_NAMESPACE::SubmitInfo;
+  using VULKAN_HPP_NAMESPACE::SubpassDependency;
+  using VULKAN_HPP_NAMESPACE::SubpassDescription;
+  using VULKAN_HPP_NAMESPACE::SubresourceLayout;
+  using VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription;
+  using VULKAN_HPP_NAMESPACE::VertexInputBindingDescription;
+  using VULKAN_HPP_NAMESPACE::Viewport;
+  using VULKAN_HPP_NAMESPACE::WriteDescriptorSet;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo;
+  using VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo;
+  using VULKAN_HPP_NAMESPACE::BindBufferMemoryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo;
+  using VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindImageMemoryInfo;
+  using VULKAN_HPP_NAMESPACE::BindImageMemoryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo;
+  using VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2;
+  using VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupportKHR;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry;
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntryKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceQueueInfo2;
+  using VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ExportFenceCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalBufferProperties;
+  using VULKAN_HPP_NAMESPACE::ExternalBufferPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalFenceProperties;
+  using VULKAN_HPP_NAMESPACE::ExternalFencePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties;
+  using VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryProperties;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties;
+  using VULKAN_HPP_NAMESPACE::ExternalSemaphorePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::FormatProperties2;
+  using VULKAN_HPP_NAMESPACE::FormatProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageFormatProperties2;
+  using VULKAN_HPP_NAMESPACE::ImageFormatProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2;
+  using VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo;
+  using VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2;
+  using VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference;
+  using VULKAN_HPP_NAMESPACE::InputAttachmentAspectReferenceKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo;
+  using VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements;
+  using VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirementsKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryRequirements2;
+  using VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceIDPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3PropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParameterFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointerFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointerFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyProperties2;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo;
+  using VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo;
+  using VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2;
+  using VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2;
+  using VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2KHR;
+
+  //=== VK_VERSION_1_2 ===
+  using VULKAN_HPP_NAMESPACE::AttachmentDescription2;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout;
+  using VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayoutKHR;
+  using VULKAN_HPP_NAMESPACE::AttachmentReference2;
+  using VULKAN_HPP_NAMESPACE::AttachmentReference2KHR;
+  using VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout;
+  using VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayoutKHR;
+  using VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo;
+  using VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT;
+  using VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo;
+  using VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ConformanceVersion;
+  using VULKAN_HPP_NAMESPACE::ConformanceVersionKHR;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupportEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo;
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfoKHR;
+  using VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo;
+  using VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR;
+  using VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo;
+  using VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo;
+  using VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo;
+  using VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolvePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFloat16Int8FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphorePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo;
+  using VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo;
+  using VULKAN_HPP_NAMESPACE::SemaphoreSignalInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo;
+  using VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo;
+  using VULKAN_HPP_NAMESPACE::SemaphoreWaitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SubpassBeginInfo;
+  using VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SubpassDependency2;
+  using VULKAN_HPP_NAMESPACE::SubpassDependency2KHR;
+  using VULKAN_HPP_NAMESPACE::SubpassDescription2;
+  using VULKAN_HPP_NAMESPACE::SubpassDescription2KHR;
+  using VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve;
+  using VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR;
+  using VULKAN_HPP_NAMESPACE::SubpassEndInfo;
+  using VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR;
+  using VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo;
+  using VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfoKHR;
+
+  //=== VK_VERSION_1_3 ===
+  using VULKAN_HPP_NAMESPACE::BlitImageInfo2;
+  using VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::BufferCopy2;
+  using VULKAN_HPP_NAMESPACE::BufferCopy2KHR;
+  using VULKAN_HPP_NAMESPACE::BufferImageCopy2;
+  using VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR;
+  using VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2;
+  using VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR;
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo;
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfoKHR;
+  using VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo;
+  using VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::CopyBufferInfo2;
+  using VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2;
+  using VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::CopyImageInfo2;
+  using VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2;
+  using VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::DependencyInfo;
+  using VULKAN_HPP_NAMESPACE::DependencyInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements;
+  using VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements;
+  using VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR;
+  using VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo;
+  using VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::FormatProperties3;
+  using VULKAN_HPP_NAMESPACE::FormatProperties3KHR;
+  using VULKAN_HPP_NAMESPACE::ImageBlit2;
+  using VULKAN_HPP_NAMESPACE::ImageBlit2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageCopy2;
+  using VULKAN_HPP_NAMESPACE::ImageCopy2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2;
+  using VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR;
+  using VULKAN_HPP_NAMESPACE::ImageResolve2;
+  using VULKAN_HPP_NAMESPACE::ImageResolve2KHR;
+  using VULKAN_HPP_NAMESPACE::MemoryBarrier2;
+  using VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4PropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedback;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo;
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo;
+  using VULKAN_HPP_NAMESPACE::RenderingAttachmentInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RenderingInfo;
+  using VULKAN_HPP_NAMESPACE::RenderingInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ResolveImageInfo2;
+  using VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo;
+  using VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ShaderRequiredSubgroupSizeCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SubmitInfo2;
+  using VULKAN_HPP_NAMESPACE::SubmitInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock;
+  using VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::SurfaceFormatKHR;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PresentInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR;
+
+  //=== VK_KHR_display_swapchain ===
+  using VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+  //=== VK_KHR_xlib_surface ===
+  using VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+  //=== VK_KHR_xcb_surface ===
+  using VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+  //=== VK_KHR_wayland_surface ===
+  using VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_KHR_android_surface ===
+  using VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_surface ===
+  using VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT;
+
+  //=== VK_AMD_rasterization_order ===
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD;
+
+  //=== VK_EXT_debug_marker ===
+  using VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR;
+
+  //=== VK_KHR_video_decode_queue ===
+  using VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR;
+
+  //=== VK_NV_dedicated_allocation ===
+  using VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV;
+
+  //=== VK_EXT_transform_feedback ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT;
+
+  //=== VK_NVX_binary_import ===
+  using VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX;
+  using VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX;
+  using VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX;
+
+  //=== VK_NVX_image_view_handle ===
+  using VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX;
+  using VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX;
+
+  //=== VK_KHR_video_encode_h264 ===
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR;
+
+  //=== VK_KHR_video_encode_h265 ===
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR;
+
+  //=== VK_KHR_video_decode_h264 ===
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR;
+
+  //=== VK_AMD_texture_gather_bias_lod ===
+  using VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD;
+
+  //=== VK_AMD_shader_info ===
+  using VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD;
+  using VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD;
+
+  //=== VK_KHR_dynamic_rendering ===
+  using VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD;
+  using VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoNV;
+  using VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX;
+  using VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_stream_descriptor_surface ===
+  using VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_NV_corner_sampled_image ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV;
+
+  //=== VK_NV_external_memory_capabilities ===
+  using VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV;
+
+  //=== VK_NV_external_memory ===
+  using VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV;
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_external_memory_win32 ===
+  using VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV;
+  using VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_win32_keyed_mutex ===
+  using VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_validation_flags ===
+  using VULKAN_HPP_NAMESPACE::ValidationFlagsEXT;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+  //=== VK_NN_vi_surface ===
+  using VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN;
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+  //=== VK_EXT_astc_decode_mode ===
+  using VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT;
+
+  //=== VK_EXT_pipeline_robustness ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_memory_win32 ===
+  using VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_memory_fd ===
+  using VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_keyed_mutex ===
+  using VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_semaphore_win32 ===
+  using VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_semaphore_fd ===
+  using VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR;
+
+  //=== VK_KHR_push_descriptor ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR;
+
+  //=== VK_EXT_conditional_rendering ===
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT;
+
+  //=== VK_KHR_incremental_present ===
+  using VULKAN_HPP_NAMESPACE::PresentRegionKHR;
+  using VULKAN_HPP_NAMESPACE::PresentRegionsKHR;
+  using VULKAN_HPP_NAMESPACE::RectLayerKHR;
+
+  //=== VK_NV_clip_space_w_scaling ===
+  using VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::ViewportWScalingNV;
+
+  //=== VK_EXT_display_surface_counter ===
+  using VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT;
+
+  //=== VK_EXT_display_control ===
+  using VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT;
+
+  //=== VK_GOOGLE_display_timing ===
+  using VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE;
+  using VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE;
+  using VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE;
+  using VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE;
+
+  //=== VK_NVX_multiview_per_view_attributes ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
+
+  //=== VK_NV_viewport_swizzle ===
+  using VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::ViewportSwizzleNV;
+
+  //=== VK_EXT_discard_rectangles ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT;
+
+  //=== VK_EXT_conservative_rasterization ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT;
+
+  //=== VK_EXT_depth_clip_enable ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT;
+
+  //=== VK_EXT_hdr_metadata ===
+  using VULKAN_HPP_NAMESPACE::HdrMetadataEXT;
+  using VULKAN_HPP_NAMESPACE::XYColorEXT;
+
+  //=== VK_IMG_relaxed_line_rasterization ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+
+  //=== VK_KHR_shared_presentable_image ===
+  using VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_fence_win32 ===
+  using VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_fence_fd ===
+  using VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR;
+
+  //=== VK_KHR_performance_query ===
+  using VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR;
+  using VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR;
+
+  //=== VK_KHR_get_surface_capabilities2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR;
+  using VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR;
+
+  //=== VK_KHR_get_display_properties2 ===
+  using VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR;
+  using VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR;
+  using VULKAN_HPP_NAMESPACE::DisplayProperties2KHR;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+  //=== VK_MVK_ios_surface ===
+  using VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+  //=== VK_MVK_macos_surface ===
+  using VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK;
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+  using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID;
+  using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID;
+  using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID;
+  using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID;
+  using VULKAN_HPP_NAMESPACE::ExternalFormatANDROID;
+  using VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID;
+  using VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  using VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX;
+  using VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX;
+  using VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX;
+  using VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX;
+  using VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_EXT_sample_locations ===
+  using VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT;
+  using VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SampleLocationEXT;
+  using VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT;
+
+  //=== VK_EXT_blend_operation_advanced ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT;
+
+  //=== VK_NV_fragment_coverage_to_color ===
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::AabbPositionsKHR;
+  using VULKAN_HPP_NAMESPACE::AabbPositionsNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR;
+  using VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR;
+  using VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::TransformMatrixKHR;
+  using VULKAN_HPP_NAMESPACE::TransformMatrixNV;
+  using VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR;
+
+  //=== VK_KHR_ray_tracing_pipeline ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR;
+  using VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR;
+
+  //=== VK_KHR_ray_query ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR;
+
+  //=== VK_NV_framebuffer_mixed_samples ===
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV;
+
+  //=== VK_NV_shader_sm_builtins ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV;
+
+  //=== VK_EXT_image_drm_format_modifier ===
+  using VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT;
+  using VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT;
+  using VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT;
+  using VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_KHR_portability_subset ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_shading_rate_image ===
+  using VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV;
+  using VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV;
+  using VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV;
+  using VULKAN_HPP_NAMESPACE::GeometryAABBNV;
+  using VULKAN_HPP_NAMESPACE::GeometryDataNV;
+  using VULKAN_HPP_NAMESPACE::GeometryNV;
+  using VULKAN_HPP_NAMESPACE::GeometryTrianglesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV;
+  using VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV;
+
+  //=== VK_NV_representative_fragment_test ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV;
+
+  //=== VK_EXT_filter_cubic ===
+  using VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT;
+
+  //=== VK_EXT_external_memory_host ===
+  using VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT;
+
+  //=== VK_KHR_shader_clock ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR;
+
+  //=== VK_AMD_pipeline_compiler_control ===
+  using VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD;
+
+  //=== VK_AMD_shader_core_properties ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD;
+
+  //=== VK_KHR_video_decode_h265 ===
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR;
+
+  //=== VK_KHR_global_priority ===
+  using VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR;
+
+  //=== VK_AMD_memory_overallocation_behavior ===
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD;
+
+  //=== VK_EXT_vertex_attribute_divisor ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_frame_token ===
+  using VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_NV_compute_shader_derivatives ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV;
+
+  //=== VK_NV_mesh_shader ===
+  using VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV;
+
+  //=== VK_NV_shader_image_footprint ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV;
+
+  //=== VK_NV_scissor_exclusive ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV;
+
+  //=== VK_NV_device_diagnostic_checkpoints ===
+  using VULKAN_HPP_NAMESPACE::CheckpointDataNV;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV;
+
+  //=== VK_INTEL_shader_integer_functions2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL;
+  using VULKAN_HPP_NAMESPACE::PerformanceValueINTEL;
+  using VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL;
+  using VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL;
+
+  //=== VK_EXT_pci_bus_info ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT;
+
+  //=== VK_AMD_display_native_hdr ===
+  using VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD;
+  using VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_imagepipe_surface ===
+  using VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_surface ===
+  using VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_EXT_fragment_density_map ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT;
+
+  //=== VK_KHR_fragment_shading_rate ===
+  using VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR;
+
+  //=== VK_AMD_shader_core_properties2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD;
+
+  //=== VK_AMD_device_coherent_memory ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD;
+
+  //=== VK_EXT_shader_image_atomic_int64 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
+
+  //=== VK_EXT_memory_budget ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT;
+
+  //=== VK_EXT_memory_priority ===
+  using VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT;
+
+  //=== VK_KHR_surface_protected_capabilities ===
+  using VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR;
+
+  //=== VK_NV_dedicated_allocation_image_aliasing ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
+
+  //=== VK_EXT_buffer_device_address ===
+  using VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferAddressFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT;
+
+  //=== VK_EXT_validation_features ===
+  using VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT;
+
+  //=== VK_KHR_present_wait ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR;
+
+  //=== VK_NV_cooperative_matrix ===
+  using VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV;
+
+  //=== VK_NV_coverage_reduction_mode ===
+  using VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV;
+
+  //=== VK_EXT_fragment_shader_interlock ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
+
+  //=== VK_EXT_ycbcr_image_arrays ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT;
+
+  //=== VK_EXT_provoking_vertex ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_EXT_full_screen_exclusive ===
+  using VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT;
+  using VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_headless_surface ===
+  using VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT;
+
+  //=== VK_EXT_line_rasterization ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT;
+
+  //=== VK_EXT_shader_atomic_float ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT;
+
+  //=== VK_EXT_index_type_uint8 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT;
+
+  //=== VK_EXT_extended_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT;
+
+  //=== VK_KHR_pipeline_executable_properties ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineInfoKHR;
+
+  //=== VK_EXT_host_image_copy ===
+  using VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT;
+  using VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT;
+  using VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT;
+  using VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT;
+  using VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT;
+  using VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT;
+
+  //=== VK_KHR_map_memory2 ===
+  using VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR;
+  using VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR;
+
+  //=== VK_EXT_shader_atomic_float2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+
+  //=== VK_EXT_surface_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT;
+  using VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT;
+  using VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT;
+
+  //=== VK_EXT_swapchain_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV;
+  using VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
+  using VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV;
+
+  //=== VK_NV_inherited_viewport_scissor ===
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV;
+
+  //=== VK_EXT_texel_buffer_alignment ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
+
+  //=== VK_QCOM_render_pass_transform ===
+  using VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM;
+  using VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM;
+
+  //=== VK_EXT_depth_bias_control ===
+  using VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT;
+
+  //=== VK_EXT_device_memory_report ===
+  using VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT;
+
+  //=== VK_EXT_robustness2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT;
+
+  //=== VK_EXT_custom_border_color ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT;
+
+  //=== VK_KHR_pipeline_library ===
+  using VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR;
+
+  //=== VK_NV_present_barrier ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV;
+  using VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV;
+
+  //=== VK_KHR_present_id ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PresentIdKHR;
+
+  //=== VK_KHR_video_encode_queue ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+  using VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR;
+
+  //=== VK_NV_device_diagnostics_config ===
+  using VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  using VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV;
+  using VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_low_latency ===
+  using VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_objects ===
+  using VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_KHR_synchronization2 ===
+  using VULKAN_HPP_NAMESPACE::CheckpointData2NV;
+  using VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV;
+
+  //=== VK_EXT_descriptor_buffer ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT;
+  using VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorDataEXT;
+  using VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT;
+  using VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT;
+
+  //=== VK_EXT_graphics_pipeline_library ===
+  using VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
+
+  //=== VK_AMD_shader_early_and_late_fragment_tests ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
+
+  //=== VK_KHR_fragment_shader_barycentric ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
+
+  //=== VK_KHR_shader_subgroup_uniform_control_flow ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+
+  //=== VK_NV_fragment_shading_rate_enums ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV;
+
+  //=== VK_NV_ray_tracing_motion_blur ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV;
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::SRTDataNV;
+
+  //=== VK_EXT_mesh_shader ===
+  using VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT;
+
+  //=== VK_EXT_ycbcr_2plane_444_formats ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
+
+  //=== VK_EXT_fragment_density_map2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT;
+
+  //=== VK_QCOM_rotated_copy_commands ===
+  using VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM;
+
+  //=== VK_KHR_workgroup_memory_explicit_layout ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
+
+  //=== VK_EXT_image_compression_control ===
+  using VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT;
+  using VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT;
+
+  //=== VK_EXT_attachment_feedback_loop_layout ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
+
+  //=== VK_EXT_4444_formats ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT;
+
+  //=== VK_EXT_device_fault ===
+  using VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT;
+  using VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT;
+
+  //=== VK_EXT_rgba10x6_formats ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+  //=== VK_EXT_directfb_surface ===
+  using VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+  //=== VK_EXT_vertex_input_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT;
+  using VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT;
+
+  //=== VK_EXT_physical_device_drm ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT;
+
+  //=== VK_EXT_device_address_binding_report ===
+  using VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT;
+
+  //=== VK_EXT_depth_clip_control ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT;
+
+  //=== VK_EXT_primitive_topology_list_restart ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_memory ===
+  using VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_semaphore ===
+  using VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA;
+  using VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_HUAWEI_subpass_shading ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI;
+  using VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI;
+
+  //=== VK_HUAWEI_invocation_mask ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI;
+
+  //=== VK_NV_external_memory_rdma ===
+  using VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV;
+
+  //=== VK_EXT_pipeline_properties ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT;
+
+  //=== VK_EXT_frame_boundary ===
+  using VULKAN_HPP_NAMESPACE::FrameBoundaryEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT;
+
+  //=== VK_EXT_multisampled_render_to_single_sampled ===
+  using VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT;
+
+  //=== VK_EXT_extended_dynamic_state2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_screen_surface ===
+  using VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_EXT_color_write_enable ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT;
+
+  //=== VK_EXT_primitives_generated_query ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
+
+  //=== VK_KHR_ray_tracing_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR;
+
+  //=== VK_EXT_image_view_min_lod ===
+  using VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT;
+
+  //=== VK_EXT_multi_draw ===
+  using VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT;
+
+  //=== VK_EXT_image_2d_view_of_3d ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT;
+
+  //=== VK_EXT_shader_tile_image ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT;
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT;
+  using VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT;
+  using VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT;
+  using VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapTriangleEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapUsageEXT;
+  using VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_HUAWEI_cluster_culling_shader ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+
+  //=== VK_EXT_border_color_swizzle ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT;
+
+  //=== VK_EXT_pageable_device_local_memory ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
+
+  //=== VK_ARM_shader_core_properties ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM;
+
+  //=== VK_ARM_scheduling_controls ===
+  using VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM;
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  using VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+
+  //=== VK_VALVE_descriptor_set_host_mapping ===
+  using VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
+
+  //=== VK_EXT_depth_clamp_zero_one ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT;
+
+  //=== VK_EXT_non_seamless_cube_map ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
+
+  //=== VK_ARM_render_pass_striped ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM;
+  using VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM;
+  using VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM;
+  using VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM;
+
+  //=== VK_QCOM_fragment_density_map_offset ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
+  using VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM;
+
+  //=== VK_NV_copy_memory_indirect ===
+  using VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV;
+
+  //=== VK_NV_memory_decompression ===
+  using VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV;
+
+  //=== VK_NV_device_generated_commands_compute ===
+  using VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV;
+  using VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV;
+
+  //=== VK_NV_linear_color_attachment ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV;
+
+  //=== VK_EXT_image_compression_control_swapchain ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
+
+  //=== VK_QCOM_image_processing ===
+  using VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM;
+
+  //=== VK_EXT_nested_command_buffer ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT;
+
+  //=== VK_EXT_external_memory_acquire_unmodified ===
+  using VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT;
+
+  //=== VK_EXT_extended_dynamic_state3 ===
+  using VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT;
+  using VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT;
+
+  //=== VK_EXT_subpass_merge_feedback ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT;
+
+  //=== VK_LUNARG_direct_driver_loading ===
+  using VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG;
+  using VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG;
+
+  //=== VK_EXT_shader_module_identifier ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT;
+
+  //=== VK_EXT_rasterization_order_attachment_access ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV;
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV;
+
+  //=== VK_EXT_legacy_dithering ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT;
+
+  //=== VK_EXT_pipeline_protected_access ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_format_resolve ===
+  using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_KHR_maintenance5 ===
+  using VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR;
+  using VULKAN_HPP_NAMESPACE::ImageSubresource2EXT;
+  using VULKAN_HPP_NAMESPACE::ImageSubresource2KHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT;
+  using VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR;
+
+  //=== VK_KHR_ray_tracing_position_fetch ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT;
+
+  //=== VK_QCOM_tile_properties ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::TilePropertiesQCOM;
+
+  //=== VK_SEC_amigo_profiling ===
+  using VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC;
+
+  //=== VK_QCOM_multiview_per_view_viewports ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
+
+  //=== VK_NV_ray_tracing_invocation_reorder ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV;
+
+  //=== VK_NV_extended_sparse_address_space ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+
+  //=== VK_EXT_mutable_descriptor_type ===
+  using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE;
+  using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT;
+  using VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
+
+  //=== VK_EXT_layer_settings ===
+  using VULKAN_HPP_NAMESPACE::LayerSettingEXT;
+  using VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT;
+
+  //=== VK_ARM_shader_core_builtins ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM;
+
+  //=== VK_EXT_pipeline_library_group_handles ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+
+  //=== VK_EXT_dynamic_rendering_unused_attachments ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+
+  //=== VK_NV_low_latency2 ===
+  using VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV;
+  using VULKAN_HPP_NAMESPACE::LatencySleepInfoNV;
+  using VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV;
+  using VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV;
+  using VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV;
+  using VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV;
+  using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV;
+  using VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV;
+  using VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV;
+
+  //=== VK_KHR_cooperative_matrix ===
+  using VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR;
+
+  //=== VK_QCOM_multiview_per_view_render_areas ===
+  using VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+
+  //=== VK_KHR_video_maintenance1 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR;
+
+  //=== VK_NV_per_stage_descriptor_set ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV;
+
+  //=== VK_QCOM_image_processing2 ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM;
+  using VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM;
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  using VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM;
+
+  //=== VK_QCOM_ycbcr_degamma ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+
+  //=== VK_QCOM_filter_cubic_clamp ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM;
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+  //=== VK_KHR_vertex_attribute_divisor ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT;
+  using VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+  using VULKAN_HPP_NAMESPACE::ExternalFormatQNX;
+  using VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+  using VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX;
+  using VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_MSFT_layered_driver ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT;
+
+  //=== VK_KHR_calibrated_timestamps ===
+  using VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT;
+  using VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR;
+
+  //=== VK_KHR_maintenance6 ===
+  using VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT;
+  using VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR;
+  using VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR;
+  using VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR;
+  using VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR;
+  using VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT;
+
+  //=== VK_NV_descriptor_pool_overallocation ===
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+
+  //===============
+  //=== HANDLEs ===
+  //===============
+
+  using VULKAN_HPP_NAMESPACE::isVulkanHandleType;
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::Buffer;
+  using VULKAN_HPP_NAMESPACE::BufferView;
+  using VULKAN_HPP_NAMESPACE::CommandBuffer;
+  using VULKAN_HPP_NAMESPACE::CommandPool;
+  using VULKAN_HPP_NAMESPACE::DescriptorPool;
+  using VULKAN_HPP_NAMESPACE::DescriptorSet;
+  using VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
+  using VULKAN_HPP_NAMESPACE::Device;
+  using VULKAN_HPP_NAMESPACE::DeviceMemory;
+  using VULKAN_HPP_NAMESPACE::Event;
+  using VULKAN_HPP_NAMESPACE::Fence;
+  using VULKAN_HPP_NAMESPACE::Framebuffer;
+  using VULKAN_HPP_NAMESPACE::Image;
+  using VULKAN_HPP_NAMESPACE::ImageView;
+  using VULKAN_HPP_NAMESPACE::Instance;
+  using VULKAN_HPP_NAMESPACE::PhysicalDevice;
+  using VULKAN_HPP_NAMESPACE::Pipeline;
+  using VULKAN_HPP_NAMESPACE::PipelineCache;
+  using VULKAN_HPP_NAMESPACE::PipelineLayout;
+  using VULKAN_HPP_NAMESPACE::QueryPool;
+  using VULKAN_HPP_NAMESPACE::Queue;
+  using VULKAN_HPP_NAMESPACE::RenderPass;
+  using VULKAN_HPP_NAMESPACE::Sampler;
+  using VULKAN_HPP_NAMESPACE::Semaphore;
+  using VULKAN_HPP_NAMESPACE::ShaderModule;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
+  using VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
+
+  //=== VK_VERSION_1_3 ===
+  using VULKAN_HPP_NAMESPACE::PrivateDataSlot;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::SurfaceKHR;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::SwapchainKHR;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::DisplayKHR;
+  using VULKAN_HPP_NAMESPACE::DisplayModeKHR;
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::VideoSessionKHR;
+  using VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR;
+
+  //=== VK_NVX_binary_import ===
+  using VULKAN_HPP_NAMESPACE::CuFunctionNVX;
+  using VULKAN_HPP_NAMESPACE::CuModuleNVX;
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::AccelerationStructureNV;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
+
+  //=== VK_KHR_deferred_host_operations ===
+  using VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  using VULKAN_HPP_NAMESPACE::CudaFunctionNV;
+  using VULKAN_HPP_NAMESPACE::CudaModuleNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::MicromapEXT;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::ShaderEXT;
+
+  //======================
+  //=== UNIQUE HANDLEs ===
+  //======================
+
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::UniqueBuffer;
+  using VULKAN_HPP_NAMESPACE::UniqueBufferView;
+  using VULKAN_HPP_NAMESPACE::UniqueCommandBuffer;
+  using VULKAN_HPP_NAMESPACE::UniqueCommandPool;
+  using VULKAN_HPP_NAMESPACE::UniqueDescriptorPool;
+  using VULKAN_HPP_NAMESPACE::UniqueDescriptorSet;
+  using VULKAN_HPP_NAMESPACE::UniqueDescriptorSetLayout;
+  using VULKAN_HPP_NAMESPACE::UniqueDevice;
+  using VULKAN_HPP_NAMESPACE::UniqueDeviceMemory;
+  using VULKAN_HPP_NAMESPACE::UniqueEvent;
+  using VULKAN_HPP_NAMESPACE::UniqueFence;
+  using VULKAN_HPP_NAMESPACE::UniqueFramebuffer;
+  using VULKAN_HPP_NAMESPACE::UniqueImage;
+  using VULKAN_HPP_NAMESPACE::UniqueImageView;
+  using VULKAN_HPP_NAMESPACE::UniqueInstance;
+  using VULKAN_HPP_NAMESPACE::UniquePipeline;
+  using VULKAN_HPP_NAMESPACE::UniquePipelineCache;
+  using VULKAN_HPP_NAMESPACE::UniquePipelineLayout;
+  using VULKAN_HPP_NAMESPACE::UniqueQueryPool;
+  using VULKAN_HPP_NAMESPACE::UniqueRenderPass;
+  using VULKAN_HPP_NAMESPACE::UniqueSampler;
+  using VULKAN_HPP_NAMESPACE::UniqueSemaphore;
+  using VULKAN_HPP_NAMESPACE::UniqueShaderModule;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::UniqueDescriptorUpdateTemplate;
+  using VULKAN_HPP_NAMESPACE::UniqueSamplerYcbcrConversion;
+
+  //=== VK_VERSION_1_3 ===
+  using VULKAN_HPP_NAMESPACE::UniquePrivateDataSlot;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::UniqueSurfaceKHR;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::UniqueSwapchainKHR;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::UniqueDisplayKHR;
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::UniqueDebugReportCallbackEXT;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::UniqueVideoSessionKHR;
+  using VULKAN_HPP_NAMESPACE::UniqueVideoSessionParametersKHR;
+
+  //=== VK_NVX_binary_import ===
+  using VULKAN_HPP_NAMESPACE::UniqueCuFunctionNVX;
+  using VULKAN_HPP_NAMESPACE::UniqueCuModuleNVX;
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::UniqueDebugUtilsMessengerEXT;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::UniqueAccelerationStructureKHR;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::UniqueValidationCacheEXT;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::UniqueAccelerationStructureNV;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::UniquePerformanceConfigurationINTEL;
+
+  //=== VK_KHR_deferred_host_operations ===
+  using VULKAN_HPP_NAMESPACE::UniqueDeferredOperationKHR;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::UniqueIndirectCommandsLayoutNV;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  using VULKAN_HPP_NAMESPACE::UniqueCudaFunctionNV;
+  using VULKAN_HPP_NAMESPACE::UniqueCudaModuleNV;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::UniqueBufferCollectionFUCHSIA;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::UniqueMicromapEXT;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::UniqueOpticalFlowSessionNV;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::UniqueHandleTraits;
+  using VULKAN_HPP_NAMESPACE::UniqueShaderEXT;
+#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
+
+  //======================
+  //=== SHARED HANDLEs ===
+  //======================
+
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+
+  //=== VK_VERSION_1_0 ===
+  using VULKAN_HPP_NAMESPACE::SharedBuffer;
+  using VULKAN_HPP_NAMESPACE::SharedBufferView;
+  using VULKAN_HPP_NAMESPACE::SharedCommandBuffer;
+  using VULKAN_HPP_NAMESPACE::SharedCommandPool;
+  using VULKAN_HPP_NAMESPACE::SharedDescriptorPool;
+  using VULKAN_HPP_NAMESPACE::SharedDescriptorSet;
+  using VULKAN_HPP_NAMESPACE::SharedDescriptorSetLayout;
+  using VULKAN_HPP_NAMESPACE::SharedDevice;
+  using VULKAN_HPP_NAMESPACE::SharedDeviceMemory;
+  using VULKAN_HPP_NAMESPACE::SharedEvent;
+  using VULKAN_HPP_NAMESPACE::SharedFence;
+  using VULKAN_HPP_NAMESPACE::SharedFramebuffer;
+  using VULKAN_HPP_NAMESPACE::SharedImage;
+  using VULKAN_HPP_NAMESPACE::SharedImageView;
+  using VULKAN_HPP_NAMESPACE::SharedInstance;
+  using VULKAN_HPP_NAMESPACE::SharedPhysicalDevice;
+  using VULKAN_HPP_NAMESPACE::SharedPipeline;
+  using VULKAN_HPP_NAMESPACE::SharedPipelineCache;
+  using VULKAN_HPP_NAMESPACE::SharedPipelineLayout;
+  using VULKAN_HPP_NAMESPACE::SharedQueryPool;
+  using VULKAN_HPP_NAMESPACE::SharedQueue;
+  using VULKAN_HPP_NAMESPACE::SharedRenderPass;
+  using VULKAN_HPP_NAMESPACE::SharedSampler;
+  using VULKAN_HPP_NAMESPACE::SharedSemaphore;
+  using VULKAN_HPP_NAMESPACE::SharedShaderModule;
+
+  //=== VK_VERSION_1_1 ===
+  using VULKAN_HPP_NAMESPACE::SharedDescriptorUpdateTemplate;
+  using VULKAN_HPP_NAMESPACE::SharedSamplerYcbcrConversion;
+
+  //=== VK_VERSION_1_3 ===
+  using VULKAN_HPP_NAMESPACE::SharedPrivateDataSlot;
+
+  //=== VK_KHR_surface ===
+  using VULKAN_HPP_NAMESPACE::SharedSurfaceKHR;
+
+  //=== VK_KHR_swapchain ===
+  using VULKAN_HPP_NAMESPACE::SharedSwapchainKHR;
+
+  //=== VK_KHR_display ===
+  using VULKAN_HPP_NAMESPACE::SharedDisplayKHR;
+  using VULKAN_HPP_NAMESPACE::SharedDisplayModeKHR;
+
+  //=== VK_EXT_debug_report ===
+  using VULKAN_HPP_NAMESPACE::SharedDebugReportCallbackEXT;
+
+  //=== VK_KHR_video_queue ===
+  using VULKAN_HPP_NAMESPACE::SharedVideoSessionKHR;
+  using VULKAN_HPP_NAMESPACE::SharedVideoSessionParametersKHR;
+
+  //=== VK_NVX_binary_import ===
+  using VULKAN_HPP_NAMESPACE::SharedCuFunctionNVX;
+  using VULKAN_HPP_NAMESPACE::SharedCuModuleNVX;
+
+  //=== VK_EXT_debug_utils ===
+  using VULKAN_HPP_NAMESPACE::SharedDebugUtilsMessengerEXT;
+
+  //=== VK_KHR_acceleration_structure ===
+  using VULKAN_HPP_NAMESPACE::SharedAccelerationStructureKHR;
+
+  //=== VK_EXT_validation_cache ===
+  using VULKAN_HPP_NAMESPACE::SharedValidationCacheEXT;
+
+  //=== VK_NV_ray_tracing ===
+  using VULKAN_HPP_NAMESPACE::SharedAccelerationStructureNV;
+
+  //=== VK_INTEL_performance_query ===
+  using VULKAN_HPP_NAMESPACE::SharedPerformanceConfigurationINTEL;
+
+  //=== VK_KHR_deferred_host_operations ===
+  using VULKAN_HPP_NAMESPACE::SharedDeferredOperationKHR;
+
+  //=== VK_NV_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::SharedIndirectCommandsLayoutNV;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  using VULKAN_HPP_NAMESPACE::SharedCudaFunctionNV;
+  using VULKAN_HPP_NAMESPACE::SharedCudaModuleNV;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  using VULKAN_HPP_NAMESPACE::SharedBufferCollectionFUCHSIA;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  using VULKAN_HPP_NAMESPACE::SharedMicromapEXT;
+
+  //=== VK_NV_optical_flow ===
+  using VULKAN_HPP_NAMESPACE::SharedOpticalFlowSessionNV;
+
+  //=== VK_EXT_shader_object ===
+  using VULKAN_HPP_NAMESPACE::SharedHandleTraits;
+  using VULKAN_HPP_NAMESPACE::SharedShaderEXT;
+#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
+
+  //===========================
+  //=== COMMAND Definitions ===
+  //===========================
+  using VULKAN_HPP_NAMESPACE::createInstance;
+  using VULKAN_HPP_NAMESPACE::enumerateInstanceExtensionProperties;
+  using VULKAN_HPP_NAMESPACE::enumerateInstanceLayerProperties;
+  using VULKAN_HPP_NAMESPACE::enumerateInstanceVersion;
+
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+  using VULKAN_HPP_NAMESPACE::createInstanceUnique;
+#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
+
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+  using VULKAN_HPP_NAMESPACE::StructExtends;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+#if defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
+  using VULKAN_HPP_NAMESPACE::DynamicLoader;
+#endif /*VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL*/
+
+  //=====================
+  //=== Format Traits ===
+  //=====================
+  using VULKAN_HPP_NAMESPACE::blockExtent;
+  using VULKAN_HPP_NAMESPACE::blockSize;
+  using VULKAN_HPP_NAMESPACE::compatibilityClass;
+  using VULKAN_HPP_NAMESPACE::componentBits;
+  using VULKAN_HPP_NAMESPACE::componentCount;
+  using VULKAN_HPP_NAMESPACE::componentName;
+  using VULKAN_HPP_NAMESPACE::componentNumericFormat;
+  using VULKAN_HPP_NAMESPACE::componentPlaneIndex;
+  using VULKAN_HPP_NAMESPACE::componentsAreCompressed;
+  using VULKAN_HPP_NAMESPACE::compressionScheme;
+  using VULKAN_HPP_NAMESPACE::isCompressed;
+  using VULKAN_HPP_NAMESPACE::packed;
+  using VULKAN_HPP_NAMESPACE::planeCompatibleFormat;
+  using VULKAN_HPP_NAMESPACE::planeCount;
+  using VULKAN_HPP_NAMESPACE::planeHeightDivisor;
+  using VULKAN_HPP_NAMESPACE::planeWidthDivisor;
+  using VULKAN_HPP_NAMESPACE::texelsPerBlock;
+
+  //======================================
+  //=== Extension inspection functions ===
+  //======================================
+  using VULKAN_HPP_NAMESPACE::getDeprecatedExtensions;
+  using VULKAN_HPP_NAMESPACE::getDeviceExtensions;
+  using VULKAN_HPP_NAMESPACE::getExtensionDepends;
+  using VULKAN_HPP_NAMESPACE::getExtensionDeprecatedBy;
+  using VULKAN_HPP_NAMESPACE::getExtensionObsoletedBy;
+  using VULKAN_HPP_NAMESPACE::getExtensionPromotedTo;
+  using VULKAN_HPP_NAMESPACE::getInstanceExtensions;
+  using VULKAN_HPP_NAMESPACE::getObsoletedExtensions;
+  using VULKAN_HPP_NAMESPACE::getPromotedExtensions;
+  using VULKAN_HPP_NAMESPACE::isDeprecatedExtension;
+  using VULKAN_HPP_NAMESPACE::isDeviceExtension;
+  using VULKAN_HPP_NAMESPACE::isInstanceExtension;
+  using VULKAN_HPP_NAMESPACE::isObsoletedExtension;
+  using VULKAN_HPP_NAMESPACE::isPromotedExtension;
+
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+  namespace VULKAN_HPP_RAII_NAMESPACE
+  {
+    //======================
+    //=== RAII HARDCODED ===
+    //======================
+
+    using VULKAN_HPP_RAII_NAMESPACE::Context;
+    using VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher;
+    using VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher;
+    using VULKAN_HPP_RAII_NAMESPACE::exchange;
+    using VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher;
+
+    //====================
+    //=== RAII HANDLEs ===
+    //====================
+
+    //=== VK_VERSION_1_0 ===
+    using VULKAN_HPP_RAII_NAMESPACE::Buffer;
+    using VULKAN_HPP_RAII_NAMESPACE::BufferView;
+    using VULKAN_HPP_RAII_NAMESPACE::CommandBuffer;
+    using VULKAN_HPP_RAII_NAMESPACE::CommandBuffers;
+    using VULKAN_HPP_RAII_NAMESPACE::CommandPool;
+    using VULKAN_HPP_RAII_NAMESPACE::DescriptorPool;
+    using VULKAN_HPP_RAII_NAMESPACE::DescriptorSet;
+    using VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout;
+    using VULKAN_HPP_RAII_NAMESPACE::DescriptorSets;
+    using VULKAN_HPP_RAII_NAMESPACE::Device;
+    using VULKAN_HPP_RAII_NAMESPACE::DeviceMemory;
+    using VULKAN_HPP_RAII_NAMESPACE::Event;
+    using VULKAN_HPP_RAII_NAMESPACE::Fence;
+    using VULKAN_HPP_RAII_NAMESPACE::Framebuffer;
+    using VULKAN_HPP_RAII_NAMESPACE::Image;
+    using VULKAN_HPP_RAII_NAMESPACE::ImageView;
+    using VULKAN_HPP_RAII_NAMESPACE::Instance;
+    using VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice;
+    using VULKAN_HPP_RAII_NAMESPACE::PhysicalDevices;
+    using VULKAN_HPP_RAII_NAMESPACE::Pipeline;
+    using VULKAN_HPP_RAII_NAMESPACE::PipelineCache;
+    using VULKAN_HPP_RAII_NAMESPACE::PipelineLayout;
+    using VULKAN_HPP_RAII_NAMESPACE::Pipelines;
+    using VULKAN_HPP_RAII_NAMESPACE::QueryPool;
+    using VULKAN_HPP_RAII_NAMESPACE::Queue;
+    using VULKAN_HPP_RAII_NAMESPACE::RenderPass;
+    using VULKAN_HPP_RAII_NAMESPACE::Sampler;
+    using VULKAN_HPP_RAII_NAMESPACE::Semaphore;
+    using VULKAN_HPP_RAII_NAMESPACE::ShaderModule;
+
+    //=== VK_VERSION_1_1 ===
+    using VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate;
+    using VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion;
+
+    //=== VK_VERSION_1_3 ===
+    using VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot;
+
+    //=== VK_KHR_surface ===
+    using VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR;
+
+    //=== VK_KHR_swapchain ===
+    using VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR;
+    using VULKAN_HPP_RAII_NAMESPACE::SwapchainKHRs;
+
+    //=== VK_KHR_display ===
+    using VULKAN_HPP_RAII_NAMESPACE::DisplayKHR;
+    using VULKAN_HPP_RAII_NAMESPACE::DisplayKHRs;
+    using VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR;
+
+    //=== VK_EXT_debug_report ===
+    using VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT;
+
+    //=== VK_KHR_video_queue ===
+    using VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR;
+    using VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR;
+
+    //=== VK_NVX_binary_import ===
+    using VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX;
+    using VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX;
+
+    //=== VK_EXT_debug_utils ===
+    using VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT;
+
+    //=== VK_KHR_acceleration_structure ===
+    using VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR;
+
+    //=== VK_EXT_validation_cache ===
+    using VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT;
+
+    //=== VK_NV_ray_tracing ===
+    using VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV;
+
+    //=== VK_INTEL_performance_query ===
+    using VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL;
+
+    //=== VK_KHR_deferred_host_operations ===
+    using VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR;
+
+    //=== VK_NV_device_generated_commands ===
+    using VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+    using VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV;
+    using VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+    //=== VK_FUCHSIA_buffer_collection ===
+    using VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+    //=== VK_EXT_opacity_micromap ===
+    using VULKAN_HPP_RAII_NAMESPACE::MicromapEXT;
+
+    //=== VK_NV_optical_flow ===
+    using VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV;
+
+    //=== VK_EXT_shader_object ===
+    using VULKAN_HPP_RAII_NAMESPACE::ShaderEXT;
+    using VULKAN_HPP_RAII_NAMESPACE::ShaderEXTs;
+
+  }  // namespace VULKAN_HPP_RAII_NAMESPACE
+#endif
+}  // namespace VULKAN_HPP_NAMESPACE
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index 3510ac9..ef94006 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -2,7 +2,7 @@
 #define VULKAN_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -84,6 +84,14 @@
 #include "vulkan_screen.h"
 #endif
 
+
+#ifdef VK_USE_PLATFORM_SCI
+#include <nvscisync.h>
+#include <nvscibuf.h>
+#include "vulkan_sci.h"
+#endif
+
+
 #ifdef VK_ENABLE_BETA_EXTENSIONS
 #include "vulkan_beta.h"
 #endif
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 9abcf50..e182f7d 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -8,37 +8,18 @@
 #ifndef VULKAN_HPP
 #define VULKAN_HPP
 
-#if defined( _MSVC_LANG )
-#  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
-#else
-#  define VULKAN_HPP_CPLUSPLUS __cplusplus
-#endif
-
-#if 201703L < VULKAN_HPP_CPLUSPLUS
-#  define VULKAN_HPP_CPP_VERSION 20
-#elif 201402L < VULKAN_HPP_CPLUSPLUS
-#  define VULKAN_HPP_CPP_VERSION 17
-#elif 201103L < VULKAN_HPP_CPLUSPLUS
-#  define VULKAN_HPP_CPP_VERSION 14
-#elif 199711L < VULKAN_HPP_CPLUSPLUS
-#  define VULKAN_HPP_CPP_VERSION 11
-#else
-#  error "vulkan.hpp needs at least c++ standard version 11"
-#endif
-
 #include <algorithm>
-#include <array>   // ArrayWrapperND
-#include <string>  // std::string
+#include <array>     // ArrayWrapperND
+#include <string.h>  // strnlen
+#include <string>    // std::string
 #include <vulkan/vulkan.h>
+#include <vulkan/vulkan_hpp_macros.hpp>
+
 #if 17 <= VULKAN_HPP_CPP_VERSION
-#  include <string_view>  // std::string_view
+#  include <string_view>
 #endif
 
-#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-#  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
-#    define VULKAN_HPP_NO_SMART_HANDLE
-#  endif
-#else
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
 #  include <tuple>   // std::tie
 #  include <vector>  // std::vector
 #endif
@@ -47,61 +28,12 @@
 #  include <system_error>  // std::is_error_code_enum
 #endif
 
-#if defined( VULKAN_HPP_NO_CONSTRUCTORS )
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-#    define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
-#  endif
-#  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
-#    define VULKAN_HPP_NO_UNION_CONSTRUCTORS
-#  endif
-#endif
-
-#if defined( VULKAN_HPP_NO_SETTERS )
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-#    define VULKAN_HPP_NO_STRUCT_SETTERS
-#  endif
-#  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
-#    define VULKAN_HPP_NO_UNION_SETTERS
-#  endif
-#endif
-
-#if defined( VULKAN_HPP_NO_CONSTRUCTORS )
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-#    define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
-#  endif
-#  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
-#    define VULKAN_HPP_NO_UNION_CONSTRUCTORS
-#  endif
-#endif
-
-#if defined( VULKAN_HPP_NO_SETTERS )
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-#    define VULKAN_HPP_NO_STRUCT_SETTERS
-#  endif
-#  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
-#    define VULKAN_HPP_NO_UNION_SETTERS
-#  endif
-#endif
-
-#if !defined( VULKAN_HPP_ASSERT )
+#if ( VULKAN_HPP_ASSERT == assert )
 #  include <cassert>
-#  define VULKAN_HPP_ASSERT assert
-#endif
-
-#if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
-#  define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
-#endif
-
-#if !defined( VULKAN_HPP_STATIC_ASSERT )
-#  define VULKAN_HPP_STATIC_ASSERT static_assert
-#endif
-
-#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
-#  define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
 #endif
 
 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
-#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
 #    include <dlfcn.h>
 #  elif defined( _WIN32 )
 typedef struct HINSTANCE__ * HINSTANCE;
@@ -116,31 +48,15 @@
 #  endif
 #endif
 
-#if !defined( __has_include )
-#  define __has_include( x ) false
-#endif
-
-#if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
-#  define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
-#endif
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
 #  include <compare>
 #endif
 
-#if ( 201803 <= __cpp_lib_span )
-#  define VULKAN_HPP_SUPPORT_SPAN
+#if defined( VULKAN_HPP_SUPPORT_SPAN )
 #  include <span>
 #endif
 
-static_assert( VK_HEADER_VERSION == 237, "Wrong VK_HEADER_VERSION!" );
-
-// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
-// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
-#if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
-#  if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
-#    define VULKAN_HPP_TYPESAFE_CONVERSION
-#  endif
-#endif
+static_assert( VK_HEADER_VERSION == 275, "Wrong VK_HEADER_VERSION!" );
 
 // <tuple> includes <sys/sysmacros.h> through some other header
 // this results in major(x) being resolved to gnu_dev_major(x)
@@ -158,99 +74,17 @@
 #  undef MemoryBarrier
 #endif
 
-#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
-#  if defined( __clang__ )
-#    if __has_feature( cxx_unrestricted_unions )
-#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
-#    endif
-#  elif defined( __GNUC__ )
-#    define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
-#    if 40600 <= GCC_VERSION
-#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
-#    endif
-#  elif defined( _MSC_VER )
-#    if 1900 <= _MSC_VER
-#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
-#    endif
-#  endif
+// XLib.h defines True/False, which collides with our vk::True/vk::False
+// ->  undef them and provide some namepace-secure constexpr
+#if defined( True )
+#  undef True
+constexpr int True = 1;
 #endif
-
-#if !defined( VULKAN_HPP_INLINE )
-#  if defined( __clang__ )
-#    if __has_attribute( always_inline )
-#      define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
-#    else
-#      define VULKAN_HPP_INLINE inline
-#    endif
-#  elif defined( __GNUC__ )
-#    define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
-#  elif defined( _MSC_VER )
-#    define VULKAN_HPP_INLINE inline
-#  else
-#    define VULKAN_HPP_INLINE inline
-#  endif
+#if defined( False )
+#  undef False
+constexpr int False = 0;
 #endif
 
-#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
-#  define VULKAN_HPP_TYPESAFE_EXPLICIT
-#else
-#  define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
-#endif
-
-#if defined( __cpp_constexpr )
-#  define VULKAN_HPP_CONSTEXPR constexpr
-#  if __cpp_constexpr >= 201304
-#    define VULKAN_HPP_CONSTEXPR_14 constexpr
-#  else
-#    define VULKAN_HPP_CONSTEXPR_14
-#  endif
-#  define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
-#else
-#  define VULKAN_HPP_CONSTEXPR
-#  define VULKAN_HPP_CONSTEXPR_14
-#  define VULKAN_HPP_CONST_OR_CONSTEXPR const
-#endif
-
-#if !defined( VULKAN_HPP_NOEXCEPT )
-#  if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
-#    define VULKAN_HPP_NOEXCEPT
-#  else
-#    define VULKAN_HPP_NOEXCEPT     noexcept
-#    define VULKAN_HPP_HAS_NOEXCEPT 1
-#    if defined( VULKAN_HPP_NO_EXCEPTIONS )
-#      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
-#    else
-#      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
-#    endif
-#  endif
-#endif
-
-#if 14 <= VULKAN_HPP_CPP_VERSION
-#  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
-#else
-#  define VULKAN_HPP_DEPRECATED( msg )
-#endif
-
-#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
-#  define VULKAN_HPP_NODISCARD [[nodiscard]]
-#  if defined( VULKAN_HPP_NO_EXCEPTIONS )
-#    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
-#  else
-#    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
-#  endif
-#else
-#  define VULKAN_HPP_NODISCARD
-#  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
-#endif
-
-#if !defined( VULKAN_HPP_NAMESPACE )
-#  define VULKAN_HPP_NAMESPACE vk
-#endif
-
-#define VULKAN_HPP_STRINGIFY2( text ) #text
-#define VULKAN_HPP_STRINGIFY( text )  VULKAN_HPP_STRINGIFY2( text )
-#define VULKAN_HPP_NAMESPACE_STRING   VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
-
 namespace VULKAN_HPP_NAMESPACE
 {
   template <typename T, size_t N>
@@ -261,6 +95,20 @@
 
     VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT : std::array<T, N>( data ) {}
 
+    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
+    VULKAN_HPP_CONSTEXPR_14 ArrayWrapper1D( std::string const & data ) VULKAN_HPP_NOEXCEPT
+    {
+      copy( data.data(), data.length() );
+    }
+
+#if 17 <= VULKAN_HPP_CPP_VERSION
+    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
+    VULKAN_HPP_CONSTEXPR_14 ArrayWrapper1D( std::string_view data ) VULKAN_HPP_NOEXCEPT
+    {
+      copy( data.data(), data.length() );
+    }
+#endif
+
 #if ( VK_USE_64_BIT_PTR_DEFINES == 0 )
     // on 32 bit compiles, needs overloads on index type int to resolve ambiguities
     VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
@@ -287,14 +135,14 @@
     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
     operator std::string() const
     {
-      return std::string( this->data() );
+      return std::string( this->data(), strnlen( this->data(), N ) );
     }
 
 #if 17 <= VULKAN_HPP_CPP_VERSION
     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
     operator std::string_view() const
     {
-      return std::string_view( this->data() );
+      return std::string_view( this->data(), strnlen( this->data(), N ) );
     }
 #endif
 
@@ -341,6 +189,20 @@
     {
       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
     }
+
+  private:
+    VULKAN_HPP_CONSTEXPR_14 void copy( char const * data, size_t len ) VULKAN_HPP_NOEXCEPT
+    {
+      size_t n = std::min( N, len );
+      for ( size_t i = 0; i < n; ++i )
+      {
+        ( *this )[i] = data[i];
+      }
+      for ( size_t i = n; i < N; ++i )
+      {
+        ( *this )[i] = 0;
+      }
+    }
   };
 
   // specialization of relational operators between std::string and arrays of chars
@@ -392,212 +254,6 @@
     }
   };
 
-  template <typename FlagBitsType>
-  struct FlagTraits
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false;
-  };
-
-  template <typename BitType>
-  class Flags
-  {
-  public:
-    using MaskType = typename std::underlying_type<BitType>::type;
-
-    // constructors
-    VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
-
-    VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
-
-    VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
-
-    // relational operators
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( Flags<BitType> const & ) const = default;
-#else
-    VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask < rhs.m_mask;
-    }
-
-    VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask <= rhs.m_mask;
-    }
-
-    VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask > rhs.m_mask;
-    }
-
-    VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask >= rhs.m_mask;
-    }
-
-    VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask == rhs.m_mask;
-    }
-
-    VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask != rhs.m_mask;
-    }
-#endif
-
-    // logical operator
-    VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
-    {
-      return !m_mask;
-    }
-
-    // bitwise operators
-    VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return Flags<BitType>( m_mask & rhs.m_mask );
-    }
-
-    VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return Flags<BitType>( m_mask | rhs.m_mask );
-    }
-
-    VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return Flags<BitType>( m_mask ^ rhs.m_mask );
-    }
-
-    VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
-    {
-      return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags.m_mask );
-    }
-
-    // assignment operators
-    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      m_mask |= rhs.m_mask;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      m_mask &= rhs.m_mask;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      m_mask ^= rhs.m_mask;
-      return *this;
-    }
-
-    // cast operators
-    explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
-    {
-      return !!m_mask;
-    }
-
-    explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
-    {
-      return m_mask;
-    }
-
-#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
-  public:
-#else
-  private:
-#endif
-    MaskType m_mask;
-  };
-
-#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-  // relational operators only needed for pre C++20
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator>( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator>=( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator<( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator<=( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator==( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator!=( bit );
-  }
-#endif
-
-  // bitwise operators
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator&( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator|( bit );
-  }
-
-  template <typename BitType>
-  VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
-  {
-    return flags.operator^( bit );
-  }
-
-  // bitwise operators on BitType
-  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
-  {
-    return Flags<BitType>( lhs ) & rhs;
-  }
-
-  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
-  {
-    return Flags<BitType>( lhs ) | rhs;
-  }
-
-  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
-  {
-    return Flags<BitType>( lhs ) ^ rhs;
-  }
-
-  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator~( BitType bit ) VULKAN_HPP_NOEXCEPT
-  {
-    return ~( Flags<BitType>( bit ) );
-  }
-
 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
   template <typename T>
   class ArrayProxy
@@ -765,7 +421,7 @@
     }
 
     template <std::size_t C>
-    ArrayProxyNoTemporaries( T( &&ptr )[C] ) = delete;
+    ArrayProxyNoTemporaries( T ( &&ptr )[C] ) = delete;
 
     template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
     ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
@@ -775,7 +431,7 @@
     }
 
     template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
-    ArrayProxyNoTemporaries( typename std::remove_const<T>::type( &&ptr )[C] ) = delete;
+    ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &&ptr )[C] ) = delete;
 
     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
       : m_count( static_cast<uint32_t>( list.size() ) )
@@ -914,10 +570,12 @@
     {
       m_ptr = &reference;
     }
+
     Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
     {
       m_ptr = ptr;
     }
+
     Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
     {
       m_ptr = nullptr;
@@ -927,10 +585,12 @@
     {
       return m_ptr;
     }
+
     RefType const * operator->() const VULKAN_HPP_NOEXCEPT
     {
       return m_ptr;
     }
+
     explicit operator bool() const VULKAN_HPP_NOEXCEPT
     {
       return !!m_ptr;
@@ -1059,6 +719,17 @@
       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
     }
 
+    // assign a complete structure to the StructureChain without modifying the chaining
+    template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
+    StructureChain & assign( const T & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      T &    lhs   = get<T, Which>();
+      void * pNext = lhs.pNext;
+      lhs          = rhs;
+      lhs.pNext    = pNext;
+      return *this;
+    }
+
     template <typename ClassType, size_t Which = 0>
     typename std::enable_if<std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value && ( Which == 0 ), bool>::type
       isLinked() const VULKAN_HPP_NOEXCEPT
@@ -1158,19 +829,6 @@
       dst->pNext = nullptr;
     }
 
-    void link( void * dstBase, void const * srcBase, VkBaseOutStructure * dst, VkBaseInStructure const * src )
-    {
-      while ( src->pNext )
-      {
-        std::ptrdiff_t offset =
-          reinterpret_cast<char const *>( src->pNext ) - reinterpret_cast<char const *>( srcBase );
-        dst->pNext = reinterpret_cast<VkBaseOutStructure *>( reinterpret_cast<char *>( dstBase ) + offset );
-        dst        = dst->pNext;
-        src        = src->pNext;
-      }
-      dst->pNext = nullptr;
-    }
-
     void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
     {
       VkBaseOutStructure * elementPtr = reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
@@ -1189,6 +847,27 @@
     }
   };
 
+  // interupt the VULKAN_HPP_NAMESPACE for a moment to add specializations of std::tuple_size and std::tuple_element for the StructureChain!
+}
+
+namespace std
+{
+  template <typename... Elements>
+  struct tuple_size<VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+  {
+    static constexpr size_t value = std::tuple_size<std::tuple<Elements...>>::value;
+  };
+
+  template <std::size_t Index, typename... Elements>
+  struct tuple_element<Index, VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+  {
+    using type = typename std::tuple_element<Index, std::tuple<Elements...>>::type;
+  };
+}  // namespace std
+
+namespace VULKAN_HPP_NAMESPACE
+{
+
 #  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
   template <typename Type, typename Dispatch>
   class UniqueHandleTraits;
@@ -1339,29 +1018,6 @@
 #endif
   };
 
-  class DispatchLoaderBase
-  {
-  public:
-    DispatchLoaderBase() = default;
-    DispatchLoaderBase( std::nullptr_t )
-#if !defined( NDEBUG )
-      : m_valid( false )
-#endif
-    {}
-
-#if !defined( NDEBUG )
-    size_t getVkHeaderVersion() const
-    {
-      VULKAN_HPP_ASSERT( m_valid );
-      return vkHeaderVersion;
-    }
-
-  private:
-    size_t vkHeaderVersion = VK_HEADER_VERSION;
-    bool   m_valid         = true;
-#endif
-  };
-
 #if !defined( VK_NO_PROTOTYPES )
   class DispatchLoaderStatic : public DispatchLoaderBase
   {
@@ -3100,7 +2756,6 @@
       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
     }
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
 
     VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice              physicalDevice,
@@ -3183,16 +2838,13 @@
     {
       return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo );
     }
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_decode_queue ===
 
     void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR * pDecodeInfo ) const VULKAN_HPP_NOEXCEPT
     {
       return ::vkCmdDecodeVideoKHR( commandBuffer, pDecodeInfo );
     }
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     //=== VK_EXT_transform_feedback ===
 
@@ -3716,6 +3368,16 @@
       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
     }
 
+    void vkCmdSetDiscardRectangleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetDiscardRectangleEnableEXT( commandBuffer, discardRectangleEnable );
+    }
+
+    void vkCmdSetDiscardRectangleModeEXT( VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetDiscardRectangleModeEXT( commandBuffer, discardRectangleMode );
+    }
+
     //=== VK_EXT_hdr_metadata ===
 
     void vkSetHdrMetadataEXT( VkDevice                 device,
@@ -3982,6 +3644,59 @@
     }
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_AMDX_shader_enqueue ===
+
+    VkResult vkCreateExecutionGraphPipelinesAMDX( VkDevice                                       device,
+                                                  VkPipelineCache                                pipelineCache,
+                                                  uint32_t                                       createInfoCount,
+                                                  const VkExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,
+                                                  const VkAllocationCallbacks *                  pAllocator,
+                                                  VkPipeline *                                   pPipelines ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateExecutionGraphPipelinesAMDX( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
+    }
+
+    VkResult vkGetExecutionGraphPipelineScratchSizeAMDX( VkDevice                                  device,
+                                                         VkPipeline                                executionGraph,
+                                                         VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetExecutionGraphPipelineScratchSizeAMDX( device, executionGraph, pSizeInfo );
+    }
+
+    VkResult vkGetExecutionGraphPipelineNodeIndexAMDX( VkDevice                                        device,
+                                                       VkPipeline                                      executionGraph,
+                                                       const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,
+                                                       uint32_t *                                      pNodeIndex ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetExecutionGraphPipelineNodeIndexAMDX( device, executionGraph, pNodeInfo, pNodeIndex );
+    }
+
+    void vkCmdInitializeGraphScratchMemoryAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdInitializeGraphScratchMemoryAMDX( commandBuffer, scratch );
+    }
+
+    void vkCmdDispatchGraphAMDX( VkCommandBuffer                      commandBuffer,
+                                 VkDeviceAddress                      scratch,
+                                 const VkDispatchGraphCountInfoAMDX * pCountInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdDispatchGraphAMDX( commandBuffer, scratch, pCountInfo );
+    }
+
+    void vkCmdDispatchGraphIndirectAMDX( VkCommandBuffer                      commandBuffer,
+                                         VkDeviceAddress                      scratch,
+                                         const VkDispatchGraphCountInfoAMDX * pCountInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdDispatchGraphIndirectAMDX( commandBuffer, scratch, pCountInfo );
+    }
+
+    void vkCmdDispatchGraphIndirectCountAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdDispatchGraphIndirectCountAMDX( commandBuffer, scratch, countInfo );
+    }
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
     //=== VK_EXT_sample_locations ===
 
     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
@@ -4147,6 +3862,68 @@
       return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
     }
 
+    //=== VK_KHR_ray_tracing_pipeline ===
+
+    void vkCmdTraceRaysKHR( VkCommandBuffer                         commandBuffer,
+                            const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                            const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                            const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                            const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                            uint32_t                                width,
+                            uint32_t                                height,
+                            uint32_t                                depth ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdTraceRaysKHR(
+        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
+    }
+
+    VkResult vkCreateRayTracingPipelinesKHR( VkDevice                                  device,
+                                             VkDeferredOperationKHR                    deferredOperation,
+                                             VkPipelineCache                           pipelineCache,
+                                             uint32_t                                  createInfoCount,
+                                             const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
+                                             const VkAllocationCallbacks *             pAllocator,
+                                             VkPipeline *                              pPipelines ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
+    }
+
+    VkResult vkGetRayTracingShaderGroupHandlesKHR(
+      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
+    }
+
+    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
+    }
+
+    void vkCmdTraceRaysIndirectKHR( VkCommandBuffer                         commandBuffer,
+                                    const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                                    const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                                    const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                                    const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                                    VkDeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdTraceRaysIndirectKHR(
+        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
+    }
+
+    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice               device,
+                                                         VkPipeline             pipeline,
+                                                         uint32_t               group,
+                                                         VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
+    }
+
+    void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
+    }
+
     //=== VK_KHR_sampler_ycbcr_conversion ===
 
     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice                                   device,
@@ -4419,14 +4196,14 @@
 
     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice  physicalDevice,
                                                              uint32_t *        pTimeDomainCount,
-                                                             VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
+                                                             VkTimeDomainKHR * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
     {
       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
     }
 
     VkResult vkGetCalibratedTimestampsEXT( VkDevice                             device,
                                            uint32_t                             timestampCount,
-                                           const VkCalibratedTimestampInfoEXT * pTimestampInfos,
+                                           const VkCalibratedTimestampInfoKHR * pTimestampInfos,
                                            uint64_t *                           pTimestamps,
                                            uint64_t *                           pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
     {
@@ -4459,6 +4236,14 @@
 
     //=== VK_NV_scissor_exclusive ===
 
+    void vkCmdSetExclusiveScissorEnableNV( VkCommandBuffer  commandBuffer,
+                                           uint32_t         firstExclusiveScissor,
+                                           uint32_t         exclusiveScissorCount,
+                                           const VkBool32 * pExclusiveScissorEnables ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetExclusiveScissorEnableNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables );
+    }
+
     void vkCmdSetExclusiveScissorNV( VkCommandBuffer  commandBuffer,
                                      uint32_t         firstExclusiveScissor,
                                      uint32_t         exclusiveScissorCount,
@@ -4833,6 +4618,49 @@
       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
     }
 
+    //=== VK_EXT_host_image_copy ===
+
+    VkResult vkCopyMemoryToImageEXT( VkDevice device, const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCopyMemoryToImageEXT( device, pCopyMemoryToImageInfo );
+    }
+
+    VkResult vkCopyImageToMemoryEXT( VkDevice device, const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCopyImageToMemoryEXT( device, pCopyImageToMemoryInfo );
+    }
+
+    VkResult vkCopyImageToImageEXT( VkDevice device, const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCopyImageToImageEXT( device, pCopyImageToImageInfo );
+    }
+
+    VkResult
+      vkTransitionImageLayoutEXT( VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT * pTransitions ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkTransitionImageLayoutEXT( device, transitionCount, pTransitions );
+    }
+
+    void vkGetImageSubresourceLayout2EXT( VkDevice                       device,
+                                          VkImage                        image,
+                                          const VkImageSubresource2KHR * pSubresource,
+                                          VkSubresourceLayout2KHR *      pLayout ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetImageSubresourceLayout2EXT( device, image, pSubresource, pLayout );
+    }
+
+    //=== VK_KHR_map_memory2 ===
+
+    VkResult vkMapMemory2KHR( VkDevice device, const VkMemoryMapInfoKHR * pMemoryMapInfo, void ** ppData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkMapMemory2KHR( device, pMemoryMapInfo, ppData );
+    }
+
+    VkResult vkUnmapMemory2KHR( VkDevice device, const VkMemoryUnmapInfoKHR * pMemoryUnmapInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkUnmapMemory2KHR( device, pMemoryUnmapInfo );
+    }
+
     //=== VK_EXT_swapchain_maintenance1 ===
 
     VkResult vkReleaseSwapchainImagesEXT( VkDevice device, const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) const VULKAN_HPP_NOEXCEPT
@@ -4884,6 +4712,13 @@
       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
     }
 
+    //=== VK_EXT_depth_bias_control ===
+
+    void vkCmdSetDepthBias2EXT( VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT * pDepthBiasInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetDepthBias2EXT( commandBuffer, pDepthBiasInfo );
+    }
+
     //=== VK_EXT_acquire_drm_display ===
 
     VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
@@ -4923,13 +4758,68 @@
       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
     }
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_encode_queue ===
 
+    VkResult
+      vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( VkPhysicalDevice                                       physicalDevice,
+                                                               const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
+                                                               VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( physicalDevice, pQualityLevelInfo, pQualityLevelProperties );
+    }
+
+    VkResult vkGetEncodedVideoSessionParametersKHR( VkDevice                                         device,
+                                                    const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
+                                                    VkVideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
+                                                    size_t *                                         pDataSize,
+                                                    void *                                           pData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetEncodedVideoSessionParametersKHR( device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData );
+    }
+
     void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT
     {
       return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo );
     }
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+
+    VkResult vkCreateCudaModuleNV( VkDevice                         device,
+                                   const VkCudaModuleCreateInfoNV * pCreateInfo,
+                                   const VkAllocationCallbacks *    pAllocator,
+                                   VkCudaModuleNV *                 pModule ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateCudaModuleNV( device, pCreateInfo, pAllocator, pModule );
+    }
+
+    VkResult vkGetCudaModuleCacheNV( VkDevice device, VkCudaModuleNV module, size_t * pCacheSize, void * pCacheData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetCudaModuleCacheNV( device, module, pCacheSize, pCacheData );
+    }
+
+    VkResult vkCreateCudaFunctionNV( VkDevice                           device,
+                                     const VkCudaFunctionCreateInfoNV * pCreateInfo,
+                                     const VkAllocationCallbacks *      pAllocator,
+                                     VkCudaFunctionNV *                 pFunction ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateCudaFunctionNV( device, pCreateInfo, pAllocator, pFunction );
+    }
+
+    void vkDestroyCudaModuleNV( VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkDestroyCudaModuleNV( device, module, pAllocator );
+    }
+
+    void vkDestroyCudaFunctionNV( VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkDestroyCudaFunctionNV( device, function, pAllocator );
+    }
+
+    void vkCmdCudaLaunchKernelNV( VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdCudaLaunchKernelNV( commandBuffer, pLaunchInfo );
+    }
 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
@@ -5130,16 +5020,6 @@
       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
     }
 
-    //=== VK_EXT_image_compression_control ===
-
-    void vkGetImageSubresourceLayout2EXT( VkDevice                       device,
-                                          VkImage                        image,
-                                          const VkImageSubresource2EXT * pSubresource,
-                                          VkSubresourceLayout2EXT *      pLayout ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkGetImageSubresourceLayout2EXT( device, image, pSubresource, pLayout );
-    }
-
     //=== VK_EXT_device_fault ===
 
     VkResult vkGetDeviceFaultInfoEXT( VkDevice device, VkDeviceFaultCountsEXT * pFaultCounts, VkDeviceFaultInfoEXT * pFaultInfo ) const VULKAN_HPP_NOEXCEPT
@@ -5179,68 +5059,6 @@
     }
 #  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-    //=== VK_KHR_ray_tracing_pipeline ===
-
-    void vkCmdTraceRaysKHR( VkCommandBuffer                         commandBuffer,
-                            const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                            const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                            const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                            const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                            uint32_t                                width,
-                            uint32_t                                height,
-                            uint32_t                                depth ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkCmdTraceRaysKHR(
-        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
-    }
-
-    VkResult vkCreateRayTracingPipelinesKHR( VkDevice                                  device,
-                                             VkDeferredOperationKHR                    deferredOperation,
-                                             VkPipelineCache                           pipelineCache,
-                                             uint32_t                                  createInfoCount,
-                                             const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
-                                             const VkAllocationCallbacks *             pAllocator,
-                                             VkPipeline *                              pPipelines ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
-    }
-
-    VkResult vkGetRayTracingShaderGroupHandlesKHR(
-      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
-    }
-
-    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
-      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
-    }
-
-    void vkCmdTraceRaysIndirectKHR( VkCommandBuffer                         commandBuffer,
-                                    const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                                    const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                                    const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                                    const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                                    VkDeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkCmdTraceRaysIndirectKHR(
-        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
-    }
-
-    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice               device,
-                                                         VkPipeline             pipeline,
-                                                         uint32_t               group,
-                                                         VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
-    }
-
-    void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
-    }
-
     //=== VK_EXT_vertex_input_dynamic_state ===
 
     void vkCmdSetVertexInputEXT( VkCommandBuffer                               commandBuffer,
@@ -5547,6 +5365,18 @@
       return ::vkGetMicromapBuildSizesEXT( device, buildType, pBuildInfo, pSizeInfo );
     }
 
+    //=== VK_HUAWEI_cluster_culling_shader ===
+
+    void vkCmdDrawClusterHUAWEI( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdDrawClusterHUAWEI( commandBuffer, groupCountX, groupCountY, groupCountZ );
+    }
+
+    void vkCmdDrawClusterIndirectHUAWEI( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdDrawClusterIndirectHUAWEI( commandBuffer, buffer, offset );
+    }
+
     //=== VK_EXT_pageable_device_local_memory ===
 
     void vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
@@ -5630,6 +5460,26 @@
       return ::vkCmdDecompressMemoryIndirectCountNV( commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride );
     }
 
+    //=== VK_NV_device_generated_commands_compute ===
+
+    void vkGetPipelineIndirectMemoryRequirementsNV( VkDevice                            device,
+                                                    const VkComputePipelineCreateInfo * pCreateInfo,
+                                                    VkMemoryRequirements2 *             pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetPipelineIndirectMemoryRequirementsNV( device, pCreateInfo, pMemoryRequirements );
+    }
+
+    void
+      vkCmdUpdatePipelineIndirectBufferNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdUpdatePipelineIndirectBufferNV( commandBuffer, pipelineBindPoint, pipeline );
+    }
+
+    VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV( VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV * pInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetPipelineIndirectDeviceAddressNV( device, pInfo );
+    }
+
     //=== VK_EXT_extended_dynamic_state3 ===
 
     void vkCmdSetTessellationDomainOriginEXT( VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT
@@ -5858,6 +5708,65 @@
       return ::vkCmdOpticalFlowExecuteNV( commandBuffer, session, pExecuteInfo );
     }
 
+    //=== VK_KHR_maintenance5 ===
+
+    void vkCmdBindIndexBuffer2KHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdBindIndexBuffer2KHR( commandBuffer, buffer, offset, size, indexType );
+    }
+
+    void vkGetRenderingAreaGranularityKHR( VkDevice                       device,
+                                           const VkRenderingAreaInfoKHR * pRenderingAreaInfo,
+                                           VkExtent2D *                   pGranularity ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetRenderingAreaGranularityKHR( device, pRenderingAreaInfo, pGranularity );
+    }
+
+    void vkGetDeviceImageSubresourceLayoutKHR( VkDevice                                device,
+                                               const VkDeviceImageSubresourceInfoKHR * pInfo,
+                                               VkSubresourceLayout2KHR *               pLayout ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetDeviceImageSubresourceLayoutKHR( device, pInfo, pLayout );
+    }
+
+    void vkGetImageSubresourceLayout2KHR( VkDevice                       device,
+                                          VkImage                        image,
+                                          const VkImageSubresource2KHR * pSubresource,
+                                          VkSubresourceLayout2KHR *      pLayout ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetImageSubresourceLayout2KHR( device, image, pSubresource, pLayout );
+    }
+
+    //=== VK_EXT_shader_object ===
+
+    VkResult vkCreateShadersEXT( VkDevice                      device,
+                                 uint32_t                      createInfoCount,
+                                 const VkShaderCreateInfoEXT * pCreateInfos,
+                                 const VkAllocationCallbacks * pAllocator,
+                                 VkShaderEXT *                 pShaders ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateShadersEXT( device, createInfoCount, pCreateInfos, pAllocator, pShaders );
+    }
+
+    void vkDestroyShaderEXT( VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkDestroyShaderEXT( device, shader, pAllocator );
+    }
+
+    VkResult vkGetShaderBinaryDataEXT( VkDevice device, VkShaderEXT shader, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetShaderBinaryDataEXT( device, shader, pDataSize, pData );
+    }
+
+    void vkCmdBindShadersEXT( VkCommandBuffer               commandBuffer,
+                              uint32_t                      stageCount,
+                              const VkShaderStageFlagBits * pStages,
+                              const VkShaderEXT *           pShaders ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdBindShadersEXT( commandBuffer, stageCount, pStages, pShaders );
+    }
+
     //=== VK_QCOM_tile_properties ===
 
     VkResult vkGetFramebufferTilePropertiesQCOM( VkDevice               device,
@@ -5875,110 +5784,119 @@
       return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties );
     }
 
-    //=== VK_EXT_pageable_device_local_memory ===
+    //=== VK_NV_low_latency2 ===
 
-    void
-      vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
+    VkResult vkSetLatencySleepModeNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV * pSleepModeInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority );
+      return ::vkSetLatencySleepModeNV( device, swapchain, pSleepModeInfo );
     }
 
-    //=== VK_KHR_maintenance4 ===
-
-    void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice                                 device,
-                                                 const VkDeviceBufferMemoryRequirements * pInfo,
-                                                 VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
+    VkResult vkLatencySleepNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV * pSleepInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
+      return ::vkLatencySleepNV( device, swapchain, pSleepInfo );
     }
 
-    void vkGetDeviceImageMemoryRequirementsKHR( VkDevice                                device,
-                                                const VkDeviceImageMemoryRequirements * pInfo,
-                                                VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
+    void vkSetLatencyMarkerNV( VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
+      return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo );
     }
 
-    void vkGetDeviceImageSparseMemoryRequirementsKHR(
-      VkDevice                                device,
-      const VkDeviceImageMemoryRequirements * pInfo,
-      uint32_t *                              pSparseMemoryRequirementCount,
-      VkSparseImageMemoryRequirements2 *      pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
+    void vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      return ::vkGetDeviceImageSparseMemoryRequirementsKHR(
-        device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
+      return ::vkGetLatencyTimingsNV( device, swapchain, pLatencyMarkerInfo );
+    }
+
+    void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkQueueNotifyOutOfBandNV( queue, pQueueTypeInfo );
+    }
+
+    //=== VK_KHR_cooperative_matrix ===
+
+    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDevice                   physicalDevice,
+                                                                uint32_t *                         pPropertyCount,
+                                                                VkCooperativeMatrixPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
+    }
+
+    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+    void vkCmdSetAttachmentFeedbackLoopEnableEXT( VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetAttachmentFeedbackLoopEnableEXT( commandBuffer, aspectMask );
+    }
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    //=== VK_QNX_external_memory_screen_buffer ===
+
+    VkResult vkGetScreenBufferPropertiesQNX( VkDevice                      device,
+                                             const struct _screen_buffer * buffer,
+                                             VkScreenBufferPropertiesQNX * pProperties ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetScreenBufferPropertiesQNX( device, buffer, pProperties );
+    }
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+    //=== VK_KHR_calibrated_timestamps ===
+
+    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( VkPhysicalDevice  physicalDevice,
+                                                             uint32_t *        pTimeDomainCount,
+                                                             VkTimeDomainKHR * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( physicalDevice, pTimeDomainCount, pTimeDomains );
+    }
+
+    VkResult vkGetCalibratedTimestampsKHR( VkDevice                             device,
+                                           uint32_t                             timestampCount,
+                                           const VkCalibratedTimestampInfoKHR * pTimestampInfos,
+                                           uint64_t *                           pTimestamps,
+                                           uint64_t *                           pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetCalibratedTimestampsKHR( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
+    }
+
+    //=== VK_KHR_maintenance6 ===
+
+    void vkCmdBindDescriptorSets2KHR( VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR * pBindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdBindDescriptorSets2KHR( commandBuffer, pBindDescriptorSetsInfo );
+    }
+
+    void vkCmdPushConstants2KHR( VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR * pPushConstantsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdPushConstants2KHR( commandBuffer, pPushConstantsInfo );
+    }
+
+    void vkCmdPushDescriptorSet2KHR( VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR * pPushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdPushDescriptorSet2KHR( commandBuffer, pPushDescriptorSetInfo );
+    }
+
+    void vkCmdPushDescriptorSetWithTemplate2KHR( VkCommandBuffer                                commandBuffer,
+                                                 const VkPushDescriptorSetWithTemplateInfoKHR * pPushDescriptorSetWithTemplateInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdPushDescriptorSetWithTemplate2KHR( commandBuffer, pPushDescriptorSetWithTemplateInfo );
+    }
+
+    void vkCmdSetDescriptorBufferOffsets2EXT( VkCommandBuffer                             commandBuffer,
+                                              const VkSetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetDescriptorBufferOffsets2EXT( commandBuffer, pSetDescriptorBufferOffsetsInfo );
+    }
+
+    void vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
+      VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo );
     }
   };
-#endif
 
-  class DispatchLoaderDynamic;
-#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
-#  if defined( VK_NO_PROTOTYPES )
-#    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
-#  else
-#    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
-#  endif
-#endif
-
-#if !defined( VULKAN_HPP_STORAGE_API )
-#  if defined( VULKAN_HPP_STORAGE_SHARED )
-#    if defined( _MSC_VER )
-#      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
-#        define VULKAN_HPP_STORAGE_API __declspec( dllexport )
-#      else
-#        define VULKAN_HPP_STORAGE_API __declspec( dllimport )
-#      endif
-#    elif defined( __clang__ ) || defined( __GNUC__ )
-#      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
-#        define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
-#      else
-#        define VULKAN_HPP_STORAGE_API
-#      endif
-#    else
-#      define VULKAN_HPP_STORAGE_API
-#      pragma warning Unknown import / export semantics
-#    endif
-#  else
-#    define VULKAN_HPP_STORAGE_API
-#  endif
-#endif
-
-#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
-#  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
-#    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
-#    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE                     \
-      namespace VULKAN_HPP_NAMESPACE                                               \
-      {                                                                            \
-        VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \
-      }
-  extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
-#  else
-  static inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
+  inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
   {
     static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls;
     return dls;
   }
-#    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic()
-#    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
-#  endif
-#endif
-
-#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
-#  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
-#    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
-#  else
-#    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
-#  endif
-#endif
-
-#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
-#  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
-#  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
-#  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
-#else
-#  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT         = {}
-#  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
-#  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT       = VULKAN_HPP_DEFAULT_DISPATCHER
 #endif
 
 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
@@ -6003,11 +5921,17 @@
     {
       return m_owner;
     }
+
     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
     {
       return m_allocationCallbacks;
     }
 
+    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+    {
+      return *m_dispatch;
+    }
+
   protected:
     template <typename T>
     void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6042,6 +5966,11 @@
       return m_allocationCallbacks;
     }
 
+    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+    {
+      return *m_dispatch;
+    }
+
   protected:
     template <typename T>
     void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6080,6 +6009,11 @@
       return m_allocationCallbacks;
     }
 
+    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+    {
+      return *m_dispatch;
+    }
+
   protected:
     template <typename T>
     void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6111,6 +6045,11 @@
       return m_owner;
     }
 
+    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+    {
+      return *m_dispatch;
+    }
+
   protected:
     template <typename T>
     void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6141,11 +6080,17 @@
     {
       return m_owner;
     }
+
     PoolType getPool() const VULKAN_HPP_NOEXCEPT
     {
       return m_pool;
     }
 
+    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+    {
+      return *m_dispatch;
+    }
+
   protected:
     template <typename T>
     void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6198,6 +6143,7 @@
     {
       return VULKAN_HPP_NAMESPACE_STRING "::Result";
     }
+
     virtual std::string message( int ev ) const override
     {
 #  if defined( VULKAN_HPP_NO_TO_STRING )
@@ -6224,6 +6170,7 @@
   {
   public:
     explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {}
+
     explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {}
 
     virtual const char * what() const VULKAN_HPP_NOEXCEPT
@@ -6238,10 +6185,15 @@
   {
   public:
     SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {}
+
     SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {}
+
     SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {}
+
     SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {}
+
     SystemError( int ev, std::error_category const & ecat, std::string const & what ) : Error(), std::system_error( ev, ecat, what ) {}
+
     SystemError( int ev, std::error_category const & ecat, char const * what ) : Error(), std::system_error( ev, ecat, what ) {}
 
     virtual const char * what() const VULKAN_HPP_NOEXCEPT
@@ -6270,6 +6222,7 @@
   {
   public:
     OutOfHostMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
+
     OutOfHostMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
   };
 
@@ -6277,6 +6230,7 @@
   {
   public:
     OutOfDeviceMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
+
     OutOfDeviceMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
   };
 
@@ -6284,6 +6238,7 @@
   {
   public:
     InitializationFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
+
     InitializationFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
   };
 
@@ -6291,6 +6246,7 @@
   {
   public:
     DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
+
     DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
   };
 
@@ -6298,6 +6254,7 @@
   {
   public:
     MemoryMapFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
+
     MemoryMapFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
   };
 
@@ -6305,6 +6262,7 @@
   {
   public:
     LayerNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
+
     LayerNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
   };
 
@@ -6312,6 +6270,7 @@
   {
   public:
     ExtensionNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
+
     ExtensionNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
   };
 
@@ -6319,6 +6278,7 @@
   {
   public:
     FeatureNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
+
     FeatureNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
   };
 
@@ -6326,6 +6286,7 @@
   {
   public:
     IncompatibleDriverError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
+
     IncompatibleDriverError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
   };
 
@@ -6333,6 +6294,7 @@
   {
   public:
     TooManyObjectsError( std::string const & message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
+
     TooManyObjectsError( char const * message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
   };
 
@@ -6340,6 +6302,7 @@
   {
   public:
     FormatNotSupportedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
+
     FormatNotSupportedError( char const * message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
   };
 
@@ -6347,6 +6310,7 @@
   {
   public:
     FragmentedPoolError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
+
     FragmentedPoolError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
   };
 
@@ -6354,6 +6318,7 @@
   {
   public:
     UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
+
     UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
   };
 
@@ -6361,6 +6326,7 @@
   {
   public:
     OutOfPoolMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
+
     OutOfPoolMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
   };
 
@@ -6368,6 +6334,7 @@
   {
   public:
     InvalidExternalHandleError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
+
     InvalidExternalHandleError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
   };
 
@@ -6375,6 +6342,7 @@
   {
   public:
     FragmentationError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
+
     FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
   };
 
@@ -6382,6 +6350,7 @@
   {
   public:
     InvalidOpaqueCaptureAddressError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
+
     InvalidOpaqueCaptureAddressError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
   };
 
@@ -6389,6 +6358,7 @@
   {
   public:
     SurfaceLostKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
+
     SurfaceLostKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
   };
 
@@ -6396,6 +6366,7 @@
   {
   public:
     NativeWindowInUseKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
+
     NativeWindowInUseKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
   };
 
@@ -6403,6 +6374,7 @@
   {
   public:
     OutOfDateKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
+
     OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
   };
 
@@ -6410,6 +6382,7 @@
   {
   public:
     IncompatibleDisplayKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
+
     IncompatibleDisplayKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
   };
 
@@ -6417,6 +6390,7 @@
   {
   public:
     ValidationFailedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
+
     ValidationFailedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
   };
 
@@ -6424,19 +6398,18 @@
   {
   public:
     InvalidShaderNVError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
+
     InvalidShaderNVError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class ImageUsageNotSupportedKHRError : public SystemError
   {
   public:
     ImageUsageNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
+
     ImageUsageNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoPictureLayoutNotSupportedKHRError : public SystemError
   {
   public:
@@ -6444,13 +6417,12 @@
       : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
     {
     }
+
     VideoPictureLayoutNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
     {
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoProfileOperationNotSupportedKHRError : public SystemError
   {
   public:
@@ -6458,14 +6430,13 @@
       : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
     {
     }
+
     VideoProfileOperationNotSupportedKHRError( char const * message )
       : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
     {
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoProfileFormatNotSupportedKHRError : public SystemError
   {
   public:
@@ -6473,13 +6444,12 @@
       : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
     {
     }
+
     VideoProfileFormatNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
     {
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoProfileCodecNotSupportedKHRError : public SystemError
   {
   public:
@@ -6487,20 +6457,19 @@
       : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message )
     {
     }
+
     VideoProfileCodecNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message ) {}
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoStdVersionNotSupportedKHRError : public SystemError
   {
   public:
     VideoStdVersionNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message )
     {
     }
+
     VideoStdVersionNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message ) {}
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
   {
@@ -6509,6 +6478,7 @@
       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
     {
     }
+
     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
     {
@@ -6519,6 +6489,7 @@
   {
   public:
     NotPermittedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
+
     NotPermittedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
   };
 
@@ -6529,20 +6500,38 @@
     FullScreenExclusiveModeLostEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
     {
     }
+
     FullScreenExclusiveModeLostEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
   };
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
+  class InvalidVideoStdParametersKHRError : public SystemError
+  {
+  public:
+    InvalidVideoStdParametersKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
+
+    InvalidVideoStdParametersKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
+  };
+
   class CompressionExhaustedEXTError : public SystemError
   {
   public:
     CompressionExhaustedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
+
     CompressionExhaustedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
   };
 
-  namespace
+  class IncompatibleShaderBinaryEXTError : public SystemError
   {
-    [[noreturn]] void throwResultException( Result result, char const * message )
+  public:
+    IncompatibleShaderBinaryEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
+
+    IncompatibleShaderBinaryEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
+  };
+
+  namespace detail
+  {
+    [[noreturn]] VULKAN_HPP_INLINE void throwResultException( Result result, char const * message )
     {
       switch ( result )
       {
@@ -6569,34 +6558,24 @@
         case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
         case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
         case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorImageUsageNotSupportedKHR: throw ImageUsageNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorVideoPictureLayoutNotSupportedKHR: throw VideoPictureLayoutNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorVideoProfileOperationNotSupportedKHR: throw VideoProfileOperationNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorVideoProfileFormatNotSupportedKHR: throw VideoProfileFormatNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorVideoProfileCodecNotSupportedKHR: throw VideoProfileCodecNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
         case Result::eErrorVideoStdVersionNotSupportedKHR: throw VideoStdVersionNotSupportedKHRError( message );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
         case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
         case Result::eErrorNotPermittedKHR: throw NotPermittedKHRError( message );
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
         case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        case Result::eErrorInvalidVideoStdParametersKHR: throw InvalidVideoStdParametersKHRError( message );
         case Result::eErrorCompressionExhaustedEXT: throw CompressionExhaustedEXTError( message );
-        default: throw SystemError( make_error_code( result ) );
+        case Result::eErrorIncompatibleShaderBinaryEXT: throw IncompatibleShaderBinaryEXTError( message );
+        default: throw SystemError( make_error_code( result ), message );
       }
     }
-  }  // namespace
+  }  // namespace detail
 #endif
 
   template <typename T>
@@ -6648,7 +6627,15 @@
     {
     }
 
-    std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
+    VULKAN_HPP_DEPRECATED(
+      "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+
+    std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &
+    {
+      return std::make_tuple( result, std::move( value ) );
+    }
+
+    std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &&
     {
       return std::make_tuple( result, std::move( value ) );
     }
@@ -6670,7 +6657,15 @@
     {
     }
 
-    std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple()
+    VULKAN_HPP_DEPRECATED(
+      "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+
+    std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &
+    {
+      return std::make_tuple( result, std::move( value ) );
+    }
+
+    std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &&
     {
       return std::make_tuple( result, std::move( value ) );
     }
@@ -6740,7 +6735,7 @@
 #else
     if ( result != Result::eSuccess )
     {
-      throwResultException( result, message );
+      detail::throwResultException( result, message );
     }
 #endif
   }
@@ -6755,16 +6750,1853 @@
 #else
     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
     {
-      throwResultException( result, message );
+      detail::throwResultException( result, message );
     }
 #endif
   }
+
+  //===========================
+  //=== CONSTEXPR CONSTANTs ===
+  //===========================
+
+  //=== VK_VERSION_1_0 ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t AttachmentUnused          = VK_ATTACHMENT_UNUSED;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t False                     = VK_FALSE;
+  VULKAN_HPP_CONSTEXPR_INLINE float    LodClampNone              = VK_LOD_CLAMP_NONE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyIgnored        = VK_QUEUE_FAMILY_IGNORED;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingArrayLayers      = VK_REMAINING_ARRAY_LAYERS;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingMipLevels        = VK_REMAINING_MIP_LEVELS;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t SubpassExternal           = VK_SUBPASS_EXTERNAL;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t True                      = VK_TRUE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint64_t WholeSize                 = VK_WHOLE_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryTypes            = VK_MAX_MEMORY_TYPES;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxPhysicalDeviceNameSize = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t UuidSize                  = VK_UUID_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxExtensionNameSize      = VK_MAX_EXTENSION_NAME_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDescriptionSize        = VK_MAX_DESCRIPTION_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryHeaps            = VK_MAX_MEMORY_HEAPS;
+
+  //=== VK_VERSION_1_1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSize  = VK_MAX_DEVICE_GROUP_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSize            = VK_LUID_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternal = VK_QUEUE_FAMILY_EXTERNAL;
+
+  //=== VK_VERSION_1_2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSize = VK_MAX_DRIVER_NAME_SIZE;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSize = VK_MAX_DRIVER_INFO_SIZE;
+
+  //=== VK_KHR_device_group_creation ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSizeKHR = VK_MAX_DEVICE_GROUP_SIZE_KHR;
+
+  //=== VK_KHR_external_memory_capabilities ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSizeKHR = VK_LUID_SIZE_KHR;
+
+  //=== VK_KHR_external_memory ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternalKHR = VK_QUEUE_FAMILY_EXTERNAL_KHR;
+
+  //=== VK_EXT_queue_family_foreign ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyForeignEXT = VK_QUEUE_FAMILY_FOREIGN_EXT;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderIndexUnusedAMDX = VK_SHADER_INDEX_UNUSED_AMDX;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_KHR_ray_tracing_pipeline ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedKHR = VK_SHADER_UNUSED_KHR;
+
+  //=== VK_NV_ray_tracing ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedNV = VK_SHADER_UNUSED_NV;
+
+  //=== VK_KHR_global_priority ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeKHR = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR;
+
+  //=== VK_KHR_driver_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSizeKHR = VK_MAX_DRIVER_NAME_SIZE_KHR;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSizeKHR = VK_MAX_DRIVER_INFO_SIZE_KHR;
+
+  //=== VK_EXT_global_priority_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeEXT = VK_MAX_GLOBAL_PRIORITY_SIZE_EXT;
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t Remaining3DSlicesEXT = VK_REMAINING_3D_SLICES_EXT;
+
+  //=== VK_EXT_shader_module_identifier ===
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeEXT = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT;
+
+  //========================
+  //=== CONSTEXPR VALUEs ===
+  //========================
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t HeaderVersion = VK_HEADER_VERSION;
+
+  //=========================
+  //=== CONSTEXPR CALLEEs ===
+  //=========================
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_CONSTEXPR uint32_t apiVersionMajor( T const version )
+  {
+    return ( ( (uint32_t)( version ) >> 22U ) & 0x7FU );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_CONSTEXPR uint32_t apiVersionMinor( T const version )
+  {
+    return ( ( (uint32_t)( version ) >> 12U ) & 0x3FFU );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_CONSTEXPR uint32_t apiVersionPatch( T const version )
+  {
+    return ( (uint32_t)(version)&0xFFFU );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_CONSTEXPR uint32_t apiVersionVariant( T const version )
+  {
+    return ( (uint32_t)( version ) >> 29U );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_CONSTEXPR uint32_t makeApiVersion( T const variant, T const major, T const minor, T const patch )
+  {
+    return ( ( ( (uint32_t)( variant ) ) << 29U ) | ( ( (uint32_t)( major ) ) << 22U ) | ( ( (uint32_t)( minor ) ) << 12U ) | ( (uint32_t)( patch ) ) );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_MAKE_API_VERSION should be used instead." )
+  VULKAN_HPP_CONSTEXPR uint32_t makeVersion( T const major, T const minor, T const patch )
+  {
+    return ( ( ( (uint32_t)( major ) ) << 22U ) | ( ( (uint32_t)( minor ) ) << 12U ) | ( (uint32_t)( patch ) ) );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MAJOR should be used instead." )
+  VULKAN_HPP_CONSTEXPR uint32_t versionMajor( T const version )
+  {
+    return ( (uint32_t)( version ) >> 22U );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MINOR should be used instead." )
+  VULKAN_HPP_CONSTEXPR uint32_t versionMinor( T const version )
+  {
+    return ( ( (uint32_t)( version ) >> 12U ) & 0x3FFU );
+  }
+
+  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
+  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_PATCH should be used instead." )
+  VULKAN_HPP_CONSTEXPR uint32_t versionPatch( T const version )
+  {
+    return ( (uint32_t)(version)&0xFFFU );
+  }
+
+  //=========================
+  //=== CONSTEXPR CALLERs ===
+  //=========================
+  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion            = makeApiVersion( 0, 1, 0, 0 );
+  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion10          = makeApiVersion( 0, 1, 0, 0 );
+  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion11          = makeApiVersion( 0, 1, 1, 0 );
+  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion12          = makeApiVersion( 0, 1, 2, 0 );
+  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion13          = makeApiVersion( 0, 1, 3, 0 );
+  VULKAN_HPP_CONSTEXPR_INLINE auto HeaderVersionComplete = makeApiVersion( 0, 1, 3, VK_HEADER_VERSION );
+
+  //=================================
+  //=== CONSTEXPR EXTENSION NAMEs ===
+  //=================================
+
+  //=== VK_KHR_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceExtensionName = VK_KHR_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceSpecVersion   = VK_KHR_SURFACE_SPEC_VERSION;
+
+  //=== VK_KHR_swapchain ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainExtensionName = VK_KHR_SWAPCHAIN_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainSpecVersion   = VK_KHR_SWAPCHAIN_SPEC_VERSION;
+
+  //=== VK_KHR_display ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplayExtensionName = VK_KHR_DISPLAY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySpecVersion   = VK_KHR_DISPLAY_SPEC_VERSION;
+
+  //=== VK_KHR_display_swapchain ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySwapchainExtensionName = VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySwapchainSpecVersion   = VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+  //=== VK_KHR_xlib_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXlibSurfaceExtensionName = VK_KHR_XLIB_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXlibSurfaceSpecVersion   = VK_KHR_XLIB_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+  //=== VK_KHR_xcb_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXcbSurfaceExtensionName = VK_KHR_XCB_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXcbSurfaceSpecVersion   = VK_KHR_XCB_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+  //=== VK_KHR_wayland_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWaylandSurfaceExtensionName = VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWaylandSurfaceSpecVersion   = VK_KHR_WAYLAND_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_KHR_android_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAndroidSurfaceExtensionName = VK_KHR_ANDROID_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAndroidSurfaceSpecVersion   = VK_KHR_ANDROID_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32SurfaceExtensionName = VK_KHR_WIN32_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32SurfaceSpecVersion   = VK_KHR_WIN32_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_debug_report ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_report extension has been deprecated by VK_EXT_debug_utils." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugReportExtensionName = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_report extension has been deprecated by VK_EXT_debug_utils." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugReportSpecVersion = VK_EXT_DEBUG_REPORT_SPEC_VERSION;
+
+  //=== VK_NV_glsl_shader ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_glsl_shader extension has been deprecated." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVGlslShaderExtensionName = VK_NV_GLSL_SHADER_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_glsl_shader extension has been deprecated." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVGlslShaderSpecVersion = VK_NV_GLSL_SHADER_SPEC_VERSION;
+
+  //=== VK_EXT_depth_range_unrestricted ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthRangeUnrestrictedExtensionName = VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthRangeUnrestrictedSpecVersion   = VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION;
+
+  //=== VK_KHR_sampler_mirror_clamp_to_edge ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_mirror_clamp_to_edge extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerMirrorClampToEdgeExtensionName = VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_mirror_clamp_to_edge extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerMirrorClampToEdgeSpecVersion = VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION;
+
+  //=== VK_IMG_filter_cubic ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFilterCubicExtensionName = VK_IMG_FILTER_CUBIC_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFilterCubicSpecVersion   = VK_IMG_FILTER_CUBIC_SPEC_VERSION;
+
+  //=== VK_AMD_rasterization_order ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDRasterizationOrderExtensionName = VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDRasterizationOrderSpecVersion   = VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION;
+
+  //=== VK_AMD_shader_trinary_minmax ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderTrinaryMinmaxExtensionName = VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderTrinaryMinmaxSpecVersion   = VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION;
+
+  //=== VK_AMD_shader_explicit_vertex_parameter ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderExplicitVertexParameterExtensionName = VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderExplicitVertexParameterSpecVersion   = VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION;
+
+  //=== VK_EXT_debug_marker ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_marker extension has been promoted to VK_EXT_debug_utils." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugMarkerExtensionName = VK_EXT_DEBUG_MARKER_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_marker extension has been promoted to VK_EXT_debug_utils." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugMarkerSpecVersion = VK_EXT_DEBUG_MARKER_SPEC_VERSION;
+
+  //=== VK_KHR_video_queue ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoQueueExtensionName = VK_KHR_VIDEO_QUEUE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoQueueSpecVersion   = VK_KHR_VIDEO_QUEUE_SPEC_VERSION;
+
+  //=== VK_KHR_video_decode_queue ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeQueueExtensionName = VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeQueueSpecVersion   = VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION;
+
+  //=== VK_AMD_gcn_shader ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGcnShaderExtensionName = VK_AMD_GCN_SHADER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGcnShaderSpecVersion   = VK_AMD_GCN_SHADER_SPEC_VERSION;
+
+  //=== VK_NV_dedicated_allocation ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_dedicated_allocation extension has been deprecated by VK_KHR_dedicated_allocation." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationExtensionName = VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_dedicated_allocation extension has been deprecated by VK_KHR_dedicated_allocation." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationSpecVersion = VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION;
+
+  //=== VK_EXT_transform_feedback ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTransformFeedbackExtensionName = VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTransformFeedbackSpecVersion   = VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION;
+
+  //=== VK_NVX_binary_import ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXBinaryImportExtensionName = VK_NVX_BINARY_IMPORT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXBinaryImportSpecVersion   = VK_NVX_BINARY_IMPORT_SPEC_VERSION;
+
+  //=== VK_NVX_image_view_handle ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXImageViewHandleExtensionName = VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXImageViewHandleSpecVersion   = VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION;
+
+  //=== VK_AMD_draw_indirect_count ===
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_draw_indirect_count extension has been promoted to VK_KHR_draw_indirect_count." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDrawIndirectCountExtensionName = VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_draw_indirect_count extension has been promoted to VK_KHR_draw_indirect_count." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDrawIndirectCountSpecVersion = VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION;
+
+  //=== VK_AMD_negative_viewport_height ===
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_negative_viewport_height extension has been obsoleted by VK_KHR_maintenance1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDNegativeViewportHeightExtensionName = VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_negative_viewport_height extension has been obsoleted by VK_KHR_maintenance1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDNegativeViewportHeightSpecVersion = VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION;
+
+  //=== VK_AMD_gpu_shader_half_float ===
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_half_float extension has been deprecated by VK_KHR_shader_float16_int8." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderHalfFloatExtensionName = VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_half_float extension has been deprecated by VK_KHR_shader_float16_int8." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderHalfFloatSpecVersion = VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION;
+
+  //=== VK_AMD_shader_ballot ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderBallotExtensionName = VK_AMD_SHADER_BALLOT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderBallotSpecVersion   = VK_AMD_SHADER_BALLOT_SPEC_VERSION;
+
+  //=== VK_KHR_video_encode_h264 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH264ExtensionName = VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH264SpecVersion   = VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION;
+
+  //=== VK_KHR_video_encode_h265 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH265ExtensionName = VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH265SpecVersion   = VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION;
+
+  //=== VK_KHR_video_decode_h264 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH264ExtensionName = VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH264SpecVersion   = VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION;
+
+  //=== VK_AMD_texture_gather_bias_lod ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDTextureGatherBiasLodExtensionName = VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDTextureGatherBiasLodSpecVersion   = VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION;
+
+  //=== VK_AMD_shader_info ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderInfoExtensionName = VK_AMD_SHADER_INFO_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderInfoSpecVersion   = VK_AMD_SHADER_INFO_SPEC_VERSION;
+
+  //=== VK_KHR_dynamic_rendering ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_dynamic_rendering extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDynamicRenderingExtensionName = VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_dynamic_rendering extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDynamicRenderingSpecVersion = VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION;
+
+  //=== VK_AMD_shader_image_load_store_lod ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderImageLoadStoreLodExtensionName = VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderImageLoadStoreLodSpecVersion   = VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_stream_descriptor_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GGPStreamDescriptorSurfaceExtensionName = VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GGPStreamDescriptorSurfaceSpecVersion   = VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_NV_corner_sampled_image ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCornerSampledImageExtensionName = VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCornerSampledImageSpecVersion   = VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION;
+
+  //=== VK_KHR_multiview ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_multiview extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMultiviewExtensionName = VK_KHR_MULTIVIEW_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_multiview extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMultiviewSpecVersion = VK_KHR_MULTIVIEW_SPEC_VERSION;
+
+  //=== VK_IMG_format_pvrtc ===
+  VULKAN_HPP_DEPRECATED( "The VK_IMG_format_pvrtc extension has been deprecated." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFormatPvrtcExtensionName = VK_IMG_FORMAT_PVRTC_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_IMG_format_pvrtc extension has been deprecated." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFormatPvrtcSpecVersion = VK_IMG_FORMAT_PVRTC_SPEC_VERSION;
+
+  //=== VK_NV_external_memory_capabilities ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_capabilities extension has been deprecated by VK_KHR_external_memory_capabilities." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryCapabilitiesExtensionName = VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_capabilities extension has been deprecated by VK_KHR_external_memory_capabilities." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryCapabilitiesSpecVersion = VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION;
+
+  //=== VK_NV_external_memory ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory extension has been deprecated by VK_KHR_external_memory." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryExtensionName = VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory extension has been deprecated by VK_KHR_external_memory." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemorySpecVersion = VK_NV_EXTERNAL_MEMORY_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_external_memory_win32 ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_win32 extension has been deprecated by VK_KHR_external_memory_win32." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryWin32ExtensionName = VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_win32 extension has been deprecated by VK_KHR_external_memory_win32." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryWin32SpecVersion = VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_win32_keyed_mutex ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_win32_keyed_mutex extension has been promoted to VK_KHR_win32_keyed_mutex." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVWin32KeyedMutexExtensionName = VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_win32_keyed_mutex extension has been promoted to VK_KHR_win32_keyed_mutex." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVWin32KeyedMutexSpecVersion = VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_get_physical_device_properties2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_physical_device_properties2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetPhysicalDeviceProperties2ExtensionName = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_physical_device_properties2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetPhysicalDeviceProperties2SpecVersion = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION;
+
+  //=== VK_KHR_device_group ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupExtensionName = VK_KHR_DEVICE_GROUP_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupSpecVersion = VK_KHR_DEVICE_GROUP_SPEC_VERSION;
+
+  //=== VK_EXT_validation_flags ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_flags extension has been deprecated by VK_EXT_layer_settings." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFlagsExtensionName = VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_flags extension has been deprecated by VK_EXT_layer_settings." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFlagsSpecVersion = VK_EXT_VALIDATION_FLAGS_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+  //=== VK_NN_vi_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NNViSurfaceExtensionName = VK_NN_VI_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NNViSurfaceSpecVersion   = VK_NN_VI_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+  //=== VK_KHR_shader_draw_parameters ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_draw_parameters extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderDrawParametersExtensionName = VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_draw_parameters extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderDrawParametersSpecVersion = VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION;
+
+  //=== VK_EXT_shader_subgroup_ballot ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_ballot extension has been deprecated by VK_VERSION_1_2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupBallotExtensionName = VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_ballot extension has been deprecated by VK_VERSION_1_2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupBallotSpecVersion = VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION;
+
+  //=== VK_EXT_shader_subgroup_vote ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_vote extension has been deprecated by VK_VERSION_1_1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupVoteExtensionName = VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_vote extension has been deprecated by VK_VERSION_1_1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupVoteSpecVersion = VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION;
+
+  //=== VK_EXT_texture_compression_astc_hdr ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_texture_compression_astc_hdr extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTextureCompressionAstcHdrExtensionName = VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_texture_compression_astc_hdr extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTextureCompressionAstcHdrSpecVersion = VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION;
+
+  //=== VK_EXT_astc_decode_mode ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAstcDecodeModeExtensionName = VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAstcDecodeModeSpecVersion   = VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION;
+
+  //=== VK_EXT_pipeline_robustness ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineRobustnessExtensionName = VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineRobustnessSpecVersion   = VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION;
+
+  //=== VK_KHR_maintenance1 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance1 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance1ExtensionName = VK_KHR_MAINTENANCE_1_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance1 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance1SpecVersion = VK_KHR_MAINTENANCE_1_SPEC_VERSION;
+
+  //=== VK_KHR_device_group_creation ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group_creation extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupCreationExtensionName = VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group_creation extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupCreationSpecVersion = VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION;
+
+  //=== VK_KHR_external_memory_capabilities ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryCapabilitiesExtensionName = VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryCapabilitiesSpecVersion = VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION;
+
+  //=== VK_KHR_external_memory ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryExtensionName = VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemorySpecVersion = VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_memory_win32 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryWin32ExtensionName = VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryWin32SpecVersion   = VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_memory_fd ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryFdExtensionName = VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryFdSpecVersion   = VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_win32_keyed_mutex ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32KeyedMutexExtensionName = VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32KeyedMutexSpecVersion   = VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_semaphore_capabilities ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreCapabilitiesExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreCapabilitiesSpecVersion = VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION;
+
+  //=== VK_KHR_external_semaphore ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreSpecVersion = VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_semaphore_win32 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreWin32ExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreWin32SpecVersion   = VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_semaphore_fd ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreFdExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreFdSpecVersion   = VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION;
+
+  //=== VK_KHR_push_descriptor ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPushDescriptorExtensionName = VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPushDescriptorSpecVersion   = VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION;
+
+  //=== VK_EXT_conditional_rendering ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConditionalRenderingExtensionName = VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConditionalRenderingSpecVersion   = VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION;
+
+  //=== VK_KHR_shader_float16_int8 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float16_int8 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloat16Int8ExtensionName = VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float16_int8 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloat16Int8SpecVersion = VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION;
+
+  //=== VK_KHR_16bit_storage ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_16bit_storage extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHR16BitStorageExtensionName = VK_KHR_16BIT_STORAGE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_16bit_storage extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHR16BitStorageSpecVersion = VK_KHR_16BIT_STORAGE_SPEC_VERSION;
+
+  //=== VK_KHR_incremental_present ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRIncrementalPresentExtensionName = VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRIncrementalPresentSpecVersion   = VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION;
+
+  //=== VK_KHR_descriptor_update_template ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_descriptor_update_template extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDescriptorUpdateTemplateExtensionName = VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_descriptor_update_template extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDescriptorUpdateTemplateSpecVersion = VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION;
+
+  //=== VK_NV_clip_space_w_scaling ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVClipSpaceWScalingExtensionName = VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVClipSpaceWScalingSpecVersion   = VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION;
+
+  //=== VK_EXT_direct_mode_display ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectModeDisplayExtensionName = VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectModeDisplaySpecVersion   = VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+  //=== VK_EXT_acquire_xlib_display ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireXlibDisplayExtensionName = VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireXlibDisplaySpecVersion   = VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+  //=== VK_EXT_display_surface_counter ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplaySurfaceCounterExtensionName = VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplaySurfaceCounterSpecVersion   = VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION;
+
+  //=== VK_EXT_display_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplayControlExtensionName = VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplayControlSpecVersion   = VK_EXT_DISPLAY_CONTROL_SPEC_VERSION;
+
+  //=== VK_GOOGLE_display_timing ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDisplayTimingExtensionName = VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDisplayTimingSpecVersion   = VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION;
+
+  //=== VK_NV_sample_mask_override_coverage ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVSampleMaskOverrideCoverageExtensionName = VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVSampleMaskOverrideCoverageSpecVersion   = VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION;
+
+  //=== VK_NV_geometry_shader_passthrough ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVGeometryShaderPassthroughExtensionName = VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVGeometryShaderPassthroughSpecVersion   = VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION;
+
+  //=== VK_NV_viewport_array2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportArray2ExtensionName = VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportArray2SpecVersion   = VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION;
+
+  //=== VK_NVX_multiview_per_view_attributes ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXMultiviewPerViewAttributesExtensionName = VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVXMultiviewPerViewAttributesSpecVersion   = VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION;
+
+  //=== VK_NV_viewport_swizzle ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportSwizzleExtensionName = VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportSwizzleSpecVersion   = VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION;
+
+  //=== VK_EXT_discard_rectangles ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDiscardRectanglesExtensionName = VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDiscardRectanglesSpecVersion   = VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION;
+
+  //=== VK_EXT_conservative_rasterization ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConservativeRasterizationExtensionName = VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConservativeRasterizationSpecVersion   = VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION;
+
+  //=== VK_EXT_depth_clip_enable ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipEnableExtensionName = VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipEnableSpecVersion   = VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION;
+
+  //=== VK_EXT_swapchain_colorspace ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainColorSpaceExtensionName = VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainColorSpaceSpecVersion   = VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION;
+
+  //=== VK_EXT_hdr_metadata ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHdrMetadataExtensionName = VK_EXT_HDR_METADATA_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHdrMetadataSpecVersion   = VK_EXT_HDR_METADATA_SPEC_VERSION;
+
+  //=== VK_KHR_imageless_framebuffer ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_imageless_framebuffer extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImagelessFramebufferExtensionName = VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_imageless_framebuffer extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImagelessFramebufferSpecVersion = VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION;
+
+  //=== VK_KHR_create_renderpass2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_create_renderpass2 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCreateRenderpass2ExtensionName = VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_create_renderpass2 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCreateRenderpass2SpecVersion = VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION;
+
+  //=== VK_IMG_relaxed_line_rasterization ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGRelaxedLineRasterizationExtensionName = VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto IMGRelaxedLineRasterizationSpecVersion   = VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION;
+
+  //=== VK_KHR_shared_presentable_image ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSharedPresentableImageExtensionName = VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSharedPresentableImageSpecVersion   = VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION;
+
+  //=== VK_KHR_external_fence_capabilities ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceCapabilitiesExtensionName = VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence_capabilities extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceCapabilitiesSpecVersion = VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION;
+
+  //=== VK_KHR_external_fence ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceExtensionName = VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceSpecVersion = VK_KHR_EXTERNAL_FENCE_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_KHR_external_fence_win32 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceWin32ExtensionName = VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceWin32SpecVersion   = VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_KHR_external_fence_fd ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceFdExtensionName = VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceFdSpecVersion   = VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION;
+
+  //=== VK_KHR_performance_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPerformanceQueryExtensionName = VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPerformanceQuerySpecVersion   = VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION;
+
+  //=== VK_KHR_maintenance2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance2ExtensionName = VK_KHR_MAINTENANCE_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance2SpecVersion = VK_KHR_MAINTENANCE_2_SPEC_VERSION;
+
+  //=== VK_KHR_get_surface_capabilities2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetSurfaceCapabilities2ExtensionName = VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetSurfaceCapabilities2SpecVersion   = VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION;
+
+  //=== VK_KHR_variable_pointers ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_variable_pointers extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVariablePointersExtensionName = VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_variable_pointers extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVariablePointersSpecVersion = VK_KHR_VARIABLE_POINTERS_SPEC_VERSION;
+
+  //=== VK_KHR_get_display_properties2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetDisplayProperties2ExtensionName = VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetDisplayProperties2SpecVersion   = VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+  //=== VK_MVK_ios_surface ===
+  VULKAN_HPP_DEPRECATED( "The VK_MVK_ios_surface extension has been deprecated by VK_EXT_metal_surface." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto MVKIosSurfaceExtensionName = VK_MVK_IOS_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_MVK_ios_surface extension has been deprecated by VK_EXT_metal_surface." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto MVKIosSurfaceSpecVersion = VK_MVK_IOS_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+  //=== VK_MVK_macos_surface ===
+  VULKAN_HPP_DEPRECATED( "The VK_MVK_macos_surface extension has been deprecated by VK_EXT_metal_surface." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto MVKMacosSurfaceExtensionName = VK_MVK_MACOS_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_MVK_macos_surface extension has been deprecated by VK_EXT_metal_surface." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto MVKMacosSurfaceSpecVersion = VK_MVK_MACOS_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+  //=== VK_EXT_external_memory_dma_buf ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryDmaBufExtensionName = VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryDmaBufSpecVersion   = VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION;
+
+  //=== VK_EXT_queue_family_foreign ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTQueueFamilyForeignExtensionName = VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTQueueFamilyForeignSpecVersion   = VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION;
+
+  //=== VK_KHR_dedicated_allocation ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_dedicated_allocation extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDedicatedAllocationExtensionName = VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_dedicated_allocation extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDedicatedAllocationSpecVersion = VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION;
+
+  //=== VK_EXT_debug_utils ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugUtilsExtensionName = VK_EXT_DEBUG_UTILS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugUtilsSpecVersion   = VK_EXT_DEBUG_UTILS_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalMemoryAndroidHardwareBufferExtensionName = VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalMemoryAndroidHardwareBufferSpecVersion   = VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_EXT_sampler_filter_minmax ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_sampler_filter_minmax extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSamplerFilterMinmaxExtensionName = VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_sampler_filter_minmax extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSamplerFilterMinmaxSpecVersion = VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION;
+
+  //=== VK_KHR_storage_buffer_storage_class ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_storage_buffer_storage_class extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRStorageBufferStorageClassExtensionName = VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_storage_buffer_storage_class extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRStorageBufferStorageClassSpecVersion = VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION;
+
+  //=== VK_AMD_gpu_shader_int16 ===
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_int16 extension has been deprecated by VK_KHR_shader_float16_int8." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderInt16ExtensionName = VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_int16 extension has been deprecated by VK_KHR_shader_float16_int8." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderInt16SpecVersion = VK_AMD_GPU_SHADER_INT16_SPEC_VERSION;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDXShaderEnqueueExtensionName = VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDXShaderEnqueueSpecVersion   = VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_AMD_mixed_attachment_samples ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMixedAttachmentSamplesExtensionName = VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMixedAttachmentSamplesSpecVersion   = VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION;
+
+  //=== VK_AMD_shader_fragment_mask ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderFragmentMaskExtensionName = VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderFragmentMaskSpecVersion   = VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION;
+
+  //=== VK_EXT_inline_uniform_block ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_inline_uniform_block extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTInlineUniformBlockExtensionName = VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_inline_uniform_block extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTInlineUniformBlockSpecVersion = VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION;
+
+  //=== VK_EXT_shader_stencil_export ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderStencilExportExtensionName = VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderStencilExportSpecVersion   = VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION;
+
+  //=== VK_EXT_sample_locations ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSampleLocationsExtensionName = VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSampleLocationsSpecVersion   = VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION;
+
+  //=== VK_KHR_relaxed_block_layout ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_relaxed_block_layout extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRelaxedBlockLayoutExtensionName = VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_relaxed_block_layout extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRelaxedBlockLayoutSpecVersion = VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION;
+
+  //=== VK_KHR_get_memory_requirements2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_memory_requirements2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetMemoryRequirements2ExtensionName = VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_memory_requirements2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetMemoryRequirements2SpecVersion = VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION;
+
+  //=== VK_KHR_image_format_list ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_image_format_list extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImageFormatListExtensionName = VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_image_format_list extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImageFormatListSpecVersion = VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION;
+
+  //=== VK_EXT_blend_operation_advanced ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBlendOperationAdvancedExtensionName = VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBlendOperationAdvancedSpecVersion   = VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION;
+
+  //=== VK_NV_fragment_coverage_to_color ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentCoverageToColorExtensionName = VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentCoverageToColorSpecVersion   = VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION;
+
+  //=== VK_KHR_acceleration_structure ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAccelerationStructureExtensionName = VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAccelerationStructureSpecVersion   = VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION;
+
+  //=== VK_KHR_ray_tracing_pipeline ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPipelineExtensionName = VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPipelineSpecVersion   = VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION;
+
+  //=== VK_KHR_ray_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayQueryExtensionName = VK_KHR_RAY_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayQuerySpecVersion   = VK_KHR_RAY_QUERY_SPEC_VERSION;
+
+  //=== VK_NV_framebuffer_mixed_samples ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFramebufferMixedSamplesExtensionName = VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFramebufferMixedSamplesSpecVersion   = VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION;
+
+  //=== VK_NV_fill_rectangle ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFillRectangleExtensionName = VK_NV_FILL_RECTANGLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFillRectangleSpecVersion   = VK_NV_FILL_RECTANGLE_SPEC_VERSION;
+
+  //=== VK_NV_shader_sm_builtins ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSmBuiltinsExtensionName = VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSmBuiltinsSpecVersion   = VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION;
+
+  //=== VK_EXT_post_depth_coverage ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPostDepthCoverageExtensionName = VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPostDepthCoverageSpecVersion   = VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION;
+
+  //=== VK_KHR_sampler_ycbcr_conversion ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_ycbcr_conversion extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerYcbcrConversionExtensionName = VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_ycbcr_conversion extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerYcbcrConversionSpecVersion = VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION;
+
+  //=== VK_KHR_bind_memory2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_bind_memory2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBindMemory2ExtensionName = VK_KHR_BIND_MEMORY_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_bind_memory2 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBindMemory2SpecVersion = VK_KHR_BIND_MEMORY_2_SPEC_VERSION;
+
+  //=== VK_EXT_image_drm_format_modifier ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageDrmFormatModifierExtensionName = VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageDrmFormatModifierSpecVersion   = VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION;
+
+  //=== VK_EXT_validation_cache ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationCacheExtensionName = VK_EXT_VALIDATION_CACHE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationCacheSpecVersion   = VK_EXT_VALIDATION_CACHE_SPEC_VERSION;
+
+  //=== VK_EXT_descriptor_indexing ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_descriptor_indexing extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorIndexingExtensionName = VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_descriptor_indexing extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorIndexingSpecVersion = VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION;
+
+  //=== VK_EXT_shader_viewport_index_layer ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_viewport_index_layer extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderViewportIndexLayerExtensionName = VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_viewport_index_layer extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderViewportIndexLayerSpecVersion = VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_KHR_portability_subset ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilitySubsetExtensionName = VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilitySubsetSpecVersion   = VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_shading_rate_image ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShadingRateImageExtensionName = VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShadingRateImageSpecVersion   = VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION;
+
+  //=== VK_NV_ray_tracing ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingExtensionName = VK_NV_RAY_TRACING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingSpecVersion   = VK_NV_RAY_TRACING_SPEC_VERSION;
+
+  //=== VK_NV_representative_fragment_test ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRepresentativeFragmentTestExtensionName = VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRepresentativeFragmentTestSpecVersion   = VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION;
+
+  //=== VK_KHR_maintenance3 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance3 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance3ExtensionName = VK_KHR_MAINTENANCE_3_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance3 extension has been promoted to core in version 1.1." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance3SpecVersion = VK_KHR_MAINTENANCE_3_SPEC_VERSION;
+
+  //=== VK_KHR_draw_indirect_count ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_draw_indirect_count extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDrawIndirectCountExtensionName = VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_draw_indirect_count extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDrawIndirectCountSpecVersion = VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION;
+
+  //=== VK_EXT_filter_cubic ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFilterCubicExtensionName = VK_EXT_FILTER_CUBIC_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFilterCubicSpecVersion   = VK_EXT_FILTER_CUBIC_SPEC_VERSION;
+
+  //=== VK_QCOM_render_pass_shader_resolve ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassShaderResolveExtensionName = VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassShaderResolveSpecVersion   = VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION;
+
+  //=== VK_EXT_global_priority ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority extension has been promoted to VK_KHR_global_priority." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityExtensionName = VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority extension has been promoted to VK_KHR_global_priority." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPrioritySpecVersion = VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION;
+
+  //=== VK_KHR_shader_subgroup_extended_types ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_subgroup_extended_types extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupExtendedTypesExtensionName = VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_subgroup_extended_types extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupExtendedTypesSpecVersion = VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION;
+
+  //=== VK_KHR_8bit_storage ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_8bit_storage extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHR8BitStorageExtensionName = VK_KHR_8BIT_STORAGE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_8bit_storage extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHR8BitStorageSpecVersion = VK_KHR_8BIT_STORAGE_SPEC_VERSION;
+
+  //=== VK_EXT_external_memory_host ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryHostExtensionName = VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryHostSpecVersion   = VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION;
+
+  //=== VK_AMD_buffer_marker ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDBufferMarkerExtensionName = VK_AMD_BUFFER_MARKER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDBufferMarkerSpecVersion   = VK_AMD_BUFFER_MARKER_SPEC_VERSION;
+
+  //=== VK_KHR_shader_atomic_int64 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_atomic_int64 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderAtomicInt64ExtensionName = VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_atomic_int64 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderAtomicInt64SpecVersion = VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION;
+
+  //=== VK_KHR_shader_clock ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderClockExtensionName = VK_KHR_SHADER_CLOCK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderClockSpecVersion   = VK_KHR_SHADER_CLOCK_SPEC_VERSION;
+
+  //=== VK_AMD_pipeline_compiler_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDPipelineCompilerControlExtensionName = VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDPipelineCompilerControlSpecVersion   = VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION;
+
+  //=== VK_EXT_calibrated_timestamps ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_calibrated_timestamps extension has been promoted to VK_KHR_calibrated_timestamps." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCalibratedTimestampsExtensionName = VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_calibrated_timestamps extension has been promoted to VK_KHR_calibrated_timestamps." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCalibratedTimestampsSpecVersion = VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION;
+
+  //=== VK_AMD_shader_core_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCorePropertiesExtensionName = VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCorePropertiesSpecVersion   = VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_KHR_video_decode_h265 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH265ExtensionName = VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH265SpecVersion   = VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION;
+
+  //=== VK_KHR_global_priority ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGlobalPriorityExtensionName = VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGlobalPrioritySpecVersion   = VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION;
+
+  //=== VK_AMD_memory_overallocation_behavior ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMemoryOverallocationBehaviorExtensionName = VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMemoryOverallocationBehaviorSpecVersion   = VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION;
+
+  //=== VK_EXT_vertex_attribute_divisor ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_vertex_attribute_divisor extension has been promoted to VK_KHR_vertex_attribute_divisor." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexAttributeDivisorExtensionName = VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_vertex_attribute_divisor extension has been promoted to VK_KHR_vertex_attribute_divisor." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexAttributeDivisorSpecVersion = VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_GGP )
+  //=== VK_GGP_frame_token ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GGPFrameTokenExtensionName = VK_GGP_FRAME_TOKEN_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GGPFrameTokenSpecVersion   = VK_GGP_FRAME_TOKEN_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+  //=== VK_EXT_pipeline_creation_feedback ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_feedback extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationFeedbackExtensionName = VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_feedback extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationFeedbackSpecVersion = VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION;
+
+  //=== VK_KHR_driver_properties ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_driver_properties extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDriverPropertiesExtensionName = VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_driver_properties extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDriverPropertiesSpecVersion = VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_KHR_shader_float_controls ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float_controls extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloatControlsExtensionName = VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float_controls extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloatControlsSpecVersion = VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION;
+
+  //=== VK_NV_shader_subgroup_partitioned ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSubgroupPartitionedExtensionName = VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSubgroupPartitionedSpecVersion   = VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION;
+
+  //=== VK_KHR_depth_stencil_resolve ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_depth_stencil_resolve extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDepthStencilResolveExtensionName = VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_depth_stencil_resolve extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDepthStencilResolveSpecVersion = VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION;
+
+  //=== VK_KHR_swapchain_mutable_format ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainMutableFormatExtensionName = VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainMutableFormatSpecVersion   = VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION;
+
+  //=== VK_NV_compute_shader_derivatives ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVComputeShaderDerivativesExtensionName = VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVComputeShaderDerivativesSpecVersion   = VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION;
+
+  //=== VK_NV_mesh_shader ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVMeshShaderExtensionName = VK_NV_MESH_SHADER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVMeshShaderSpecVersion   = VK_NV_MESH_SHADER_SPEC_VERSION;
+
+  //=== VK_NV_fragment_shader_barycentric ===
+  VULKAN_HPP_DEPRECATED( "The VK_NV_fragment_shader_barycentric extension has been promoted to VK_KHR_fragment_shader_barycentric." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShaderBarycentricExtensionName = VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_NV_fragment_shader_barycentric extension has been promoted to VK_KHR_fragment_shader_barycentric." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShaderBarycentricSpecVersion = VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION;
+
+  //=== VK_NV_shader_image_footprint ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderImageFootprintExtensionName = VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderImageFootprintSpecVersion   = VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION;
+
+  //=== VK_NV_scissor_exclusive ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVScissorExclusiveExtensionName = VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVScissorExclusiveSpecVersion   = VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION;
+
+  //=== VK_NV_device_diagnostic_checkpoints ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticCheckpointsExtensionName = VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticCheckpointsSpecVersion   = VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION;
+
+  //=== VK_KHR_timeline_semaphore ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_timeline_semaphore extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRTimelineSemaphoreExtensionName = VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_timeline_semaphore extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRTimelineSemaphoreSpecVersion = VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION;
+
+  //=== VK_INTEL_shader_integer_functions2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto INTELShaderIntegerFunctions2ExtensionName = VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto INTELShaderIntegerFunctions2SpecVersion   = VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION;
+
+  //=== VK_INTEL_performance_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto INTELPerformanceQueryExtensionName = VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto INTELPerformanceQuerySpecVersion   = VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION;
+
+  //=== VK_KHR_vulkan_memory_model ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_vulkan_memory_model extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVulkanMemoryModelExtensionName = VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_vulkan_memory_model extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVulkanMemoryModelSpecVersion = VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION;
+
+  //=== VK_EXT_pci_bus_info ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPciBusInfoExtensionName = VK_EXT_PCI_BUS_INFO_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPciBusInfoSpecVersion   = VK_EXT_PCI_BUS_INFO_SPEC_VERSION;
+
+  //=== VK_AMD_display_native_hdr ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDisplayNativeHdrExtensionName = VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDisplayNativeHdrSpecVersion   = VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_imagepipe_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAImagepipeSurfaceExtensionName = VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAImagepipeSurfaceSpecVersion   = VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_KHR_shader_terminate_invocation ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_terminate_invocation extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderTerminateInvocationExtensionName = VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_terminate_invocation extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderTerminateInvocationSpecVersion = VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalSurfaceExtensionName = VK_EXT_METAL_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalSurfaceSpecVersion   = VK_EXT_METAL_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_EXT_fragment_density_map ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMapExtensionName = VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMapSpecVersion   = VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION;
+
+  //=== VK_EXT_scalar_block_layout ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_scalar_block_layout extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTScalarBlockLayoutExtensionName = VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_scalar_block_layout extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTScalarBlockLayoutSpecVersion = VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION;
+
+  //=== VK_GOOGLE_hlsl_functionality1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEHlslFunctionality1ExtensionName = VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEHlslFunctionality1SpecVersion   = VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION;
+
+  //=== VK_GOOGLE_decorate_string ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDecorateStringExtensionName = VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDecorateStringSpecVersion   = VK_GOOGLE_DECORATE_STRING_SPEC_VERSION;
+
+  //=== VK_EXT_subgroup_size_control ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_subgroup_size_control extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubgroupSizeControlExtensionName = VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_subgroup_size_control extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubgroupSizeControlSpecVersion = VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION;
+
+  //=== VK_KHR_fragment_shading_rate ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShadingRateExtensionName = VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShadingRateSpecVersion   = VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION;
+
+  //=== VK_AMD_shader_core_properties2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCoreProperties2ExtensionName = VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCoreProperties2SpecVersion   = VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION;
+
+  //=== VK_AMD_device_coherent_memory ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDeviceCoherentMemoryExtensionName = VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDeviceCoherentMemorySpecVersion   = VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION;
+
+  //=== VK_EXT_shader_image_atomic_int64 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderImageAtomicInt64ExtensionName = VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderImageAtomicInt64SpecVersion   = VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION;
+
+  //=== VK_KHR_spirv_1_4 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_spirv_1_4 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSpirv14ExtensionName = VK_KHR_SPIRV_1_4_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_spirv_1_4 extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSpirv14SpecVersion = VK_KHR_SPIRV_1_4_SPEC_VERSION;
+
+  //=== VK_EXT_memory_budget ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryBudgetExtensionName = VK_EXT_MEMORY_BUDGET_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryBudgetSpecVersion   = VK_EXT_MEMORY_BUDGET_SPEC_VERSION;
+
+  //=== VK_EXT_memory_priority ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryPriorityExtensionName = VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryPrioritySpecVersion   = VK_EXT_MEMORY_PRIORITY_SPEC_VERSION;
+
+  //=== VK_KHR_surface_protected_capabilities ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceProtectedCapabilitiesExtensionName = VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceProtectedCapabilitiesSpecVersion   = VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION;
+
+  //=== VK_NV_dedicated_allocation_image_aliasing ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationImageAliasingExtensionName = VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationImageAliasingSpecVersion   = VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION;
+
+  //=== VK_KHR_separate_depth_stencil_layouts ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_separate_depth_stencil_layouts extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSeparateDepthStencilLayoutsExtensionName = VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_separate_depth_stencil_layouts extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSeparateDepthStencilLayoutsSpecVersion = VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION;
+
+  //=== VK_EXT_buffer_device_address ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_buffer_device_address extension has been deprecated by VK_KHR_buffer_device_address." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBufferDeviceAddressExtensionName = VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_buffer_device_address extension has been deprecated by VK_KHR_buffer_device_address." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBufferDeviceAddressSpecVersion = VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION;
+
+  //=== VK_EXT_tooling_info ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_tooling_info extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTToolingInfoExtensionName = VK_EXT_TOOLING_INFO_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_tooling_info extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTToolingInfoSpecVersion = VK_EXT_TOOLING_INFO_SPEC_VERSION;
+
+  //=== VK_EXT_separate_stencil_usage ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_separate_stencil_usage extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSeparateStencilUsageExtensionName = VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_separate_stencil_usage extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSeparateStencilUsageSpecVersion = VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION;
+
+  //=== VK_EXT_validation_features ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_features extension has been deprecated by VK_EXT_layer_settings." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFeaturesExtensionName = VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_features extension has been deprecated by VK_EXT_layer_settings." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFeaturesSpecVersion = VK_EXT_VALIDATION_FEATURES_SPEC_VERSION;
+
+  //=== VK_KHR_present_wait ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentWaitExtensionName = VK_KHR_PRESENT_WAIT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentWaitSpecVersion   = VK_KHR_PRESENT_WAIT_SPEC_VERSION;
+
+  //=== VK_NV_cooperative_matrix ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCooperativeMatrixExtensionName = VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCooperativeMatrixSpecVersion   = VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION;
+
+  //=== VK_NV_coverage_reduction_mode ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCoverageReductionModeExtensionName = VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCoverageReductionModeSpecVersion   = VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION;
+
+  //=== VK_EXT_fragment_shader_interlock ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentShaderInterlockExtensionName = VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentShaderInterlockSpecVersion   = VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION;
+
+  //=== VK_EXT_ycbcr_image_arrays ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcrImageArraysExtensionName = VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcrImageArraysSpecVersion   = VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION;
+
+  //=== VK_KHR_uniform_buffer_standard_layout ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_uniform_buffer_standard_layout extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRUniformBufferStandardLayoutExtensionName = VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_uniform_buffer_standard_layout extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRUniformBufferStandardLayoutSpecVersion = VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION;
+
+  //=== VK_EXT_provoking_vertex ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTProvokingVertexExtensionName = VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTProvokingVertexSpecVersion   = VK_EXT_PROVOKING_VERTEX_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_EXT_full_screen_exclusive ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFullScreenExclusiveExtensionName = VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFullScreenExclusiveSpecVersion   = VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+  //=== VK_EXT_headless_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHeadlessSurfaceExtensionName = VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHeadlessSurfaceSpecVersion   = VK_EXT_HEADLESS_SURFACE_SPEC_VERSION;
+
+  //=== VK_KHR_buffer_device_address ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_buffer_device_address extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBufferDeviceAddressExtensionName = VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_buffer_device_address extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBufferDeviceAddressSpecVersion = VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION;
+
+  //=== VK_EXT_line_rasterization ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLineRasterizationExtensionName = VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLineRasterizationSpecVersion   = VK_EXT_LINE_RASTERIZATION_SPEC_VERSION;
+
+  //=== VK_EXT_shader_atomic_float ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloatExtensionName = VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloatSpecVersion   = VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION;
+
+  //=== VK_EXT_host_query_reset ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_host_query_reset extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostQueryResetExtensionName = VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_host_query_reset extension has been promoted to core in version 1.2." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostQueryResetSpecVersion = VK_EXT_HOST_QUERY_RESET_SPEC_VERSION;
+
+  //=== VK_EXT_index_type_uint8 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTIndexTypeUint8ExtensionName = VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTIndexTypeUint8SpecVersion   = VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION;
+
+  //=== VK_EXT_extended_dynamic_state ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicStateExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicStateSpecVersion = VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION;
+
+  //=== VK_KHR_deferred_host_operations ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeferredHostOperationsExtensionName = VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeferredHostOperationsSpecVersion   = VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION;
+
+  //=== VK_KHR_pipeline_executable_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineExecutablePropertiesExtensionName = VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineExecutablePropertiesSpecVersion   = VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_EXT_host_image_copy ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostImageCopyExtensionName = VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostImageCopySpecVersion   = VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION;
+
+  //=== VK_KHR_map_memory2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMapMemory2ExtensionName = VK_KHR_MAP_MEMORY_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMapMemory2SpecVersion   = VK_KHR_MAP_MEMORY_2_SPEC_VERSION;
+
+  //=== VK_EXT_shader_atomic_float2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloat2ExtensionName = VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloat2SpecVersion   = VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION;
+
+  //=== VK_EXT_surface_maintenance1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSurfaceMaintenance1ExtensionName = VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSurfaceMaintenance1SpecVersion   = VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION;
+
+  //=== VK_EXT_swapchain_maintenance1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainMaintenance1ExtensionName = VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainMaintenance1SpecVersion   = VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION;
+
+  //=== VK_EXT_shader_demote_to_helper_invocation ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_demote_to_helper_invocation extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderDemoteToHelperInvocationExtensionName = VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_demote_to_helper_invocation extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderDemoteToHelperInvocationSpecVersion = VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION;
+
+  //=== VK_NV_device_generated_commands ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsExtensionName = VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsSpecVersion   = VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION;
+
+  //=== VK_NV_inherited_viewport_scissor ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVInheritedViewportScissorExtensionName = VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVInheritedViewportScissorSpecVersion   = VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION;
+
+  //=== VK_KHR_shader_integer_dot_product ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_integer_dot_product extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderIntegerDotProductExtensionName = VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_integer_dot_product extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderIntegerDotProductSpecVersion = VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION;
+
+  //=== VK_EXT_texel_buffer_alignment ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_texel_buffer_alignment extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTexelBufferAlignmentExtensionName = VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_texel_buffer_alignment extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTexelBufferAlignmentSpecVersion = VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION;
+
+  //=== VK_QCOM_render_pass_transform ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassTransformExtensionName = VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassTransformSpecVersion   = VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION;
+
+  //=== VK_EXT_depth_bias_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthBiasControlExtensionName = VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthBiasControlSpecVersion   = VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION;
+
+  //=== VK_EXT_device_memory_report ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceMemoryReportExtensionName = VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceMemoryReportSpecVersion   = VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION;
+
+  //=== VK_EXT_acquire_drm_display ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireDrmDisplayExtensionName = VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireDrmDisplaySpecVersion   = VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION;
+
+  //=== VK_EXT_robustness2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRobustness2ExtensionName = VK_EXT_ROBUSTNESS_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRobustness2SpecVersion   = VK_EXT_ROBUSTNESS_2_SPEC_VERSION;
+
+  //=== VK_EXT_custom_border_color ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCustomBorderColorExtensionName = VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCustomBorderColorSpecVersion   = VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION;
+
+  //=== VK_GOOGLE_user_type ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEUserTypeExtensionName = VK_GOOGLE_USER_TYPE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEUserTypeSpecVersion   = VK_GOOGLE_USER_TYPE_SPEC_VERSION;
+
+  //=== VK_KHR_pipeline_library ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineLibraryExtensionName = VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineLibrarySpecVersion   = VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION;
+
+  //=== VK_NV_present_barrier ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVPresentBarrierExtensionName = VK_NV_PRESENT_BARRIER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVPresentBarrierSpecVersion   = VK_NV_PRESENT_BARRIER_SPEC_VERSION;
+
+  //=== VK_KHR_shader_non_semantic_info ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_non_semantic_info extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderNonSemanticInfoExtensionName = VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_non_semantic_info extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderNonSemanticInfoSpecVersion = VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION;
+
+  //=== VK_KHR_present_id ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentIdExtensionName = VK_KHR_PRESENT_ID_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentIdSpecVersion   = VK_KHR_PRESENT_ID_SPEC_VERSION;
+
+  //=== VK_EXT_private_data ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_private_data extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrivateDataExtensionName = VK_EXT_PRIVATE_DATA_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_private_data extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrivateDataSpecVersion = VK_EXT_PRIVATE_DATA_SPEC_VERSION;
+
+  //=== VK_EXT_pipeline_creation_cache_control ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_cache_control extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationCacheControlExtensionName = VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_cache_control extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationCacheControlSpecVersion = VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION;
+
+  //=== VK_KHR_video_encode_queue ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeQueueExtensionName = VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeQueueSpecVersion   = VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION;
+
+  //=== VK_NV_device_diagnostics_config ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticsConfigExtensionName = VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticsConfigSpecVersion   = VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION;
+
+  //=== VK_QCOM_render_pass_store_ops ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassStoreOpsExtensionName = VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassStoreOpsSpecVersion   = VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCudaKernelLaunchExtensionName = VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCudaKernelLaunchSpecVersion   = VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_low_latency ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencyExtensionName = VK_NV_LOW_LATENCY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencySpecVersion   = VK_NV_LOW_LATENCY_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+  //=== VK_EXT_metal_objects ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalObjectsExtensionName = VK_EXT_METAL_OBJECTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalObjectsSpecVersion   = VK_EXT_METAL_OBJECTS_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+  //=== VK_KHR_synchronization2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_synchronization2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSynchronization2ExtensionName = VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_synchronization2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSynchronization2SpecVersion = VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION;
+
+  //=== VK_EXT_descriptor_buffer ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorBufferExtensionName = VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorBufferSpecVersion   = VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION;
+
+  //=== VK_EXT_graphics_pipeline_library ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGraphicsPipelineLibraryExtensionName = VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGraphicsPipelineLibrarySpecVersion   = VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION;
+
+  //=== VK_AMD_shader_early_and_late_fragment_tests ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderEarlyAndLateFragmentTestsExtensionName = VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderEarlyAndLateFragmentTestsSpecVersion   = VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION;
+
+  //=== VK_KHR_fragment_shader_barycentric ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShaderBarycentricExtensionName = VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShaderBarycentricSpecVersion   = VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION;
+
+  //=== VK_KHR_shader_subgroup_uniform_control_flow ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupUniformControlFlowExtensionName = VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupUniformControlFlowSpecVersion   = VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION;
+
+  //=== VK_KHR_zero_initialize_workgroup_memory ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_zero_initialize_workgroup_memory extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRZeroInitializeWorkgroupMemoryExtensionName = VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_zero_initialize_workgroup_memory extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRZeroInitializeWorkgroupMemorySpecVersion = VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION;
+
+  //=== VK_NV_fragment_shading_rate_enums ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShadingRateEnumsExtensionName = VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShadingRateEnumsSpecVersion   = VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION;
+
+  //=== VK_NV_ray_tracing_motion_blur ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingMotionBlurExtensionName = VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingMotionBlurSpecVersion   = VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION;
+
+  //=== VK_EXT_mesh_shader ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMeshShaderExtensionName = VK_EXT_MESH_SHADER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMeshShaderSpecVersion   = VK_EXT_MESH_SHADER_SPEC_VERSION;
+
+  //=== VK_EXT_ycbcr_2plane_444_formats ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_ycbcr_2plane_444_formats extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcr2Plane444FormatsExtensionName = VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_ycbcr_2plane_444_formats extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcr2Plane444FormatsSpecVersion = VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION;
+
+  //=== VK_EXT_fragment_density_map2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMap2ExtensionName = VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMap2SpecVersion   = VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION;
+
+  //=== VK_QCOM_rotated_copy_commands ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRotatedCopyCommandsExtensionName = VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRotatedCopyCommandsSpecVersion   = VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION;
+
+  //=== VK_EXT_image_robustness ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_image_robustness extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageRobustnessExtensionName = VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_image_robustness extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageRobustnessSpecVersion = VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION;
+
+  //=== VK_KHR_workgroup_memory_explicit_layout ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWorkgroupMemoryExplicitLayoutExtensionName = VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWorkgroupMemoryExplicitLayoutSpecVersion   = VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION;
+
+  //=== VK_KHR_copy_commands2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_copy_commands2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyCommands2ExtensionName = VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_copy_commands2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyCommands2SpecVersion = VK_KHR_COPY_COMMANDS_2_SPEC_VERSION;
+
+  //=== VK_EXT_image_compression_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlExtensionName = VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSpecVersion   = VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION;
+
+  //=== VK_EXT_attachment_feedback_loop_layout ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopLayoutExtensionName = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopLayoutSpecVersion   = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION;
+
+  //=== VK_EXT_4444_formats ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_4444_formats extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXT4444FormatsExtensionName = VK_EXT_4444_FORMATS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_4444_formats extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXT4444FormatsSpecVersion = VK_EXT_4444_FORMATS_SPEC_VERSION;
+
+  //=== VK_EXT_device_fault ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceFaultExtensionName = VK_EXT_DEVICE_FAULT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceFaultSpecVersion   = VK_EXT_DEVICE_FAULT_SPEC_VERSION;
+
+  //=== VK_ARM_rasterization_order_attachment_access ===
+  VULKAN_HPP_DEPRECATED( "The VK_ARM_rasterization_order_attachment_access extension has been promoted to VK_EXT_rasterization_order_attachment_access." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRasterizationOrderAttachmentAccessExtensionName = VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_ARM_rasterization_order_attachment_access extension has been promoted to VK_EXT_rasterization_order_attachment_access." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRasterizationOrderAttachmentAccessSpecVersion = VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION;
+
+  //=== VK_EXT_rgba10x6_formats ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRgba10X6FormatsExtensionName = VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRgba10X6FormatsSpecVersion   = VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+  //=== VK_NV_acquire_winrt_display ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVAcquireWinrtDisplayExtensionName = VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVAcquireWinrtDisplaySpecVersion   = VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+  //=== VK_EXT_directfb_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectfbSurfaceExtensionName = VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectfbSurfaceSpecVersion   = VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+  //=== VK_VALVE_mutable_descriptor_type ===
+  VULKAN_HPP_DEPRECATED( "The VK_VALVE_mutable_descriptor_type extension has been promoted to VK_EXT_mutable_descriptor_type." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEMutableDescriptorTypeExtensionName = VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_VALVE_mutable_descriptor_type extension has been promoted to VK_EXT_mutable_descriptor_type." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEMutableDescriptorTypeSpecVersion = VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION;
+
+  //=== VK_EXT_vertex_input_dynamic_state ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexInputDynamicStateExtensionName = VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexInputDynamicStateSpecVersion   = VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION;
+
+  //=== VK_EXT_physical_device_drm ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPhysicalDeviceDrmExtensionName = VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPhysicalDeviceDrmSpecVersion   = VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION;
+
+  //=== VK_EXT_device_address_binding_report ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceAddressBindingReportExtensionName = VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceAddressBindingReportSpecVersion   = VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION;
+
+  //=== VK_EXT_depth_clip_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipControlExtensionName = VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipControlSpecVersion   = VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION;
+
+  //=== VK_EXT_primitive_topology_list_restart ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitiveTopologyListRestartExtensionName = VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitiveTopologyListRestartSpecVersion   = VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION;
+
+  //=== VK_KHR_format_feature_flags2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_format_feature_flags2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFormatFeatureFlags2ExtensionName = VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_format_feature_flags2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFormatFeatureFlags2SpecVersion = VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_memory ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalMemoryExtensionName = VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalMemorySpecVersion   = VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_external_semaphore ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalSemaphoreExtensionName = VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalSemaphoreSpecVersion   = VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIABufferCollectionExtensionName = VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIABufferCollectionSpecVersion   = VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_HUAWEI_subpass_shading ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEISubpassShadingExtensionName = VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEISubpassShadingSpecVersion   = VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION;
+
+  //=== VK_HUAWEI_invocation_mask ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIInvocationMaskExtensionName = VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIInvocationMaskSpecVersion   = VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION;
+
+  //=== VK_NV_external_memory_rdma ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryRdmaExtensionName = VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryRdmaSpecVersion   = VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION;
+
+  //=== VK_EXT_pipeline_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelinePropertiesExtensionName = VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelinePropertiesSpecVersion   = VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_EXT_frame_boundary ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFrameBoundaryExtensionName = VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFrameBoundarySpecVersion   = VK_EXT_FRAME_BOUNDARY_SPEC_VERSION;
+
+  //=== VK_EXT_multisampled_render_to_single_sampled ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultisampledRenderToSingleSampledExtensionName = VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultisampledRenderToSingleSampledSpecVersion   = VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION;
+
+  //=== VK_EXT_extended_dynamic_state2 ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState2ExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state2 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState2SpecVersion = VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_screen_surface ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QNXScreenSurfaceExtensionName = VK_QNX_SCREEN_SURFACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QNXScreenSurfaceSpecVersion   = VK_QNX_SCREEN_SURFACE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_EXT_color_write_enable ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTColorWriteEnableExtensionName = VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTColorWriteEnableSpecVersion   = VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION;
+
+  //=== VK_EXT_primitives_generated_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitivesGeneratedQueryExtensionName = VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitivesGeneratedQuerySpecVersion   = VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION;
+
+  //=== VK_KHR_ray_tracing_maintenance1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingMaintenance1ExtensionName = VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingMaintenance1SpecVersion   = VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION;
+
+  //=== VK_EXT_global_priority_query ===
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority_query extension has been promoted to VK_KHR_global_priority." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityQueryExtensionName = VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority_query extension has been promoted to VK_KHR_global_priority." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityQuerySpecVersion = VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION;
+
+  //=== VK_EXT_image_view_min_lod ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageViewMinLodExtensionName = VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageViewMinLodSpecVersion   = VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION;
+
+  //=== VK_EXT_multi_draw ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultiDrawExtensionName = VK_EXT_MULTI_DRAW_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultiDrawSpecVersion   = VK_EXT_MULTI_DRAW_SPEC_VERSION;
+
+  //=== VK_EXT_image_2d_view_of_3d ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImage2DViewOf3DExtensionName = VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImage2DViewOf3DSpecVersion   = VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION;
+
+  //=== VK_KHR_portability_enumeration ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilityEnumerationExtensionName = VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilityEnumerationSpecVersion   = VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION;
+
+  //=== VK_EXT_shader_tile_image ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderTileImageExtensionName = VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderTileImageSpecVersion   = VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION;
+
+  //=== VK_EXT_opacity_micromap ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTOpacityMicromapExtensionName = VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTOpacityMicromapSpecVersion   = VK_EXT_OPACITY_MICROMAP_SPEC_VERSION;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplacementMicromapExtensionName = VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplacementMicromapSpecVersion   = VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_EXT_load_store_op_none ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLoadStoreOpNoneExtensionName = VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLoadStoreOpNoneSpecVersion   = VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION;
+
+  //=== VK_HUAWEI_cluster_culling_shader ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIClusterCullingShaderExtensionName = VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIClusterCullingShaderSpecVersion   = VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION;
+
+  //=== VK_EXT_border_color_swizzle ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBorderColorSwizzleExtensionName = VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBorderColorSwizzleSpecVersion   = VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION;
+
+  //=== VK_EXT_pageable_device_local_memory ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPageableDeviceLocalMemoryExtensionName = VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPageableDeviceLocalMemorySpecVersion   = VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION;
+
+  //=== VK_KHR_maintenance4 ===
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance4 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance4ExtensionName = VK_KHR_MAINTENANCE_4_EXTENSION_NAME;
+  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance4 extension has been promoted to core in version 1.3." )
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance4SpecVersion = VK_KHR_MAINTENANCE_4_SPEC_VERSION;
+
+  //=== VK_ARM_shader_core_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCorePropertiesExtensionName = VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCorePropertiesSpecVersion   = VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_ARM_scheduling_controls ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMSchedulingControlsExtensionName = VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMSchedulingControlsSpecVersion   = VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION;
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageSlicedViewOf3DExtensionName = VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageSlicedViewOf3DSpecVersion   = VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION;
+
+  //=== VK_VALVE_descriptor_set_host_mapping ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEDescriptorSetHostMappingExtensionName = VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEDescriptorSetHostMappingSpecVersion   = VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION;
+
+  //=== VK_EXT_depth_clamp_zero_one ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampZeroOneExtensionName = VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampZeroOneSpecVersion   = VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION;
+
+  //=== VK_EXT_non_seamless_cube_map ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNonSeamlessCubeMapExtensionName = VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNonSeamlessCubeMapSpecVersion   = VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION;
+
+  //=== VK_ARM_render_pass_striped ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRenderPassStripedExtensionName = VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRenderPassStripedSpecVersion   = VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION;
+
+  //=== VK_QCOM_fragment_density_map_offset ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFragmentDensityMapOffsetExtensionName = VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFragmentDensityMapOffsetSpecVersion   = VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION;
+
+  //=== VK_NV_copy_memory_indirect ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCopyMemoryIndirectExtensionName = VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVCopyMemoryIndirectSpecVersion   = VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION;
+
+  //=== VK_NV_memory_decompression ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVMemoryDecompressionExtensionName = VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVMemoryDecompressionSpecVersion   = VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION;
+
+  //=== VK_NV_device_generated_commands_compute ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsComputeExtensionName = VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsComputeSpecVersion   = VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION;
+
+  //=== VK_NV_linear_color_attachment ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLinearColorAttachmentExtensionName = VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLinearColorAttachmentSpecVersion   = VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION;
+
+  //=== VK_GOOGLE_surfaceless_query ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLESurfacelessQueryExtensionName = VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLESurfacelessQuerySpecVersion   = VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION;
+
+  //=== VK_EXT_image_compression_control_swapchain ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSwapchainExtensionName = VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSwapchainSpecVersion   = VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION;
+
+  //=== VK_QCOM_image_processing ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessingExtensionName = VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessingSpecVersion   = VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION;
+
+  //=== VK_EXT_nested_command_buffer ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNestedCommandBufferExtensionName = VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNestedCommandBufferSpecVersion   = VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION;
+
+  //=== VK_EXT_external_memory_acquire_unmodified ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryAcquireUnmodifiedExtensionName = VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryAcquireUnmodifiedSpecVersion   = VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION;
+
+  //=== VK_EXT_extended_dynamic_state3 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState3ExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState3SpecVersion   = VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION;
+
+  //=== VK_EXT_subpass_merge_feedback ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubpassMergeFeedbackExtensionName = VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubpassMergeFeedbackSpecVersion   = VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION;
+
+  //=== VK_LUNARG_direct_driver_loading ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto LUNARGDirectDriverLoadingExtensionName = VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto LUNARGDirectDriverLoadingSpecVersion   = VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION;
+
+  //=== VK_EXT_shader_module_identifier ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderModuleIdentifierExtensionName = VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderModuleIdentifierSpecVersion   = VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION;
+
+  //=== VK_EXT_rasterization_order_attachment_access ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRasterizationOrderAttachmentAccessExtensionName = VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRasterizationOrderAttachmentAccessSpecVersion   = VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION;
+
+  //=== VK_NV_optical_flow ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVOpticalFlowExtensionName = VK_NV_OPTICAL_FLOW_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVOpticalFlowSpecVersion   = VK_NV_OPTICAL_FLOW_SPEC_VERSION;
+
+  //=== VK_EXT_legacy_dithering ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyDitheringExtensionName = VK_EXT_LEGACY_DITHERING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyDitheringSpecVersion   = VK_EXT_LEGACY_DITHERING_SPEC_VERSION;
+
+  //=== VK_EXT_pipeline_protected_access ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineProtectedAccessExtensionName = VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineProtectedAccessSpecVersion   = VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_format_resolve ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalFormatResolveExtensionName = VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalFormatResolveSpecVersion   = VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_KHR_maintenance5 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance5ExtensionName = VK_KHR_MAINTENANCE_5_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance5SpecVersion   = VK_KHR_MAINTENANCE_5_SPEC_VERSION;
+
+  //=== VK_KHR_ray_tracing_position_fetch ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPositionFetchExtensionName = VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPositionFetchSpecVersion   = VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION;
+
+  //=== VK_EXT_shader_object ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderObjectExtensionName = VK_EXT_SHADER_OBJECT_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderObjectSpecVersion   = VK_EXT_SHADER_OBJECT_SPEC_VERSION;
+
+  //=== VK_QCOM_tile_properties ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTilePropertiesExtensionName = VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTilePropertiesSpecVersion   = VK_QCOM_TILE_PROPERTIES_SPEC_VERSION;
+
+  //=== VK_SEC_amigo_profiling ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto SECAmigoProfilingExtensionName = VK_SEC_AMIGO_PROFILING_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto SECAmigoProfilingSpecVersion   = VK_SEC_AMIGO_PROFILING_SPEC_VERSION;
+
+  //=== VK_QCOM_multiview_per_view_viewports ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewViewportsExtensionName = VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewViewportsSpecVersion   = VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION;
+
+  //=== VK_NV_ray_tracing_invocation_reorder ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingInvocationReorderExtensionName = VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingInvocationReorderSpecVersion   = VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION;
+
+  //=== VK_NV_extended_sparse_address_space ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExtendedSparseAddressSpaceExtensionName = VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVExtendedSparseAddressSpaceSpecVersion   = VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION;
+
+  //=== VK_EXT_mutable_descriptor_type ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeExtensionName = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeSpecVersion   = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION;
+
+  //=== VK_EXT_layer_settings ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsExtensionName = VK_EXT_LAYER_SETTINGS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsSpecVersion   = VK_EXT_LAYER_SETTINGS_SPEC_VERSION;
+
+  //=== VK_ARM_shader_core_builtins ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCoreBuiltinsExtensionName = VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCoreBuiltinsSpecVersion   = VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION;
+
+  //=== VK_EXT_pipeline_library_group_handles ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineLibraryGroupHandlesExtensionName = VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineLibraryGroupHandlesSpecVersion   = VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION;
+
+  //=== VK_EXT_dynamic_rendering_unused_attachments ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDynamicRenderingUnusedAttachmentsExtensionName = VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDynamicRenderingUnusedAttachmentsSpecVersion   = VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION;
+
+  //=== VK_NV_low_latency2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatency2ExtensionName = VK_NV_LOW_LATENCY_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatency2SpecVersion   = VK_NV_LOW_LATENCY_2_SPEC_VERSION;
+
+  //=== VK_KHR_cooperative_matrix ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCooperativeMatrixExtensionName = VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCooperativeMatrixSpecVersion   = VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION;
+
+  //=== VK_QCOM_multiview_per_view_render_areas ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewRenderAreasExtensionName = VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewRenderAreasSpecVersion   = VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION;
+
+  //=== VK_KHR_video_maintenance1 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoMaintenance1ExtensionName = VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoMaintenance1SpecVersion   = VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION;
+
+  //=== VK_NV_per_stage_descriptor_set ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVPerStageDescriptorSetExtensionName = VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVPerStageDescriptorSetSpecVersion   = VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION;
+
+  //=== VK_QCOM_image_processing2 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessing2ExtensionName = VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessing2SpecVersion   = VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION;
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicWeightsExtensionName = VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicWeightsSpecVersion   = VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION;
+
+  //=== VK_QCOM_ycbcr_degamma ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMYcbcrDegammaExtensionName = VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMYcbcrDegammaSpecVersion   = VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION;
+
+  //=== VK_QCOM_filter_cubic_clamp ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicClampExtensionName = VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicClampSpecVersion   = VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION;
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopDynamicStateExtensionName = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopDynamicStateSpecVersion   = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION;
+
+  //=== VK_KHR_vertex_attribute_divisor ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVertexAttributeDivisorExtensionName = VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVertexAttributeDivisorSpecVersion   = VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto QNXExternalMemoryScreenBufferExtensionName = VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto QNXExternalMemoryScreenBufferSpecVersion   = VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_MSFT_layered_driver ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto MSFTLayeredDriverExtensionName = VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto MSFTLayeredDriverSpecVersion   = VK_MSFT_LAYERED_DRIVER_SPEC_VERSION;
+
+  //=== VK_KHR_calibrated_timestamps ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCalibratedTimestampsExtensionName = VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCalibratedTimestampsSpecVersion   = VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION;
+
+  //=== VK_KHR_maintenance6 ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance6ExtensionName = VK_KHR_MAINTENANCE_6_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance6SpecVersion   = VK_KHR_MAINTENANCE_6_SPEC_VERSION;
+
+  //=== VK_NV_descriptor_pool_overallocation ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDescriptorPoolOverallocationExtensionName = VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto NVDescriptorPoolOverallocationSpecVersion   = VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION;
+
 }  // namespace VULKAN_HPP_NAMESPACE
 
 // clang-format off
 #include <vulkan/vulkan_handles.hpp>
 #include <vulkan/vulkan_structs.hpp>
 #include <vulkan/vulkan_funcs.hpp>
+
 // clang-format on
 
 namespace VULKAN_HPP_NAMESPACE
@@ -6785,6 +8617,60 @@
     };
   };
 
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, BindDescriptorSetsInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, PushConstantsInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, PushDescriptorSetInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, PushDescriptorSetWithTemplateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, SetDescriptorBufferOffsetsInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, BindDescriptorBufferEmbeddedSamplersInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_VERSION_1_1 ===
   template <>
   struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
@@ -6794,6 +8680,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
   {
@@ -6802,6 +8689,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
   {
@@ -6810,6 +8698,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
   {
@@ -6818,6 +8707,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
   {
@@ -6826,6 +8716,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
   {
@@ -6834,6 +8725,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
   {
@@ -6842,6 +8734,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderingInfo>
   {
@@ -6850,6 +8743,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
   {
@@ -6858,6 +8752,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
   {
@@ -6866,6 +8761,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
   {
@@ -6874,6 +8770,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>
   {
@@ -6882,6 +8779,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>
   {
@@ -6890,6 +8788,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
   {
@@ -6898,6 +8797,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
   {
@@ -6906,6 +8806,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
   {
@@ -6914,6 +8815,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
   {
@@ -6922,6 +8824,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
   {
@@ -6930,6 +8833,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
   {
@@ -6938,6 +8842,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
   {
@@ -6946,6 +8851,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
   {
@@ -6954,6 +8860,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
   {
@@ -6962,6 +8869,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
   {
@@ -6970,6 +8878,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
   {
@@ -6978,6 +8887,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
   {
@@ -6986,6 +8896,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
   {
@@ -6994,6 +8905,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
   {
@@ -7002,6 +8914,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
   {
@@ -7010,6 +8923,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
   {
@@ -7018,6 +8932,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
   {
@@ -7026,6 +8941,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
   {
@@ -7034,6 +8950,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
   {
@@ -7042,6 +8959,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
   {
@@ -7050,6 +8968,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
   {
@@ -7058,6 +8977,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
   {
@@ -7066,6 +8986,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
   {
@@ -7074,6 +8995,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
   {
@@ -7082,6 +9004,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
   {
@@ -7090,6 +9013,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
   {
@@ -7098,6 +9022,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
   {
@@ -7106,6 +9031,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
   {
@@ -7114,6 +9040,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
   {
@@ -7122,6 +9049,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
   {
@@ -7130,6 +9058,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
   {
@@ -7138,6 +9067,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
   {
@@ -7146,6 +9076,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
   {
@@ -7154,6 +9085,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
   {
@@ -7172,6 +9104,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
   {
@@ -7180,6 +9113,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
   {
@@ -7188,6 +9122,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
   {
@@ -7196,6 +9131,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
   {
@@ -7204,6 +9140,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
   {
@@ -7212,6 +9149,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
   {
@@ -7220,6 +9158,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
   {
@@ -7228,6 +9167,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
   {
@@ -7236,6 +9176,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
   {
@@ -7244,6 +9185,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
   {
@@ -7252,6 +9194,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
   {
@@ -7260,6 +9203,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
   {
@@ -7268,6 +9212,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
   {
@@ -7276,6 +9221,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
   {
@@ -7284,6 +9230,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
   {
@@ -7292,6 +9239,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
   {
@@ -7300,6 +9248,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
   {
@@ -7308,6 +9257,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
   {
@@ -7316,6 +9266,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
   {
@@ -7324,6 +9275,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
   {
@@ -7332,6 +9284,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
   {
@@ -7340,6 +9293,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
   {
@@ -7348,6 +9302,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
   {
@@ -7356,6 +9311,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
   {
@@ -7364,6 +9320,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
   {
@@ -7372,6 +9329,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
   {
@@ -7380,6 +9338,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>
   {
@@ -7388,6 +9347,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>
   {
@@ -7396,6 +9356,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
   {
@@ -7404,6 +9365,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
   {
@@ -7412,6 +9374,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
   {
@@ -7420,6 +9383,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
   {
@@ -7428,6 +9392,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
   {
@@ -7436,6 +9401,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
   {
@@ -7444,6 +9410,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
   {
@@ -7452,6 +9419,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
   {
@@ -7460,6 +9428,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
   {
@@ -7468,6 +9437,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
   {
@@ -7476,6 +9446,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
   {
@@ -7484,6 +9455,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
   {
@@ -7492,6 +9464,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
   {
@@ -7500,6 +9473,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
   {
@@ -7508,6 +9482,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
   {
@@ -7516,6 +9491,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
   {
@@ -7524,6 +9500,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
   {
@@ -7532,6 +9509,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
   {
@@ -7540,6 +9518,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
   {
@@ -7548,6 +9527,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
   {
@@ -7556,6 +9536,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
   {
@@ -7564,6 +9545,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
   {
@@ -7572,6 +9554,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
   {
@@ -7580,6 +9563,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
   {
@@ -7588,6 +9572,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
   {
@@ -7596,6 +9581,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
   {
@@ -7604,6 +9590,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
   {
@@ -7612,6 +9599,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
   {
@@ -7620,6 +9608,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
   {
@@ -7638,6 +9627,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan13Features, DeviceCreateInfo>
   {
@@ -7646,6 +9636,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVulkan13Properties, PhysicalDeviceProperties2>
   {
@@ -7654,6 +9645,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCreationFeedbackCreateInfo, GraphicsPipelineCreateInfo>
   {
@@ -7662,6 +9654,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCreationFeedbackCreateInfo, ComputePipelineCreateInfo>
   {
@@ -7670,6 +9663,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoNV>
   {
@@ -7678,6 +9672,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoKHR>
   {
@@ -7686,6 +9681,16 @@
       value = true
     };
   };
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct StructExtends<PipelineCreationFeedbackCreateInfo, ExecutionGraphPipelineCreateInfoAMDX>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
   template <>
   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, PhysicalDeviceFeatures2>
   {
@@ -7694,6 +9699,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, DeviceCreateInfo>
   {
@@ -7702,6 +9708,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, PhysicalDeviceFeatures2>
   {
@@ -7710,6 +9717,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, DeviceCreateInfo>
   {
@@ -7718,6 +9726,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePrivateDataFeatures, PhysicalDeviceFeatures2>
   {
@@ -7726,6 +9735,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePrivateDataFeatures, DeviceCreateInfo>
   {
@@ -7734,6 +9744,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DevicePrivateDataCreateInfo, DeviceCreateInfo>
   {
@@ -7742,6 +9753,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, PhysicalDeviceFeatures2>
   {
@@ -7750,6 +9762,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, DeviceCreateInfo>
   {
@@ -7758,6 +9771,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryBarrier2, SubpassDependency2>
   {
@@ -7766,6 +9780,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSynchronization2Features, PhysicalDeviceFeatures2>
   {
@@ -7774,6 +9789,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSynchronization2Features, DeviceCreateInfo>
   {
@@ -7782,6 +9798,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, PhysicalDeviceFeatures2>
   {
@@ -7790,6 +9807,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, DeviceCreateInfo>
   {
@@ -7798,6 +9816,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageRobustnessFeatures, PhysicalDeviceFeatures2>
   {
@@ -7806,6 +9825,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageRobustnessFeatures, DeviceCreateInfo>
   {
@@ -7814,6 +9834,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, PhysicalDeviceFeatures2>
   {
@@ -7822,6 +9843,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, DeviceCreateInfo>
   {
@@ -7830,6 +9852,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubgroupSizeControlProperties, PhysicalDeviceProperties2>
   {
@@ -7838,6 +9861,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, PipelineShaderStageCreateInfo>
   {
@@ -7846,6 +9870,16 @@
       value = true
     };
   };
+
+  template <>
+  struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, ShaderCreateInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   template <>
   struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, PhysicalDeviceFeatures2>
   {
@@ -7854,6 +9888,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, DeviceCreateInfo>
   {
@@ -7862,6 +9897,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceInlineUniformBlockProperties, PhysicalDeviceProperties2>
   {
@@ -7870,6 +9906,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<WriteDescriptorSetInlineUniformBlock, WriteDescriptorSet>
   {
@@ -7878,6 +9915,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfo, DescriptorPoolCreateInfo>
   {
@@ -7886,6 +9924,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, PhysicalDeviceFeatures2>
   {
@@ -7894,6 +9933,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, DeviceCreateInfo>
   {
@@ -7902,6 +9942,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRenderingCreateInfo, GraphicsPipelineCreateInfo>
   {
@@ -7910,6 +9951,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, PhysicalDeviceFeatures2>
   {
@@ -7918,6 +9960,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, DeviceCreateInfo>
   {
@@ -7926,6 +9969,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<CommandBufferInheritanceRenderingInfo, CommandBufferInheritanceInfo>
   {
@@ -7934,6 +9978,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, PhysicalDeviceFeatures2>
   {
@@ -7942,6 +9987,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, DeviceCreateInfo>
   {
@@ -7950,6 +9996,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderIntegerDotProductProperties, PhysicalDeviceProperties2>
   {
@@ -7958,6 +10005,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTexelBufferAlignmentProperties, PhysicalDeviceProperties2>
   {
@@ -7966,6 +10014,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<FormatProperties3, FormatProperties2>
   {
@@ -7974,6 +10023,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMaintenance4Features, PhysicalDeviceFeatures2>
   {
@@ -7982,6 +10032,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMaintenance4Features, DeviceCreateInfo>
   {
@@ -7990,6 +10041,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMaintenance4Properties, PhysicalDeviceProperties2>
   {
@@ -8008,6 +10060,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
   {
@@ -8016,6 +10069,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
   {
@@ -8024,6 +10078,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
   {
@@ -8063,7 +10118,6 @@
     };
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
   template <>
   struct StructExtends<QueueFamilyQueryResultStatusPropertiesKHR, QueueFamilyProperties2>
@@ -8073,6 +10127,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<QueueFamilyVideoPropertiesKHR, QueueFamilyProperties2>
   {
@@ -8081,6 +10136,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoProfileInfoKHR, QueryPoolCreateInfo>
   {
@@ -8089,6 +10145,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceImageFormatInfo2>
   {
@@ -8097,6 +10154,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceVideoFormatInfoKHR>
   {
@@ -8105,6 +10163,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoProfileListInfoKHR, ImageCreateInfo>
   {
@@ -8113,6 +10172,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoProfileListInfoKHR, BufferCreateInfo>
   {
@@ -8121,9 +10181,7 @@
       value = true
     };
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
   template <>
   struct StructExtends<VideoDecodeCapabilitiesKHR, VideoCapabilitiesKHR>
@@ -8133,6 +10191,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoDecodeUsageInfoKHR, VideoProfileInfoKHR>
   {
@@ -8141,6 +10200,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoDecodeUsageInfoKHR, QueryPoolCreateInfo>
   {
@@ -8149,7 +10209,6 @@
       value = true
     };
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NV_dedicated_allocation ===
   template <>
@@ -8160,6 +10219,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
   {
@@ -8168,6 +10228,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
   {
@@ -8186,6 +10247,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
   {
@@ -8194,6 +10256,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -8202,6 +10265,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
   {
@@ -8211,233 +10275,341 @@
     };
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h264 ===
+  //=== VK_KHR_video_encode_h264 ===
   template <>
-  struct StructExtends<DevicePrivateDataCreateInfo, DeviceCreateInfo>
+  struct StructExtends<VideoEncodeH264CapabilitiesKHR, VideoCapabilitiesKHR>
   {
     enum
     {
       value = true
     };
   };
-  template <>
-  struct StructExtends<PhysicalDeviceSynchronization2Features, DeviceCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, PhysicalDeviceFeatures2>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264EmitPictureParametersInfoEXT, VideoEncodeInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264ProfileInfoEXT, VideoProfileInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264ProfileInfoEXT, QueryPoolCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264RateControlInfoEXT, VideoCodingControlInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoCodingControlInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h265 ===
   template <>
-  struct StructExtends<VideoEncodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
+  struct StructExtends<VideoEncodeH264QualityLevelPropertiesKHR, VideoEncodeQualityLevelPropertiesKHR>
   {
     enum
     {
       value = true
     };
   };
-  template <>
-  struct StructExtends<VideoEncodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265VclFrameInfoEXT, VideoEncodeInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265EmitPictureParametersInfoEXT, VideoEncodeInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265ProfileInfoEXT, VideoProfileInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265ProfileInfoEXT, QueryPoolCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265RateControlInfoEXT, VideoCodingControlInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoCodingControlInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h264 ===
   template <>
-  struct StructExtends<VideoDecodeH264ProfileInfoEXT, VideoProfileInfoKHR>
+  struct StructExtends<VideoEncodeH264SessionCreateInfoKHR, VideoSessionCreateInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264ProfileInfoEXT, QueryPoolCreateInfo>
+  struct StructExtends<VideoEncodeH264SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
+  struct StructExtends<VideoEncodeH264SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
+  struct StructExtends<VideoEncodeH264SessionParametersGetInfoKHR, VideoEncodeSessionParametersGetInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
+  struct StructExtends<VideoEncodeH264SessionParametersFeedbackInfoKHR, VideoEncodeSessionParametersFeedbackInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264PictureInfoEXT, VideoDecodeInfoKHR>
+  struct StructExtends<VideoEncodeH264PictureInfoKHR, VideoEncodeInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH264DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
+  struct StructExtends<VideoEncodeH264DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
   {
     enum
     {
       value = true
     };
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
+  struct StructExtends<VideoEncodeH264ProfileInfoKHR, VideoProfileInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH264ProfileInfoKHR, QueryPoolCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH264RateControlInfoKHR, VideoCodingControlInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH264RateControlInfoKHR, VideoBeginCodingInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH264RateControlLayerInfoKHR, VideoEncodeRateControlLayerInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH264GopRemainingFrameInfoKHR, VideoBeginCodingInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_video_encode_h265 ===
+  template <>
+  struct StructExtends<VideoEncodeH265CapabilitiesKHR, VideoCapabilitiesKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265SessionCreateInfoKHR, VideoSessionCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265QualityLevelPropertiesKHR, VideoEncodeQualityLevelPropertiesKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265SessionParametersGetInfoKHR, VideoEncodeSessionParametersGetInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265SessionParametersFeedbackInfoKHR, VideoEncodeSessionParametersFeedbackInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265PictureInfoKHR, VideoEncodeInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265ProfileInfoKHR, VideoProfileInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265ProfileInfoKHR, QueryPoolCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265RateControlInfoKHR, VideoCodingControlInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265RateControlInfoKHR, VideoBeginCodingInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265RateControlLayerInfoKHR, VideoEncodeRateControlLayerInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeH265GopRemainingFrameInfoKHR, VideoBeginCodingInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_video_decode_h264 ===
+  template <>
+  struct StructExtends<VideoDecodeH264ProfileInfoKHR, VideoProfileInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264ProfileInfoKHR, QueryPoolCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264CapabilitiesKHR, VideoCapabilitiesKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264PictureInfoKHR, VideoDecodeInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoDecodeH264DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
 
   //=== VK_AMD_texture_gather_bias_lod ===
   template <>
@@ -8458,6 +10630,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderingFragmentDensityMapAttachmentInfoEXT, RenderingInfo>
   {
@@ -8466,6 +10639,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AttachmentSampleCountInfoAMD, CommandBufferInheritanceInfo>
   {
@@ -8474,6 +10648,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AttachmentSampleCountInfoAMD, GraphicsPipelineCreateInfo>
   {
@@ -8482,6 +10657,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MultiviewPerViewAttributesInfoNVX, CommandBufferInheritanceInfo>
   {
@@ -8490,6 +10666,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MultiviewPerViewAttributesInfoNVX, GraphicsPipelineCreateInfo>
   {
@@ -8498,6 +10675,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MultiviewPerViewAttributesInfoNVX, RenderingInfo>
   {
@@ -8516,6 +10694,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
   {
@@ -8534,6 +10713,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
   {
@@ -8553,6 +10733,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
   {
@@ -8573,6 +10754,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2>
   {
@@ -8602,6 +10784,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
   {
@@ -8610,6 +10793,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
   {
@@ -8628,6 +10812,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, DeviceCreateInfo>
   {
@@ -8636,6 +10821,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineRobustnessPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -8644,6 +10830,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRobustnessCreateInfoEXT, GraphicsPipelineCreateInfo>
   {
@@ -8652,6 +10839,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRobustnessCreateInfoEXT, ComputePipelineCreateInfo>
   {
@@ -8660,6 +10848,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRobustnessCreateInfoEXT, PipelineShaderStageCreateInfo>
   {
@@ -8668,6 +10857,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRobustnessCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
   {
@@ -8687,6 +10877,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
   {
@@ -8717,6 +10908,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2>
   {
@@ -8737,6 +10929,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
   {
@@ -8766,6 +10959,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
   {
@@ -8774,6 +10968,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
   {
@@ -8852,6 +11047,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
   {
@@ -8870,6 +11066,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
   {
@@ -8888,6 +11085,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
   {
@@ -8896,6 +11094,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
   {
@@ -8905,6 +11104,25 @@
     };
   };
 
+  //=== VK_IMG_relaxed_line_rasterization ===
+  template <>
+  struct StructExtends<PhysicalDeviceRelaxedLineRasterizationFeaturesIMG, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRelaxedLineRasterizationFeaturesIMG, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_KHR_shared_presentable_image ===
   template <>
   struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
@@ -8936,6 +11154,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
   {
@@ -8944,6 +11163,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
   {
@@ -8952,6 +11172,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
   {
@@ -8960,6 +11181,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
   {
@@ -8968,6 +11190,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2>
   {
@@ -8986,6 +11209,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DebugUtilsObjectNameInfoEXT, PipelineShaderStageCreateInfo>
   {
@@ -9005,6 +11229,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
   {
@@ -9013,6 +11238,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
   {
@@ -9021,6 +11247,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
   {
@@ -9029,6 +11256,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
   {
@@ -9037,6 +11265,34 @@
       value = true
     };
   };
+
+  template <>
+  struct StructExtends<ExternalFormatANDROID, AttachmentDescription2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalFormatANDROID, GraphicsPipelineCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalFormatANDROID, CommandBufferInheritanceInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   template <>
   struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID>
   {
@@ -9047,6 +11303,45 @@
   };
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  template <>
+  struct StructExtends<PhysicalDeviceShaderEnqueueFeaturesAMDX, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderEnqueueFeaturesAMDX, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderEnqueuePropertiesAMDX, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineShaderStageNodeCreateInfoAMDX, PipelineShaderStageCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   //=== VK_EXT_sample_locations ===
   template <>
   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
@@ -9056,6 +11351,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2>
   {
@@ -9064,6 +11360,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
   {
@@ -9072,6 +11369,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
   {
@@ -9080,6 +11378,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -9098,6 +11397,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
   {
@@ -9106,6 +11406,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -9114,6 +11415,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
   {
@@ -9142,6 +11444,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
   {
@@ -9150,6 +11453,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
   {
@@ -9158,6 +11462,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
   {
@@ -9167,6 +11472,53 @@
     };
   };
 
+  //=== VK_KHR_ray_tracing_pipeline ===
+  template <>
+  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_ray_query ===
+  template <>
+  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_NV_framebuffer_mixed_samples ===
   template <>
   struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
@@ -9186,6 +11538,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -9194,6 +11547,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
   {
@@ -9212,6 +11566,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
   {
@@ -9220,6 +11575,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
   {
@@ -9228,6 +11584,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
   {
@@ -9236,6 +11593,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DrmFormatModifierPropertiesList2EXT, FormatProperties2>
   {
@@ -9254,6 +11612,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, PipelineShaderStageCreateInfo>
   {
@@ -9273,6 +11632,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
   {
@@ -9281,6 +11641,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
   {
@@ -9300,6 +11661,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -9308,6 +11670,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
   {
@@ -9316,6 +11679,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
   {
@@ -9324,6 +11688,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
   {
@@ -9342,6 +11707,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -9360,6 +11726,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
   {
@@ -9368,6 +11735,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
   {
@@ -9386,6 +11754,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
   {
@@ -9404,6 +11773,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -9422,6 +11792,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
   {
@@ -9440,6 +11811,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
   {
@@ -9448,6 +11820,16 @@
       value = true
     };
   };
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct StructExtends<PipelineCompilerControlCreateInfoAMD, ExecutionGraphPipelineCreateInfoAMDX>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_AMD_shader_core_properties ===
   template <>
@@ -9459,65 +11841,69 @@
     };
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h265 ===
+  //=== VK_KHR_video_decode_h265 ===
   template <>
-  struct StructExtends<VideoDecodeH265ProfileInfoEXT, VideoProfileInfoKHR>
+  struct StructExtends<VideoDecodeH265ProfileInfoKHR, VideoProfileInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265ProfileInfoEXT, QueryPoolCreateInfo>
+  struct StructExtends<VideoDecodeH265ProfileInfoKHR, QueryPoolCreateInfo>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
+  struct StructExtends<VideoDecodeH265CapabilitiesKHR, VideoCapabilitiesKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
+  struct StructExtends<VideoDecodeH265SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
+  struct StructExtends<VideoDecodeH265SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265PictureInfoEXT, VideoDecodeInfoKHR>
+  struct StructExtends<VideoDecodeH265PictureInfoKHR, VideoDecodeInfoKHR>
   {
     enum
     {
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoDecodeH265DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
+  struct StructExtends<VideoDecodeH265DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
   {
     enum
     {
       value = true
     };
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_KHR_global_priority ===
   template <>
@@ -9528,6 +11914,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, PhysicalDeviceFeatures2>
   {
@@ -9536,6 +11923,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, DeviceCreateInfo>
   {
@@ -9544,6 +11932,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<QueueFamilyGlobalPriorityPropertiesKHR, QueueFamilyProperties2>
   {
@@ -9572,30 +11961,6 @@
       value = true
     };
   };
-  template <>
-  struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
 
 #  if defined( VK_USE_PLATFORM_GGP )
   //=== VK_GGP_frame_token ===
@@ -9618,6 +11983,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
   {
@@ -9636,6 +12002,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
   {
@@ -9644,6 +12011,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -9662,6 +12030,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>
   {
@@ -9680,6 +12049,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -9688,6 +12058,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
   {
@@ -9716,6 +12087,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
   {
@@ -9754,6 +12126,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
   {
@@ -9772,6 +12145,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
   {
@@ -9780,6 +12154,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -9788,6 +12163,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
   {
@@ -9796,6 +12172,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
   {
@@ -9814,6 +12191,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
   {
@@ -9822,6 +12200,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
   {
@@ -9830,6 +12209,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
   {
@@ -9838,6 +12218,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
   {
@@ -9866,6 +12247,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
   {
@@ -9884,6 +12266,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
   {
@@ -9912,6 +12295,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
   {
@@ -9920,6 +12304,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
   {
@@ -9948,6 +12333,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
   {
@@ -9966,6 +12352,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
   {
@@ -9974,6 +12361,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
   {
@@ -10002,6 +12390,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
   {
@@ -10020,6 +12409,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
   {
@@ -10028,6 +12418,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -10046,6 +12437,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
   {
@@ -10054,6 +12446,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
   {
@@ -10072,6 +12465,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
   {
@@ -10090,6 +12484,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
   {
@@ -10108,6 +12503,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
   {
@@ -10116,6 +12512,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10124,6 +12521,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
   {
@@ -10143,6 +12541,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
   {
@@ -10151,6 +12550,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
   {
@@ -10159,6 +12559,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
   {
@@ -10167,6 +12568,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
   {
@@ -10186,6 +12588,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
   {
@@ -10194,6 +12597,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10202,6 +12606,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
   {
@@ -10220,6 +12625,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
   {
@@ -10238,6 +12644,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
   {
@@ -10256,6 +12663,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
   {
@@ -10274,6 +12682,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
   {
@@ -10283,6 +12692,52 @@
     };
   };
 
+  //=== VK_EXT_host_image_copy ===
+  template <>
+  struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceHostImageCopyPropertiesEXT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<SubresourceHostMemcpySizeEXT, SubresourceLayout2KHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<HostImageCopyDevicePerformanceQueryEXT, ImageFormatProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_shader_atomic_float2 ===
   template <>
   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
@@ -10292,6 +12747,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
   {
@@ -10310,6 +12766,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfacePresentScalingCapabilitiesEXT, SurfaceCapabilities2KHR>
   {
@@ -10318,6 +12775,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfacePresentModeCompatibilityEXT, SurfaceCapabilities2KHR>
   {
@@ -10336,6 +12794,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSwapchainMaintenance1FeaturesEXT, DeviceCreateInfo>
   {
@@ -10344,6 +12803,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainPresentFenceInfoEXT, PresentInfoKHR>
   {
@@ -10352,6 +12812,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainPresentModesCreateInfoEXT, SwapchainCreateInfoKHR>
   {
@@ -10360,6 +12821,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainPresentModeInfoEXT, PresentInfoKHR>
   {
@@ -10368,6 +12830,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainPresentScalingCreateInfoEXT, SwapchainCreateInfoKHR>
   {
@@ -10386,6 +12849,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -10394,6 +12858,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
   {
@@ -10402,6 +12867,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
   {
@@ -10420,6 +12886,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
   {
@@ -10428,6 +12895,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
   {
@@ -10446,6 +12914,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
   {
@@ -10464,6 +12933,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
   {
@@ -10473,6 +12943,43 @@
     };
   };
 
+  //=== VK_EXT_depth_bias_control ===
+  template <>
+  struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<DepthBiasRepresentationInfoEXT, DepthBiasInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<DepthBiasRepresentationInfoEXT, PipelineRasterizationStateCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_device_memory_report ===
   template <>
   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
@@ -10482,6 +12989,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
   {
@@ -10490,6 +12998,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
   {
@@ -10508,6 +13017,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
   {
@@ -10516,6 +13026,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10534,6 +13045,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10542,6 +13054,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
   {
@@ -10550,6 +13063,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
   {
@@ -10578,6 +13092,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePresentBarrierFeaturesNV, DeviceCreateInfo>
   {
@@ -10586,6 +13101,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SurfaceCapabilitiesPresentBarrierNV, SurfaceCapabilities2KHR>
   {
@@ -10594,6 +13110,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SwapchainPresentBarrierCreateInfoNV, SwapchainCreateInfoKHR>
   {
@@ -10612,6 +13129,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
   {
@@ -10620,6 +13138,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
   {
@@ -10629,7 +13148,6 @@
     };
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
   template <>
   struct StructExtends<VideoEncodeCapabilitiesKHR, VideoCapabilitiesKHR>
@@ -10639,6 +13157,16 @@
       value = true
     };
   };
+
+  template <>
+  struct StructExtends<QueryPoolVideoEncodeFeedbackCreateInfoKHR, QueryPoolCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   template <>
   struct StructExtends<VideoEncodeUsageInfoKHR, VideoProfileInfoKHR>
   {
@@ -10647,6 +13175,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoEncodeUsageInfoKHR, QueryPoolCreateInfo>
   {
@@ -10655,6 +13184,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
   {
@@ -10663,15 +13193,33 @@
       value = true
     };
   };
+
   template <>
-  struct StructExtends<VideoEncodeRateControlLayerInfoKHR, VideoCodingControlInfoKHR>
+  struct StructExtends<VideoEncodeRateControlInfoKHR, VideoBeginCodingInfoKHR>
   {
     enum
     {
       value = true
     };
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
+  struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoCodingControlInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoSessionParametersCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
 
   //=== VK_NV_device_diagnostics_config ===
   template <>
@@ -10682,6 +13230,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
   {
@@ -10690,6 +13239,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
   {
@@ -10699,6 +13249,46 @@
     };
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  template <>
+  struct StructExtends<PhysicalDeviceCudaKernelLaunchFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCudaKernelLaunchFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCudaKernelLaunchPropertiesNV, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_low_latency ===
+  template <>
+  struct StructExtends<QueryLowLatencySupportNV, SemaphoreCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
   //=== VK_EXT_metal_objects ===
   template <>
@@ -10709,6 +13299,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, MemoryAllocateInfo>
   {
@@ -10717,6 +13308,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageCreateInfo>
   {
@@ -10725,6 +13317,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageViewCreateInfo>
   {
@@ -10733,6 +13326,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, BufferViewCreateInfo>
   {
@@ -10741,6 +13335,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, SemaphoreCreateInfo>
   {
@@ -10749,6 +13344,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalObjectCreateInfoEXT, EventCreateInfo>
   {
@@ -10757,6 +13353,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalDeviceInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10765,6 +13362,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalCommandQueueInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10773,6 +13371,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalBufferInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10781,6 +13380,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportMetalBufferInfoEXT, MemoryAllocateInfo>
   {
@@ -10789,6 +13389,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalTextureInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10797,6 +13398,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportMetalTextureInfoEXT, ImageCreateInfo>
   {
@@ -10805,6 +13407,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalIOSurfaceInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10813,6 +13416,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportMetalIOSurfaceInfoEXT, ImageCreateInfo>
   {
@@ -10821,6 +13425,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ExportMetalSharedEventInfoEXT, ExportMetalObjectsInfoEXT>
   {
@@ -10829,6 +13434,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportMetalSharedEventInfoEXT, SemaphoreCreateInfo>
   {
@@ -10837,6 +13443,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImportMetalSharedEventInfoEXT, EventCreateInfo>
   {
@@ -10866,6 +13473,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10874,6 +13482,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, PhysicalDeviceFeatures2>
   {
@@ -10882,6 +13491,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, DeviceCreateInfo>
   {
@@ -10890,6 +13500,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DescriptorBufferBindingPushDescriptorBufferHandleEXT, DescriptorBufferBindingInfoEXT>
   {
@@ -10898,6 +13509,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, BufferCreateInfo>
   {
@@ -10906,6 +13518,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageCreateInfo>
   {
@@ -10914,6 +13527,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageViewCreateInfo>
   {
@@ -10922,6 +13536,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, SamplerCreateInfo>
   {
@@ -10930,6 +13545,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoKHR>
   {
@@ -10938,6 +13554,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoNV>
   {
@@ -10956,6 +13573,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, DeviceCreateInfo>
   {
@@ -10964,6 +13582,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -10972,6 +13591,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<GraphicsPipelineLibraryCreateInfoEXT, GraphicsPipelineCreateInfo>
   {
@@ -10990,6 +13610,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, DeviceCreateInfo>
   {
@@ -11008,6 +13629,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, DeviceCreateInfo>
   {
@@ -11016,6 +13638,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR, PhysicalDeviceProperties2>
   {
@@ -11034,6 +13657,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
   {
@@ -11052,6 +13676,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
   {
@@ -11060,6 +13685,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -11068,6 +13694,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
   {
@@ -11086,6 +13713,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
   {
@@ -11094,6 +13722,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -11102,6 +13731,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
   {
@@ -11120,6 +13750,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, DeviceCreateInfo>
   {
@@ -11128,6 +13759,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMeshShaderPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -11146,6 +13778,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
   {
@@ -11164,6 +13797,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
   {
@@ -11172,6 +13806,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -11190,6 +13825,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2>
   {
@@ -11208,6 +13844,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
   {
@@ -11226,6 +13863,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, DeviceCreateInfo>
   {
@@ -11234,6 +13872,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageCompressionControlEXT, ImageCreateInfo>
   {
@@ -11242,6 +13881,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageCompressionControlEXT, SwapchainCreateInfoKHR>
   {
@@ -11250,6 +13890,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageCompressionControlEXT, PhysicalDeviceImageFormatInfo2>
   {
@@ -11258,6 +13899,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageCompressionPropertiesEXT, ImageFormatProperties2>
   {
@@ -11266,6 +13908,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageCompressionPropertiesEXT, SurfaceFormat2KHR>
   {
@@ -11274,8 +13917,9 @@
       value = true
     };
   };
+
   template <>
-  struct StructExtends<ImageCompressionPropertiesEXT, SubresourceLayout2EXT>
+  struct StructExtends<ImageCompressionPropertiesEXT, SubresourceLayout2KHR>
   {
     enum
     {
@@ -11292,6 +13936,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, DeviceCreateInfo>
   {
@@ -11310,6 +13955,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
   {
@@ -11328,6 +13974,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFaultFeaturesEXT, DeviceCreateInfo>
   {
@@ -11346,6 +13993,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, DeviceCreateInfo>
   {
@@ -11355,50 +14003,6 @@
     };
   };
 
-  //=== VK_KHR_ray_tracing_pipeline ===
-  template <>
-  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-
-  //=== VK_KHR_ray_query ===
-  template <>
-  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-  template <>
-  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
-  {
-    enum
-    {
-      value = true
-    };
-  };
-
   //=== VK_EXT_vertex_input_dynamic_state ===
   template <>
   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
@@ -11408,6 +14012,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
   {
@@ -11436,6 +14041,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAddressBindingReportFeaturesEXT, DeviceCreateInfo>
   {
@@ -11444,6 +14050,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<DeviceAddressBindingCallbackDataEXT, DebugUtilsMessengerCallbackDataEXT>
   {
@@ -11462,6 +14069,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, DeviceCreateInfo>
   {
@@ -11470,6 +14078,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineViewportDepthClipControlCreateInfoEXT, PipelineViewportStateCreateInfo>
   {
@@ -11488,6 +14097,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
   {
@@ -11519,6 +14129,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BufferCollectionImageCreateInfoFUCHSIA, ImageCreateInfo>
   {
@@ -11527,6 +14138,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<BufferCollectionBufferCreateInfoFUCHSIA, BufferCreateInfo>
   {
@@ -11546,6 +14158,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
   {
@@ -11554,6 +14167,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
   {
@@ -11562,6 +14176,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
   {
@@ -11580,6 +14195,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
   {
@@ -11598,6 +14214,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
   {
@@ -11616,6 +14233,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, DeviceCreateInfo>
   {
@@ -11625,6 +14243,61 @@
     };
   };
 
+  //=== VK_EXT_frame_boundary ===
+  template <>
+  struct StructExtends<PhysicalDeviceFrameBoundaryFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceFrameBoundaryFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<FrameBoundaryEXT, SubmitInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<FrameBoundaryEXT, SubmitInfo2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<FrameBoundaryEXT, PresentInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<FrameBoundaryEXT, BindSparseInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_multisampled_render_to_single_sampled ===
   template <>
   struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, PhysicalDeviceFeatures2>
@@ -11634,6 +14307,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, DeviceCreateInfo>
   {
@@ -11642,6 +14316,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SubpassResolvePerformanceQueryEXT, FormatProperties2>
   {
@@ -11650,6 +14325,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, SubpassDescription2>
   {
@@ -11658,6 +14334,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, RenderingInfo>
   {
@@ -11676,6 +14353,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
   {
@@ -11694,6 +14372,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
   {
@@ -11702,6 +14381,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
   {
@@ -11720,6 +14400,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, DeviceCreateInfo>
   {
@@ -11738,6 +14419,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, DeviceCreateInfo>
   {
@@ -11756,6 +14438,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, DeviceCreateInfo>
   {
@@ -11764,6 +14447,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<ImageViewMinLodCreateInfoEXT, ImageViewCreateInfo>
   {
@@ -11782,6 +14466,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
   {
@@ -11790,6 +14475,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -11808,6 +14494,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, DeviceCreateInfo>
   {
@@ -11817,6 +14504,34 @@
     };
   };
 
+  //=== VK_EXT_shader_tile_image ===
+  template <>
+  struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderTileImagePropertiesEXT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_opacity_micromap ===
   template <>
   struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, PhysicalDeviceFeatures2>
@@ -11826,6 +14541,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, DeviceCreateInfo>
   {
@@ -11834,6 +14550,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceOpacityMicromapPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -11842,6 +14559,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AccelerationStructureTrianglesOpacityMicromapEXT, AccelerationStructureGeometryTrianglesDataKHR>
   {
@@ -11851,6 +14569,82 @@
     };
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  template <>
+  struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDisplacementMicromapPropertiesNV, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<AccelerationStructureTrianglesDisplacementMicromapNV, AccelerationStructureGeometryTrianglesDataKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_HUAWEI_cluster_culling_shader ===
+  template <>
+  struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI, PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_border_color_swizzle ===
   template <>
   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, PhysicalDeviceFeatures2>
@@ -11860,6 +14654,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, DeviceCreateInfo>
   {
@@ -11868,6 +14663,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SamplerBorderColorComponentMappingCreateInfoEXT, SamplerCreateInfo>
   {
@@ -11886,6 +14682,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, DeviceCreateInfo>
   {
@@ -11895,6 +14692,90 @@
     };
   };
 
+  //=== VK_ARM_shader_core_properties ===
+  template <>
+  struct StructExtends<PhysicalDeviceShaderCorePropertiesARM, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_ARM_scheduling_controls ===
+  template <>
+  struct StructExtends<DeviceQueueShaderCoreControlCreateInfoARM, DeviceQueueCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<DeviceQueueShaderCoreControlCreateInfoARM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceSchedulingControlsFeaturesARM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceSchedulingControlsFeaturesARM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceSchedulingControlsPropertiesARM, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  template <>
+  struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ImageViewSlicedCreateInfoEXT, ImageViewCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_VALVE_descriptor_set_host_mapping ===
   template <>
   struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, PhysicalDeviceFeatures2>
@@ -11904,6 +14785,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, DeviceCreateInfo>
   {
@@ -11922,6 +14804,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, DeviceCreateInfo>
   {
@@ -11940,6 +14823,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, DeviceCreateInfo>
   {
@@ -11949,6 +14833,61 @@
     };
   };
 
+  //=== VK_ARM_render_pass_striped ===
+  template <>
+  struct StructExtends<PhysicalDeviceRenderPassStripedFeaturesARM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRenderPassStripedFeaturesARM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRenderPassStripedPropertiesARM, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<RenderPassStripeBeginInfoARM, RenderingInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<RenderPassStripeBeginInfoARM, RenderPassBeginInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<RenderPassStripeSubmitInfoARM, CommandBufferSubmitInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_QCOM_fragment_density_map_offset ===
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, PhysicalDeviceFeatures2>
@@ -11958,6 +14897,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, DeviceCreateInfo>
   {
@@ -11966,6 +14906,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, PhysicalDeviceProperties2>
   {
@@ -11974,6 +14915,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<SubpassFragmentDensityMapOffsetEndInfoQCOM, SubpassEndInfo>
   {
@@ -11992,6 +14934,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCopyMemoryIndirectFeaturesNV, DeviceCreateInfo>
   {
@@ -12000,6 +14943,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceCopyMemoryIndirectPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -12018,6 +14962,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMemoryDecompressionFeaturesNV, DeviceCreateInfo>
   {
@@ -12026,6 +14971,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMemoryDecompressionPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -12035,6 +14981,25 @@
     };
   };
 
+  //=== VK_NV_device_generated_commands_compute ===
+  template <>
+  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_NV_linear_color_attachment ===
   template <>
   struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, PhysicalDeviceFeatures2>
@@ -12044,6 +15009,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, DeviceCreateInfo>
   {
@@ -12062,6 +15028,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, DeviceCreateInfo>
   {
@@ -12080,6 +15047,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, PhysicalDeviceFeatures2>
   {
@@ -12088,6 +15056,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, DeviceCreateInfo>
   {
@@ -12096,6 +15065,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceImageProcessingPropertiesQCOM, PhysicalDeviceProperties2>
   {
@@ -12105,6 +15075,71 @@
     };
   };
 
+  //=== VK_EXT_nested_command_buffer ===
+  template <>
+  struct StructExtends<PhysicalDeviceNestedCommandBufferFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceNestedCommandBufferFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceNestedCommandBufferPropertiesEXT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_EXT_external_memory_acquire_unmodified ===
+  template <>
+  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_extended_dynamic_state3 ===
   template <>
   struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, PhysicalDeviceFeatures2>
@@ -12114,6 +15149,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, DeviceCreateInfo>
   {
@@ -12122,6 +15158,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceExtendedDynamicState3PropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -12140,6 +15177,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, DeviceCreateInfo>
   {
@@ -12148,6 +15186,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassCreationControlEXT, RenderPassCreateInfo2>
   {
@@ -12156,6 +15195,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassCreationControlEXT, SubpassDescription2>
   {
@@ -12164,6 +15204,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassCreationFeedbackCreateInfoEXT, RenderPassCreateInfo2>
   {
@@ -12172,6 +15213,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<RenderPassSubpassFeedbackCreateInfoEXT, SubpassDescription2>
   {
@@ -12200,6 +15242,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, DeviceCreateInfo>
   {
@@ -12208,6 +15251,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderModuleIdentifierPropertiesEXT, PhysicalDeviceProperties2>
   {
@@ -12216,6 +15260,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PipelineShaderStageModuleIdentifierCreateInfoEXT, PipelineShaderStageCreateInfo>
   {
@@ -12234,6 +15279,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, DeviceCreateInfo>
   {
@@ -12252,6 +15298,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceOpticalFlowFeaturesNV, DeviceCreateInfo>
   {
@@ -12260,6 +15307,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceOpticalFlowPropertiesNV, PhysicalDeviceProperties2>
   {
@@ -12268,6 +15316,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpticalFlowImageFormatInfoNV, PhysicalDeviceImageFormatInfo2>
   {
@@ -12276,6 +15325,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpticalFlowImageFormatInfoNV, ImageCreateInfo>
   {
@@ -12284,6 +15334,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<OpticalFlowSessionCreatePrivateDataInfoNV, OpticalFlowSessionCreateInfoNV>
   {
@@ -12302,6 +15353,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceLegacyDitheringFeaturesEXT, DeviceCreateInfo>
   {
@@ -12320,6 +15372,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDevicePipelineProtectedAccessFeaturesEXT, DeviceCreateInfo>
   {
@@ -12329,6 +15382,192 @@
     };
   };
 
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_format_resolve ===
+  template <>
+  struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExternalFormatResolvePropertiesANDROID, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<AndroidHardwareBufferFormatResolvePropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_KHR_maintenance5 ===
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance5FeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance5FeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance5PropertiesKHR, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, ComputePipelineCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, GraphicsPipelineCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, RayTracingPipelineCreateInfoNV>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, RayTracingPipelineCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BufferUsageFlags2CreateInfoKHR, BufferViewCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BufferUsageFlags2CreateInfoKHR, BufferCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BufferUsageFlags2CreateInfoKHR, PhysicalDeviceExternalBufferInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BufferUsageFlags2CreateInfoKHR, DescriptorBufferBindingInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_ray_tracing_position_fetch ===
+  template <>
+  struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_EXT_shader_object ===
+  template <>
+  struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceShaderObjectPropertiesEXT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_QCOM_tile_properties ===
   template <>
   struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, PhysicalDeviceFeatures2>
@@ -12338,6 +15577,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, DeviceCreateInfo>
   {
@@ -12356,6 +15596,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, DeviceCreateInfo>
   {
@@ -12364,6 +15605,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<AmigoProfilingSubmitInfoSEC, SubmitInfo>
   {
@@ -12382,6 +15624,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, DeviceCreateInfo>
   {
@@ -12400,6 +15643,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, PhysicalDeviceFeatures2>
   {
@@ -12408,6 +15652,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, DeviceCreateInfo>
   {
@@ -12417,6 +15662,34 @@
     };
   };
 
+  //=== VK_NV_extended_sparse_address_space ===
+  template <>
+  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpacePropertiesNV, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_EXT_mutable_descriptor_type ===
   template <>
   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, PhysicalDeviceFeatures2>
@@ -12426,6 +15699,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, DeviceCreateInfo>
   {
@@ -12434,6 +15708,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorSetLayoutCreateInfo>
   {
@@ -12442,6 +15717,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorPoolCreateInfo>
   {
@@ -12451,6 +15727,16 @@
     };
   };
 
+  //=== VK_EXT_layer_settings ===
+  template <>
+  struct StructExtends<LayerSettingsCreateInfoEXT, InstanceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_ARM_shader_core_builtins ===
   template <>
   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, PhysicalDeviceFeatures2>
@@ -12460,6 +15746,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, DeviceCreateInfo>
   {
@@ -12468,6 +15755,7 @@
       value = true
     };
   };
+
   template <>
   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsPropertiesARM, PhysicalDeviceProperties2>
   {
@@ -12477,6 +15765,511 @@
     };
   };
 
+  //=== VK_EXT_pipeline_library_group_handles ===
+  template <>
+  struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_EXT_dynamic_rendering_unused_attachments ===
+  template <>
+  struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_NV_low_latency2 ===
+  template <>
+  struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<SwapchainLatencyCreateInfoNV, SwapchainCreateInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<LatencySurfaceCapabilitiesNV, SurfaceCapabilities2KHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_cooperative_matrix ===
+  template <>
+  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesKHR, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_QCOM_multiview_per_view_render_areas ===
+  template <>
+  struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderPassBeginInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderingInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_video_maintenance1 ===
+  template <>
+  struct StructExtends<PhysicalDeviceVideoMaintenance1FeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceVideoMaintenance1FeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoInlineQueryInfoKHR, VideoDecodeInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<VideoInlineQueryInfoKHR, VideoEncodeInfoKHR>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_NV_per_stage_descriptor_set ===
+  template <>
+  struct StructExtends<PhysicalDevicePerStageDescriptorSetFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDevicePerStageDescriptorSetFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_QCOM_image_processing2 ===
+  template <>
+  struct StructExtends<PhysicalDeviceImageProcessing2FeaturesQCOM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceImageProcessing2FeaturesQCOM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceImageProcessing2PropertiesQCOM, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<SamplerBlockMatchWindowCreateInfoQCOM, SamplerCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  template <>
+  struct StructExtends<PhysicalDeviceCubicWeightsFeaturesQCOM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCubicWeightsFeaturesQCOM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<SamplerCubicWeightsCreateInfoQCOM, SamplerCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BlitImageCubicWeightsInfoQCOM, BlitImageInfo2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_QCOM_ycbcr_degamma ===
+  template <>
+  struct StructExtends<PhysicalDeviceYcbcrDegammaFeaturesQCOM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceYcbcrDegammaFeaturesQCOM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM, SamplerYcbcrConversionCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_QCOM_filter_cubic_clamp ===
+  template <>
+  struct StructExtends<PhysicalDeviceCubicClampFeaturesQCOM, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceCubicClampFeaturesQCOM, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+  template <>
+  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_vertex_attribute_divisor ===
+  template <>
+  struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesKHR, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineVertexInputDivisorStateCreateInfoKHR, PipelineVertexInputStateCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+  template <>
+  struct StructExtends<ScreenBufferFormatPropertiesQNX, ScreenBufferPropertiesQNX>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ImportScreenBufferInfoQNX, MemoryAllocateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalFormatQNX, ImageCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<ExternalFormatQNX, SamplerYcbcrConversionCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_MSFT_layered_driver ===
+  template <>
+  struct StructExtends<PhysicalDeviceLayeredDriverPropertiesMSFT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_KHR_maintenance6 ===
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance6FeaturesKHR, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance6FeaturesKHR, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceMaintenance6PropertiesKHR, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BindMemoryStatusKHR, BindBufferMemoryInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<BindMemoryStatusKHR, BindImageMemoryInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  //=== VK_NV_descriptor_pool_overallocation ===
+  template <>
+  struct StructExtends<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
 #endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
 
 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
@@ -12491,7 +16284,7 @@
     {
       if ( !vulkanLibraryName.empty() )
       {
-#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
 #  elif defined( _WIN32 )
         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
@@ -12501,7 +16294,7 @@
       }
       else
       {
-#  if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
         if ( m_library == nullptr )
         {
@@ -12509,6 +16302,10 @@
         }
 #  elif defined( __APPLE__ )
         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
+        if ( m_library == nullptr )
+        {
+          m_library = dlopen( "libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL );
+        }
 #  elif defined( _WIN32 )
         m_library = ::LoadLibraryA( "vulkan-1.dll" );
 #  else
@@ -12544,7 +16341,7 @@
     {
       if ( m_library )
       {
-#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
         dlclose( m_library );
 #  elif defined( _WIN32 )
         ::FreeLibrary( m_library );
@@ -12557,7 +16354,7 @@
     template <typename T>
     T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT
     {
-#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
       return (T)dlsym( m_library, function );
 #  elif defined( _WIN32 )
       return ( T )::GetProcAddress( m_library, function );
@@ -12572,7 +16369,7 @@
     }
 
   private:
-#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
+#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
     void * m_library;
 #  elif defined( _WIN32 )
     ::HINSTANCE m_library;
@@ -12895,7 +16692,6 @@
     PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
     PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
     PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
     PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
@@ -12909,27 +16705,9 @@
     PFN_vkCmdBeginVideoCodingKHR                    vkCmdBeginVideoCodingKHR                    = 0;
     PFN_vkCmdEndVideoCodingKHR                      vkCmdEndVideoCodingKHR                      = 0;
     PFN_vkCmdControlVideoCodingKHR                  vkCmdControlVideoCodingKHR                  = 0;
-#else
-    PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder           = 0;
-    PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder       = 0;
-    PFN_dummy vkCreateVideoSessionKHR_placeholder                           = 0;
-    PFN_dummy vkDestroyVideoSessionKHR_placeholder                          = 0;
-    PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder            = 0;
-    PFN_dummy vkBindVideoSessionMemoryKHR_placeholder                       = 0;
-    PFN_dummy vkCreateVideoSessionParametersKHR_placeholder                 = 0;
-    PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder                 = 0;
-    PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder                = 0;
-    PFN_dummy vkCmdBeginVideoCodingKHR_placeholder                          = 0;
-    PFN_dummy vkCmdEndVideoCodingKHR_placeholder                            = 0;
-    PFN_dummy vkCmdControlVideoCodingKHR_placeholder                        = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_decode_queue ===
     PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
-#else
-    PFN_dummy vkCmdDecodeVideoKHR_placeholder                               = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     //=== VK_EXT_transform_feedback ===
     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
@@ -13079,7 +16857,9 @@
     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
 
     //=== VK_EXT_discard_rectangles ===
-    PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
+    PFN_vkCmdSetDiscardRectangleEXT       vkCmdSetDiscardRectangleEXT       = 0;
+    PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT = 0;
+    PFN_vkCmdSetDiscardRectangleModeEXT   vkCmdSetDiscardRectangleModeEXT   = 0;
 
     //=== VK_EXT_hdr_metadata ===
     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
@@ -13161,6 +16941,25 @@
     PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder           = 0;
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_AMDX_shader_enqueue ===
+    PFN_vkCreateExecutionGraphPipelinesAMDX        vkCreateExecutionGraphPipelinesAMDX        = 0;
+    PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX = 0;
+    PFN_vkGetExecutionGraphPipelineNodeIndexAMDX   vkGetExecutionGraphPipelineNodeIndexAMDX   = 0;
+    PFN_vkCmdInitializeGraphScratchMemoryAMDX      vkCmdInitializeGraphScratchMemoryAMDX      = 0;
+    PFN_vkCmdDispatchGraphAMDX                     vkCmdDispatchGraphAMDX                     = 0;
+    PFN_vkCmdDispatchGraphIndirectAMDX             vkCmdDispatchGraphIndirectAMDX             = 0;
+    PFN_vkCmdDispatchGraphIndirectCountAMDX        vkCmdDispatchGraphIndirectCountAMDX        = 0;
+#else
+    PFN_dummy vkCreateExecutionGraphPipelinesAMDX_placeholder               = 0;
+    PFN_dummy vkGetExecutionGraphPipelineScratchSizeAMDX_placeholder        = 0;
+    PFN_dummy vkGetExecutionGraphPipelineNodeIndexAMDX_placeholder          = 0;
+    PFN_dummy vkCmdInitializeGraphScratchMemoryAMDX_placeholder             = 0;
+    PFN_dummy vkCmdDispatchGraphAMDX_placeholder                            = 0;
+    PFN_dummy vkCmdDispatchGraphIndirectAMDX_placeholder                    = 0;
+    PFN_dummy vkCmdDispatchGraphIndirectCountAMDX_placeholder               = 0;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
     //=== VK_EXT_sample_locations ===
     PFN_vkCmdSetSampleLocationsEXT                  vkCmdSetSampleLocationsEXT                  = 0;
     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
@@ -13188,6 +16987,15 @@
     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
     PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
 
+    //=== VK_KHR_ray_tracing_pipeline ===
+    PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
+    PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
+    PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
+    PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
+    PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
+    PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
+    PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
+
     //=== VK_KHR_sampler_ycbcr_conversion ===
     PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
@@ -13247,7 +17055,8 @@
     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
 
     //=== VK_NV_scissor_exclusive ===
-    PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
+    PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV = 0;
+    PFN_vkCmdSetExclusiveScissorNV       vkCmdSetExclusiveScissorNV       = 0;
 
     //=== VK_NV_device_diagnostic_checkpoints ===
     PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
@@ -13358,6 +17167,17 @@
     PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
 
+    //=== VK_EXT_host_image_copy ===
+    PFN_vkCopyMemoryToImageEXT          vkCopyMemoryToImageEXT          = 0;
+    PFN_vkCopyImageToMemoryEXT          vkCopyImageToMemoryEXT          = 0;
+    PFN_vkCopyImageToImageEXT           vkCopyImageToImageEXT           = 0;
+    PFN_vkTransitionImageLayoutEXT      vkTransitionImageLayoutEXT      = 0;
+    PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
+
+    //=== VK_KHR_map_memory2 ===
+    PFN_vkMapMemory2KHR   vkMapMemory2KHR   = 0;
+    PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR = 0;
+
     //=== VK_EXT_swapchain_maintenance1 ===
     PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0;
 
@@ -13369,6 +17189,9 @@
     PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
     PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
 
+    //=== VK_EXT_depth_bias_control ===
+    PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT = 0;
+
     //=== VK_EXT_acquire_drm_display ===
     PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
     PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
@@ -13379,11 +17202,26 @@
     PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
     PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_encode_queue ===
-    PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
+    PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 0;
+    PFN_vkGetEncodedVideoSessionParametersKHR                   vkGetEncodedVideoSessionParametersKHR                   = 0;
+    PFN_vkCmdEncodeVideoKHR                                     vkCmdEncodeVideoKHR                                     = 0;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+    PFN_vkCreateCudaModuleNV    vkCreateCudaModuleNV    = 0;
+    PFN_vkGetCudaModuleCacheNV  vkGetCudaModuleCacheNV  = 0;
+    PFN_vkCreateCudaFunctionNV  vkCreateCudaFunctionNV  = 0;
+    PFN_vkDestroyCudaModuleNV   vkDestroyCudaModuleNV   = 0;
+    PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV = 0;
+    PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV = 0;
 #else
-    PFN_dummy vkCmdEncodeVideoKHR_placeholder                               = 0;
+    PFN_dummy vkCreateCudaModuleNV_placeholder                              = 0;
+    PFN_dummy vkGetCudaModuleCacheNV_placeholder                            = 0;
+    PFN_dummy vkCreateCudaFunctionNV_placeholder                            = 0;
+    PFN_dummy vkDestroyCudaModuleNV_placeholder                             = 0;
+    PFN_dummy vkDestroyCudaFunctionNV_placeholder                           = 0;
+    PFN_dummy vkCmdCudaLaunchKernelNV_placeholder                           = 0;
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #if defined( VK_USE_PLATFORM_METAL_EXT )
@@ -13432,9 +17270,6 @@
     PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
     PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
 
-    //=== VK_EXT_image_compression_control ===
-    PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
-
     //=== VK_EXT_device_fault ===
     PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0;
 
@@ -13456,15 +17291,6 @@
     PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-    //=== VK_KHR_ray_tracing_pipeline ===
-    PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
-    PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
-    PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
-    PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
-    PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
-    PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
-    PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
-
     //=== VK_EXT_vertex_input_dynamic_state ===
     PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
 
@@ -13556,6 +17382,10 @@
     PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0;
     PFN_vkGetMicromapBuildSizesEXT          vkGetMicromapBuildSizesEXT          = 0;
 
+    //=== VK_HUAWEI_cluster_culling_shader ===
+    PFN_vkCmdDrawClusterHUAWEI         vkCmdDrawClusterHUAWEI         = 0;
+    PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI = 0;
+
     //=== VK_EXT_pageable_device_local_memory ===
     PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
 
@@ -13576,6 +17406,11 @@
     PFN_vkCmdDecompressMemoryNV              vkCmdDecompressMemoryNV              = 0;
     PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0;
 
+    //=== VK_NV_device_generated_commands_compute ===
+    PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV = 0;
+    PFN_vkCmdUpdatePipelineIndirectBufferNV       vkCmdUpdatePipelineIndirectBufferNV       = 0;
+    PFN_vkGetPipelineIndirectDeviceAddressNV      vkGetPipelineIndirectDeviceAddressNV      = 0;
+
     //=== VK_EXT_extended_dynamic_state3 ===
     PFN_vkCmdSetTessellationDomainOriginEXT         vkCmdSetTessellationDomainOriginEXT         = 0;
     PFN_vkCmdSetDepthClampEnableEXT                 vkCmdSetDepthClampEnableEXT                 = 0;
@@ -13620,10 +17455,54 @@
     PFN_vkBindOpticalFlowSessionImageNV              vkBindOpticalFlowSessionImageNV              = 0;
     PFN_vkCmdOpticalFlowExecuteNV                    vkCmdOpticalFlowExecuteNV                    = 0;
 
+    //=== VK_KHR_maintenance5 ===
+    PFN_vkCmdBindIndexBuffer2KHR             vkCmdBindIndexBuffer2KHR             = 0;
+    PFN_vkGetRenderingAreaGranularityKHR     vkGetRenderingAreaGranularityKHR     = 0;
+    PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR = 0;
+    PFN_vkGetImageSubresourceLayout2KHR      vkGetImageSubresourceLayout2KHR      = 0;
+
+    //=== VK_EXT_shader_object ===
+    PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
+    PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
+    PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
+    PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
+
     //=== VK_QCOM_tile_properties ===
     PFN_vkGetFramebufferTilePropertiesQCOM      vkGetFramebufferTilePropertiesQCOM      = 0;
     PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
 
+    //=== VK_NV_low_latency2 ===
+    PFN_vkSetLatencySleepModeNV  vkSetLatencySleepModeNV  = 0;
+    PFN_vkLatencySleepNV         vkLatencySleepNV         = 0;
+    PFN_vkSetLatencyMarkerNV     vkSetLatencyMarkerNV     = 0;
+    PFN_vkGetLatencyTimingsNV    vkGetLatencyTimingsNV    = 0;
+    PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0;
+
+    //=== VK_KHR_cooperative_matrix ===
+    PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0;
+
+    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+    PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    //=== VK_QNX_external_memory_screen_buffer ===
+    PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX = 0;
+#else
+    PFN_dummy vkGetScreenBufferPropertiesQNX_placeholder                    = 0;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+    //=== VK_KHR_calibrated_timestamps ===
+    PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 0;
+    PFN_vkGetCalibratedTimestampsKHR                   vkGetCalibratedTimestampsKHR                   = 0;
+
+    //=== VK_KHR_maintenance6 ===
+    PFN_vkCmdBindDescriptorSets2KHR                   vkCmdBindDescriptorSets2KHR                   = 0;
+    PFN_vkCmdPushConstants2KHR                        vkCmdPushConstants2KHR                        = 0;
+    PFN_vkCmdPushDescriptorSet2KHR                    vkCmdPushDescriptorSet2KHR                    = 0;
+    PFN_vkCmdPushDescriptorSetWithTemplate2KHR        vkCmdPushDescriptorSetWithTemplate2KHR        = 0;
+    PFN_vkCmdSetDescriptorBufferOffsets2EXT           vkCmdSetDescriptorBufferOffsets2EXT           = 0;
+    PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0;
+
   public:
     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT                                    = default;
     DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -13633,6 +17512,33 @@
       init( getInstanceProcAddr );
     }
 
+    // This interface does not require a linked vulkan library.
+    DispatchLoaderDynamic( VkInstance                instance,
+                           PFN_vkGetInstanceProcAddr getInstanceProcAddr,
+                           VkDevice                  device            = {},
+                           PFN_vkGetDeviceProcAddr   getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
+    {
+      init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
+    }
+
+    template <typename DynamicLoader
+#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
+              = VULKAN_HPP_NAMESPACE::DynamicLoader
+#endif
+              >
+    void init()
+    {
+      static DynamicLoader dl;
+      init( dl );
+    }
+
+    template <typename DynamicLoader>
+    void init( DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
+    {
+      PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
+      init( getInstanceProcAddr );
+    }
+
     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getInstanceProcAddr );
@@ -13650,15 +17556,6 @@
     }
 
     // This interface does not require a linked vulkan library.
-    DispatchLoaderDynamic( VkInstance                instance,
-                           PFN_vkGetInstanceProcAddr getInstanceProcAddr,
-                           VkDevice                  device            = {},
-                           PFN_vkGetDeviceProcAddr   getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
-    {
-      init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
-    }
-
-    // This interface does not require a linked vulkan library.
     void init( VkInstance                instance,
                PFN_vkGetInstanceProcAddr getInstanceProcAddr,
                VkDevice                  device              = {},
@@ -13994,7 +17891,6 @@
       vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
       vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_queue ===
       vkGetPhysicalDeviceVideoCapabilitiesKHR =
         PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
@@ -14011,12 +17907,9 @@
       vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
       vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
       vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_decode_queue ===
       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_EXT_transform_feedback ===
       vkCmdBindTransformFeedbackBuffersEXT =
@@ -14207,7 +18100,9 @@
       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
 
       //=== VK_EXT_discard_rectangles ===
-      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
+      vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
+      vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEnableEXT" ) );
+      vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleModeEXT" ) );
 
       //=== VK_EXT_hdr_metadata ===
       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
@@ -14298,6 +18193,20 @@
         PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
+      vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetInstanceProcAddr( instance, "vkCreateExecutionGraphPipelinesAMDX" ) );
+      vkGetExecutionGraphPipelineScratchSizeAMDX =
+        PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetInstanceProcAddr( instance, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) );
+      vkGetExecutionGraphPipelineNodeIndexAMDX =
+        PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetInstanceProcAddr( instance, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) );
+      vkCmdInitializeGraphScratchMemoryAMDX =
+        PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetInstanceProcAddr( instance, "vkCmdInitializeGraphScratchMemoryAMDX" ) );
+      vkCmdDispatchGraphAMDX              = PFN_vkCmdDispatchGraphAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphAMDX" ) );
+      vkCmdDispatchGraphIndirectAMDX      = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphIndirectAMDX" ) );
+      vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphIndirectCountAMDX" ) );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
       //=== VK_EXT_sample_locations ===
       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
       vkGetPhysicalDeviceMultisamplePropertiesEXT =
@@ -14343,6 +18252,19 @@
       vkGetAccelerationStructureBuildSizesKHR =
         PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
 
+      //=== VK_KHR_ray_tracing_pipeline ===
+      vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
+      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
+      vkGetRayTracingShaderGroupHandlesKHR =
+        PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
+      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
+        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
+      vkGetRayTracingShaderGroupStackSizeKHR =
+        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
+      vkCmdSetRayTracingPipelineStackSizeKHR =
+        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
       //=== VK_KHR_sampler_ycbcr_conversion ===
       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
       if ( !vkCreateSamplerYcbcrConversion )
@@ -14415,7 +18337,11 @@
       //=== VK_EXT_calibrated_timestamps ===
       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
         PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
+      if ( !vkGetPhysicalDeviceCalibrateableTimeDomainsKHR )
+        vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
+      if ( !vkGetCalibratedTimestampsKHR )
+        vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT;
 
       //=== VK_NV_mesh_shader ===
       vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
@@ -14423,7 +18349,8 @@
       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
 
       //=== VK_NV_scissor_exclusive ===
-      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
+      vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorEnableNV" ) );
+      vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
 
       //=== VK_NV_device_diagnostic_checkpoints ===
       vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
@@ -14582,6 +18509,19 @@
       vkGetPipelineExecutableInternalRepresentationsKHR =
         PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
 
+      //=== VK_EXT_host_image_copy ===
+      vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyMemoryToImageEXT" ) );
+      vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToMemoryEXT" ) );
+      vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToImageEXT" ) );
+      vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetInstanceProcAddr( instance, "vkTransitionImageLayoutEXT" ) );
+      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" ) );
+      if ( !vkGetImageSubresourceLayout2KHR )
+        vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT;
+
+      //=== VK_KHR_map_memory2 ===
+      vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetInstanceProcAddr( instance, "vkMapMemory2KHR" ) );
+      vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetInstanceProcAddr( instance, "vkUnmapMemory2KHR" ) );
+
       //=== VK_EXT_swapchain_maintenance1 ===
       vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetInstanceProcAddr( instance, "vkReleaseSwapchainImagesEXT" ) );
 
@@ -14594,6 +18534,9 @@
       vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
       vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
 
+      //=== VK_EXT_depth_bias_control ===
+      vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias2EXT" ) );
+
       //=== VK_EXT_acquire_drm_display ===
       vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
       vkGetDrmDisplayEXT     = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
@@ -14612,9 +18555,21 @@
       if ( !vkGetPrivateData )
         vkGetPrivateData = vkGetPrivateDataEXT;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_encode_queue ===
+      vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
+        vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" ) );
+      vkGetEncodedVideoSessionParametersKHR =
+        PFN_vkGetEncodedVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkGetEncodedVideoSessionParametersKHR" ) );
       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_NV_cuda_kernel_launch ===
+      vkCreateCudaModuleNV    = PFN_vkCreateCudaModuleNV( vkGetInstanceProcAddr( instance, "vkCreateCudaModuleNV" ) );
+      vkGetCudaModuleCacheNV  = PFN_vkGetCudaModuleCacheNV( vkGetInstanceProcAddr( instance, "vkGetCudaModuleCacheNV" ) );
+      vkCreateCudaFunctionNV  = PFN_vkCreateCudaFunctionNV( vkGetInstanceProcAddr( instance, "vkCreateCudaFunctionNV" ) );
+      vkDestroyCudaModuleNV   = PFN_vkDestroyCudaModuleNV( vkGetInstanceProcAddr( instance, "vkDestroyCudaModuleNV" ) );
+      vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetInstanceProcAddr( instance, "vkDestroyCudaFunctionNV" ) );
+      vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetInstanceProcAddr( instance, "vkCmdCudaLaunchKernelNV" ) );
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #if defined( VK_USE_PLATFORM_METAL_EXT )
@@ -14692,9 +18647,6 @@
       if ( !vkCmdResolveImage2 )
         vkCmdResolveImage2 = vkCmdResolveImage2KHR;
 
-      //=== VK_EXT_image_compression_control ===
-      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" ) );
-
       //=== VK_EXT_device_fault ===
       vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceFaultInfoEXT" ) );
 
@@ -14711,19 +18663,6 @@
         PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-      //=== VK_KHR_ray_tracing_pipeline ===
-      vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
-      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
-      vkGetRayTracingShaderGroupHandlesKHR =
-        PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
-      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
-        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
-      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
-      vkGetRayTracingShaderGroupStackSizeKHR =
-        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
-      vkCmdSetRayTracingPipelineStackSizeKHR =
-        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
-
       //=== VK_EXT_vertex_input_dynamic_state ===
       vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
 
@@ -14813,6 +18752,10 @@
       vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceMicromapCompatibilityEXT" ) );
       vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetInstanceProcAddr( instance, "vkGetMicromapBuildSizesEXT" ) );
 
+      //=== VK_HUAWEI_cluster_culling_shader ===
+      vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterHUAWEI" ) );
+      vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterIndirectHUAWEI" ) );
+
       //=== VK_EXT_pageable_device_local_memory ===
       vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) );
 
@@ -14844,6 +18787,13 @@
       vkCmdDecompressMemoryIndirectCountNV =
         PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryIndirectCountNV" ) );
 
+      //=== VK_NV_device_generated_commands_compute ===
+      vkGetPipelineIndirectMemoryRequirementsNV =
+        PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
+      vkCmdUpdatePipelineIndirectBufferNV = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetInstanceProcAddr( instance, "vkCmdUpdatePipelineIndirectBufferNV" ) );
+      vkGetPipelineIndirectDeviceAddressNV =
+        PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectDeviceAddressNV" ) );
+
       //=== VK_EXT_extended_dynamic_state3 ===
       vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetInstanceProcAddr( instance, "vkCmdSetTessellationDomainOriginEXT" ) );
       vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClampEnableEXT" ) );
@@ -14895,10 +18845,58 @@
       vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetInstanceProcAddr( instance, "vkBindOpticalFlowSessionImageNV" ) );
       vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetInstanceProcAddr( instance, "vkCmdOpticalFlowExecuteNV" ) );
 
+      //=== VK_KHR_maintenance5 ===
+      vkCmdBindIndexBuffer2KHR         = PFN_vkCmdBindIndexBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer2KHR" ) );
+      vkGetRenderingAreaGranularityKHR = PFN_vkGetRenderingAreaGranularityKHR( vkGetInstanceProcAddr( instance, "vkGetRenderingAreaGranularityKHR" ) );
+      vkGetDeviceImageSubresourceLayoutKHR =
+        PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSubresourceLayoutKHR" ) );
+      vkGetImageSubresourceLayout2KHR = PFN_vkGetImageSubresourceLayout2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2KHR" ) );
+
+      //=== VK_EXT_shader_object ===
+      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) );
+      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) );
+      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" ) );
+      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" ) );
+
       //=== VK_QCOM_tile_properties ===
       vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" ) );
       vkGetDynamicRenderingTilePropertiesQCOM =
         PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
+
+      //=== VK_NV_low_latency2 ===
+      vkSetLatencySleepModeNV  = PFN_vkSetLatencySleepModeNV( vkGetInstanceProcAddr( instance, "vkSetLatencySleepModeNV" ) );
+      vkLatencySleepNV         = PFN_vkLatencySleepNV( vkGetInstanceProcAddr( instance, "vkLatencySleepNV" ) );
+      vkSetLatencyMarkerNV     = PFN_vkSetLatencyMarkerNV( vkGetInstanceProcAddr( instance, "vkSetLatencyMarkerNV" ) );
+      vkGetLatencyTimingsNV    = PFN_vkGetLatencyTimingsNV( vkGetInstanceProcAddr( instance, "vkGetLatencyTimingsNV" ) );
+      vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetInstanceProcAddr( instance, "vkQueueNotifyOutOfBandNV" ) );
+
+      //=== VK_KHR_cooperative_matrix ===
+      vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR =
+        PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) );
+
+      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+      vkCmdSetAttachmentFeedbackLoopEnableEXT =
+        PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      //=== VK_QNX_external_memory_screen_buffer ===
+      vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetInstanceProcAddr( instance, "vkGetScreenBufferPropertiesQNX" ) );
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+      //=== VK_KHR_calibrated_timestamps ===
+      vkGetPhysicalDeviceCalibrateableTimeDomainsKHR =
+        PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" ) );
+      vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsKHR" ) );
+
+      //=== VK_KHR_maintenance6 ===
+      vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets2KHR" ) );
+      vkCmdPushConstants2KHR      = PFN_vkCmdPushConstants2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushConstants2KHR" ) );
+      vkCmdPushDescriptorSet2KHR  = PFN_vkCmdPushDescriptorSet2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSet2KHR" ) );
+      vkCmdPushDescriptorSetWithTemplate2KHR =
+        PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplate2KHR" ) );
+      vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
+      vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
+        PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
     }
 
     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
@@ -15123,7 +19121,6 @@
       vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
       vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_queue ===
       vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
       vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
@@ -15136,12 +19133,9 @@
       vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
       vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
       vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_decode_queue ===
       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_EXT_transform_feedback ===
       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
@@ -15257,7 +19251,9 @@
       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
 
       //=== VK_EXT_discard_rectangles ===
-      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
+      vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
+      vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" ) );
+      vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" ) );
 
       //=== VK_EXT_hdr_metadata ===
       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
@@ -15311,6 +19307,20 @@
         PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
+      vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetDeviceProcAddr( device, "vkCreateExecutionGraphPipelinesAMDX" ) );
+      vkGetExecutionGraphPipelineScratchSizeAMDX =
+        PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) );
+      vkGetExecutionGraphPipelineNodeIndexAMDX =
+        PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) );
+      vkCmdInitializeGraphScratchMemoryAMDX =
+        PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetDeviceProcAddr( device, "vkCmdInitializeGraphScratchMemoryAMDX" ) );
+      vkCmdDispatchGraphAMDX              = PFN_vkCmdDispatchGraphAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphAMDX" ) );
+      vkCmdDispatchGraphIndirectAMDX      = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectAMDX" ) );
+      vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectCountAMDX" ) );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
       //=== VK_EXT_sample_locations ===
       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
 
@@ -15354,6 +19364,18 @@
       vkGetAccelerationStructureBuildSizesKHR =
         PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
 
+      //=== VK_KHR_ray_tracing_pipeline ===
+      vkCmdTraceRaysKHR                    = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
+      vkCreateRayTracingPipelinesKHR       = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
+      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
+      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
+        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
+      vkGetRayTracingShaderGroupStackSizeKHR =
+        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
+      vkCmdSetRayTracingPipelineStackSizeKHR =
+        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
       //=== VK_KHR_sampler_ycbcr_conversion ===
       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
       if ( !vkCreateSamplerYcbcrConversion )
@@ -15424,6 +19446,8 @@
 
       //=== VK_EXT_calibrated_timestamps ===
       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+      if ( !vkGetCalibratedTimestampsKHR )
+        vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT;
 
       //=== VK_NV_mesh_shader ===
       vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
@@ -15431,7 +19455,8 @@
       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
 
       //=== VK_NV_scissor_exclusive ===
-      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
+      vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" ) );
+      vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
 
       //=== VK_NV_device_diagnostic_checkpoints ===
       vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
@@ -15556,6 +19581,19 @@
       vkGetPipelineExecutableInternalRepresentationsKHR =
         PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
 
+      //=== VK_EXT_host_image_copy ===
+      vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToImageEXT" ) );
+      vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyImageToMemoryEXT" ) );
+      vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetDeviceProcAddr( device, "vkCopyImageToImageEXT" ) );
+      vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetDeviceProcAddr( device, "vkTransitionImageLayoutEXT" ) );
+      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
+      if ( !vkGetImageSubresourceLayout2KHR )
+        vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT;
+
+      //=== VK_KHR_map_memory2 ===
+      vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetDeviceProcAddr( device, "vkMapMemory2KHR" ) );
+      vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" ) );
+
       //=== VK_EXT_swapchain_maintenance1 ===
       vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) );
 
@@ -15568,6 +19606,9 @@
       vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
       vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
 
+      //=== VK_EXT_depth_bias_control ===
+      vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias2EXT" ) );
+
       //=== VK_EXT_private_data ===
       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
       if ( !vkCreatePrivateDataSlot )
@@ -15582,9 +19623,19 @@
       if ( !vkGetPrivateData )
         vkGetPrivateData = vkGetPrivateDataEXT;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_encode_queue ===
+      vkGetEncodedVideoSessionParametersKHR =
+        PFN_vkGetEncodedVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkGetEncodedVideoSessionParametersKHR" ) );
       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_NV_cuda_kernel_launch ===
+      vkCreateCudaModuleNV    = PFN_vkCreateCudaModuleNV( vkGetDeviceProcAddr( device, "vkCreateCudaModuleNV" ) );
+      vkGetCudaModuleCacheNV  = PFN_vkGetCudaModuleCacheNV( vkGetDeviceProcAddr( device, "vkGetCudaModuleCacheNV" ) );
+      vkCreateCudaFunctionNV  = PFN_vkCreateCudaFunctionNV( vkGetDeviceProcAddr( device, "vkCreateCudaFunctionNV" ) );
+      vkDestroyCudaModuleNV   = PFN_vkDestroyCudaModuleNV( vkGetDeviceProcAddr( device, "vkDestroyCudaModuleNV" ) );
+      vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetDeviceProcAddr( device, "vkDestroyCudaFunctionNV" ) );
+      vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetDeviceProcAddr( device, "vkCmdCudaLaunchKernelNV" ) );
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #if defined( VK_USE_PLATFORM_METAL_EXT )
@@ -15662,24 +19713,9 @@
       if ( !vkCmdResolveImage2 )
         vkCmdResolveImage2 = vkCmdResolveImage2KHR;
 
-      //=== VK_EXT_image_compression_control ===
-      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
-
       //=== VK_EXT_device_fault ===
       vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) );
 
-      //=== VK_KHR_ray_tracing_pipeline ===
-      vkCmdTraceRaysKHR                    = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
-      vkCreateRayTracingPipelinesKHR       = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
-      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
-      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
-        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
-      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
-      vkGetRayTracingShaderGroupStackSizeKHR =
-        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
-      vkCmdSetRayTracingPipelineStackSizeKHR =
-        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
-
       //=== VK_EXT_vertex_input_dynamic_state ===
       vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
 
@@ -15761,6 +19797,10 @@
       vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) );
       vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) );
 
+      //=== VK_HUAWEI_cluster_culling_shader ===
+      vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" ) );
+      vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" ) );
+
       //=== VK_EXT_pageable_device_local_memory ===
       vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
 
@@ -15791,6 +19831,12 @@
       vkCmdDecompressMemoryNV              = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) );
       vkCmdDecompressMemoryIndirectCountNV = PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) );
 
+      //=== VK_NV_device_generated_commands_compute ===
+      vkGetPipelineIndirectMemoryRequirementsNV =
+        PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
+      vkCmdUpdatePipelineIndirectBufferNV  = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetDeviceProcAddr( device, "vkCmdUpdatePipelineIndirectBufferNV" ) );
+      vkGetPipelineIndirectDeviceAddressNV = PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectDeviceAddressNV" ) );
+
       //=== VK_EXT_extended_dynamic_state3 ===
       vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" ) );
       vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" ) );
@@ -15839,10 +19885,51 @@
       vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" ) );
       vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" ) );
 
+      //=== VK_KHR_maintenance5 ===
+      vkCmdBindIndexBuffer2KHR             = PFN_vkCmdBindIndexBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer2KHR" ) );
+      vkGetRenderingAreaGranularityKHR     = PFN_vkGetRenderingAreaGranularityKHR( vkGetDeviceProcAddr( device, "vkGetRenderingAreaGranularityKHR" ) );
+      vkGetDeviceImageSubresourceLayoutKHR = PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSubresourceLayoutKHR" ) );
+      vkGetImageSubresourceLayout2KHR      = PFN_vkGetImageSubresourceLayout2KHR( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2KHR" ) );
+
+      //=== VK_EXT_shader_object ===
+      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
+      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
+      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
+      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
+
       //=== VK_QCOM_tile_properties ===
       vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
       vkGetDynamicRenderingTilePropertiesQCOM =
         PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
+
+      //=== VK_NV_low_latency2 ===
+      vkSetLatencySleepModeNV  = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) );
+      vkLatencySleepNV         = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) );
+      vkSetLatencyMarkerNV     = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) );
+      vkGetLatencyTimingsNV    = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) );
+      vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) );
+
+      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+      vkCmdSetAttachmentFeedbackLoopEnableEXT =
+        PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      //=== VK_QNX_external_memory_screen_buffer ===
+      vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetDeviceProcAddr( device, "vkGetScreenBufferPropertiesQNX" ) );
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+      //=== VK_KHR_calibrated_timestamps ===
+      vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsKHR" ) );
+
+      //=== VK_KHR_maintenance6 ===
+      vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets2KHR" ) );
+      vkCmdPushConstants2KHR      = PFN_vkCmdPushConstants2KHR( vkGetDeviceProcAddr( device, "vkCmdPushConstants2KHR" ) );
+      vkCmdPushDescriptorSet2KHR  = PFN_vkCmdPushDescriptorSet2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSet2KHR" ) );
+      vkCmdPushDescriptorSetWithTemplate2KHR =
+        PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplate2KHR" ) );
+      vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
+      vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
+        PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
     }
 
     template <typename DynamicLoader>
diff --git a/include/vulkan/vulkan_android.h b/include/vulkan/vulkan_android.h
index 11f5397..61ff40b 100644
--- a/include/vulkan/vulkan_android.h
+++ b/include/vulkan/vulkan_android.h
@@ -2,7 +2,7 @@
 #define VULKAN_ANDROID_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_KHR_android_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_android_surface 1
 struct ANativeWindow;
 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
@@ -42,6 +43,7 @@
 #endif
 
 
+// VK_ANDROID_external_memory_android_hardware_buffer is a preprocessor guard. Do not pass it to API calls.
 #define VK_ANDROID_external_memory_android_hardware_buffer 1
 struct AHardwareBuffer;
 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
@@ -118,6 +120,32 @@
     struct AHardwareBuffer**                    pBuffer);
 #endif
 
+
+// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls.
+#define VK_ANDROID_external_format_resolve 1
+#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1
+#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve"
+typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           externalFormatResolve;
+} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
+
+typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID {
+    VkStructureType     sType;
+    void*               pNext;
+    VkBool32            nullColorAttachmentWithExternalFormatResolve;
+    VkChromaLocation    externalFormatResolveChromaOffsetX;
+    VkChromaLocation    externalFormatResolveChromaOffsetY;
+} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
+
+typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID {
+    VkStructureType    sType;
+    void*              pNext;
+    VkFormat           colorAttachmentFormat;
+} VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/vulkan/vulkan_beta.h b/include/vulkan/vulkan_beta.h
index b6c8e99..df18b40 100644
--- a/include/vulkan/vulkan_beta.h
+++ b/include/vulkan/vulkan_beta.h
@@ -2,7 +2,7 @@
 #define VULKAN_BETA_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,356 +19,7 @@
 
 
 
-#define VK_KHR_video_queue 1
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
-#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   7
-#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
-
-typedef enum VkQueryResultStatusKHR {
-    VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
-    VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
-    VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
-    VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkQueryResultStatusKHR;
-
-typedef enum VkVideoCodecOperationFlagBitsKHR {
-    VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0x00020000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002,
-#endif
-    VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoCodecOperationFlagBitsKHR;
-typedef VkFlags VkVideoCodecOperationFlagsKHR;
-
-typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
-    VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
-    VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
-    VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
-    VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
-    VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
-    VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoChromaSubsamplingFlagBitsKHR;
-typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
-
-typedef enum VkVideoComponentBitDepthFlagBitsKHR {
-    VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
-    VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
-    VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
-    VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
-    VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoComponentBitDepthFlagBitsKHR;
-typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
-
-typedef enum VkVideoCapabilityFlagBitsKHR {
-    VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
-    VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
-    VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoCapabilityFlagBitsKHR;
-typedef VkFlags VkVideoCapabilityFlagsKHR;
-
-typedef enum VkVideoSessionCreateFlagBitsKHR {
-    VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
-    VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoSessionCreateFlagBitsKHR;
-typedef VkFlags VkVideoSessionCreateFlagsKHR;
-typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
-typedef VkFlags VkVideoBeginCodingFlagsKHR;
-typedef VkFlags VkVideoEndCodingFlagsKHR;
-
-typedef enum VkVideoCodingControlFlagBitsKHR {
-    VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0x00000004,
-#endif
-    VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoCodingControlFlagBitsKHR;
-typedef VkFlags VkVideoCodingControlFlagsKHR;
-typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
-    VkStructureType    sType;
-    void*              pNext;
-    VkBool32           queryResultStatusSupport;
-} VkQueueFamilyQueryResultStatusPropertiesKHR;
-
-typedef struct VkQueueFamilyVideoPropertiesKHR {
-    VkStructureType                  sType;
-    void*                            pNext;
-    VkVideoCodecOperationFlagsKHR    videoCodecOperations;
-} VkQueueFamilyVideoPropertiesKHR;
-
-typedef struct VkVideoProfileInfoKHR {
-    VkStructureType                     sType;
-    const void*                         pNext;
-    VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
-    VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
-    VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
-    VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
-} VkVideoProfileInfoKHR;
-
-typedef struct VkVideoProfileListInfoKHR {
-    VkStructureType                 sType;
-    const void*                     pNext;
-    uint32_t                        profileCount;
-    const VkVideoProfileInfoKHR*    pProfiles;
-} VkVideoProfileListInfoKHR;
-
-typedef struct VkVideoCapabilitiesKHR {
-    VkStructureType              sType;
-    void*                        pNext;
-    VkVideoCapabilityFlagsKHR    flags;
-    VkDeviceSize                 minBitstreamBufferOffsetAlignment;
-    VkDeviceSize                 minBitstreamBufferSizeAlignment;
-    VkExtent2D                   pictureAccessGranularity;
-    VkExtent2D                   minCodedExtent;
-    VkExtent2D                   maxCodedExtent;
-    uint32_t                     maxDpbSlots;
-    uint32_t                     maxActiveReferencePictures;
-    VkExtensionProperties        stdHeaderVersion;
-} VkVideoCapabilitiesKHR;
-
-typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
-     VkStructureType     sType;
-    const void*          pNext;
-    VkImageUsageFlags    imageUsage;
-} VkPhysicalDeviceVideoFormatInfoKHR;
-
-typedef struct VkVideoFormatPropertiesKHR {
-    VkStructureType       sType;
-    void*                 pNext;
-    VkFormat              format;
-    VkComponentMapping    componentMapping;
-    VkImageCreateFlags    imageCreateFlags;
-    VkImageType           imageType;
-    VkImageTiling         imageTiling;
-    VkImageUsageFlags     imageUsageFlags;
-} VkVideoFormatPropertiesKHR;
-
-typedef struct VkVideoPictureResourceInfoKHR {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkOffset2D         codedOffset;
-    VkExtent2D         codedExtent;
-    uint32_t           baseArrayLayer;
-    VkImageView        imageViewBinding;
-} VkVideoPictureResourceInfoKHR;
-
-typedef struct VkVideoReferenceSlotInfoKHR {
-    VkStructureType                         sType;
-    const void*                             pNext;
-    int32_t                                 slotIndex;
-    const VkVideoPictureResourceInfoKHR*    pPictureResource;
-} VkVideoReferenceSlotInfoKHR;
-
-typedef struct VkVideoSessionMemoryRequirementsKHR {
-    VkStructureType         sType;
-    void*                   pNext;
-    uint32_t                memoryBindIndex;
-    VkMemoryRequirements    memoryRequirements;
-} VkVideoSessionMemoryRequirementsKHR;
-
-typedef struct VkBindVideoSessionMemoryInfoKHR {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           memoryBindIndex;
-    VkDeviceMemory     memory;
-    VkDeviceSize       memoryOffset;
-    VkDeviceSize       memorySize;
-} VkBindVideoSessionMemoryInfoKHR;
-
-typedef struct VkVideoSessionCreateInfoKHR {
-    VkStructureType                 sType;
-    const void*                     pNext;
-    uint32_t                        queueFamilyIndex;
-    VkVideoSessionCreateFlagsKHR    flags;
-    const VkVideoProfileInfoKHR*    pVideoProfile;
-    VkFormat                        pictureFormat;
-    VkExtent2D                      maxCodedExtent;
-    VkFormat                        referencePictureFormat;
-    uint32_t                        maxDpbSlots;
-    uint32_t                        maxActiveReferencePictures;
-    const VkExtensionProperties*    pStdHeaderVersion;
-} VkVideoSessionCreateInfoKHR;
-
-typedef struct VkVideoSessionParametersCreateInfoKHR {
-    VkStructureType                           sType;
-    const void*                               pNext;
-    VkVideoSessionParametersCreateFlagsKHR    flags;
-    VkVideoSessionParametersKHR               videoSessionParametersTemplate;
-    VkVideoSessionKHR                         videoSession;
-} VkVideoSessionParametersCreateInfoKHR;
-
-typedef struct VkVideoSessionParametersUpdateInfoKHR {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           updateSequenceCount;
-} VkVideoSessionParametersUpdateInfoKHR;
-
-typedef struct VkVideoBeginCodingInfoKHR {
-    VkStructureType                       sType;
-    const void*                           pNext;
-    VkVideoBeginCodingFlagsKHR            flags;
-    VkVideoSessionKHR                     videoSession;
-    VkVideoSessionParametersKHR           videoSessionParameters;
-    uint32_t                              referenceSlotCount;
-    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
-} VkVideoBeginCodingInfoKHR;
-
-typedef struct VkVideoEndCodingInfoKHR {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkVideoEndCodingFlagsKHR    flags;
-} VkVideoEndCodingInfoKHR;
-
-typedef struct VkVideoCodingControlInfoKHR {
-    VkStructureType                 sType;
-    const void*                     pNext;
-    VkVideoCodingControlFlagsKHR    flags;
-} VkVideoCodingControlInfoKHR;
-
-typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
-typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
-typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
-typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
-typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
-typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
-typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
-typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
-typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
-
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
-    VkPhysicalDevice                            physicalDevice,
-    const VkVideoProfileInfoKHR*                pVideoProfile,
-    VkVideoCapabilitiesKHR*                     pCapabilities);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
-    VkPhysicalDevice                            physicalDevice,
-    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
-    uint32_t*                                   pVideoFormatPropertyCount,
-    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
-    VkDevice                                    device,
-    const VkVideoSessionCreateInfoKHR*          pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkVideoSessionKHR*                          pVideoSession);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
-    VkDevice                                    device,
-    VkVideoSessionKHR                           videoSession,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
-    VkDevice                                    device,
-    VkVideoSessionKHR                           videoSession,
-    uint32_t*                                   pMemoryRequirementsCount,
-    VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
-    VkDevice                                    device,
-    VkVideoSessionKHR                           videoSession,
-    uint32_t                                    bindSessionMemoryInfoCount,
-    const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
-    VkDevice                                    device,
-    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkVideoSessionParametersKHR*                pVideoSessionParameters);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
-    VkDevice                                    device,
-    VkVideoSessionParametersKHR                 videoSessionParameters,
-    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
-    VkDevice                                    device,
-    VkVideoSessionParametersKHR                 videoSessionParameters,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
-    VkCommandBuffer                             commandBuffer,
-    const VkVideoBeginCodingInfoKHR*            pBeginInfo);
-
-VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
-    VkCommandBuffer                             commandBuffer,
-    const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
-
-VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
-    VkCommandBuffer                             commandBuffer,
-    const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
-#endif
-
-
-#define VK_KHR_video_decode_queue 1
-#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 6
-#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
-
-typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
-    VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
-    VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
-    VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoDecodeCapabilityFlagBitsKHR;
-typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
-
-typedef enum VkVideoDecodeUsageFlagBitsKHR {
-    VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
-    VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
-    VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
-    VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
-    VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoDecodeUsageFlagBitsKHR;
-typedef VkFlags VkVideoDecodeUsageFlagsKHR;
-typedef VkFlags VkVideoDecodeFlagsKHR;
-typedef struct VkVideoDecodeCapabilitiesKHR {
-    VkStructureType                    sType;
-    void*                              pNext;
-    VkVideoDecodeCapabilityFlagsKHR    flags;
-} VkVideoDecodeCapabilitiesKHR;
-
-typedef struct VkVideoDecodeUsageInfoKHR {
-    VkStructureType               sType;
-    const void*                   pNext;
-    VkVideoDecodeUsageFlagsKHR    videoUsageHints;
-} VkVideoDecodeUsageInfoKHR;
-
-typedef struct VkVideoDecodeInfoKHR {
-    VkStructureType                       sType;
-    const void*                           pNext;
-    VkVideoDecodeFlagsKHR                 flags;
-    VkBuffer                              srcBuffer;
-    VkDeviceSize                          srcBufferOffset;
-    VkDeviceSize                          srcBufferRange;
-    VkVideoPictureResourceInfoKHR         dstPictureResource;
-    const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
-    uint32_t                              referenceSlotCount;
-    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
-} VkVideoDecodeInfoKHR;
-
-typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
-
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
-    VkCommandBuffer                             commandBuffer,
-    const VkVideoDecodeInfoKHR*                 pDecodeInfo);
-#endif
-
-
+// VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_portability_subset 1
 #define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
 #define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
@@ -400,611 +51,162 @@
 
 
 
-#define VK_KHR_video_encode_queue 1
-#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7
-#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
-
-typedef enum VkVideoEncodeTuningModeKHR {
-    VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
-    VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
-    VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
-    VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
-    VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
-    VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeTuningModeKHR;
-typedef VkFlags VkVideoEncodeFlagsKHR;
-
-typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
-    VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
-    VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeCapabilityFlagBitsKHR;
-typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
-
-typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
-    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,
-    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1,
-    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2,
-    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeRateControlModeFlagBitsKHR;
-typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
-
-typedef enum VkVideoEncodeUsageFlagBitsKHR {
-    VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
-    VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
-    VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
-    VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
-    VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
-    VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeUsageFlagBitsKHR;
-typedef VkFlags VkVideoEncodeUsageFlagsKHR;
-
-typedef enum VkVideoEncodeContentFlagBitsKHR {
-    VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
-    VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
-    VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
-    VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
-    VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeContentFlagBitsKHR;
-typedef VkFlags VkVideoEncodeContentFlagsKHR;
-typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
-typedef struct VkVideoEncodeInfoKHR {
-    VkStructureType                       sType;
-    const void*                           pNext;
-    VkVideoEncodeFlagsKHR                 flags;
-    uint32_t                              qualityLevel;
-    VkBuffer                              dstBitstreamBuffer;
-    VkDeviceSize                          dstBitstreamBufferOffset;
-    VkDeviceSize                          dstBitstreamBufferMaxRange;
-    VkVideoPictureResourceInfoKHR         srcPictureResource;
-    const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
-    uint32_t                              referenceSlotCount;
-    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
-    uint32_t                              precedingExternallyEncodedBytes;
-} VkVideoEncodeInfoKHR;
-
-typedef struct VkVideoEncodeCapabilitiesKHR {
-    VkStructureType                         sType;
-    void*                                   pNext;
-    VkVideoEncodeCapabilityFlagsKHR         flags;
-    VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
-    uint8_t                                 rateControlLayerCount;
-    uint8_t                                 qualityLevelCount;
-    VkExtent2D                              inputImageDataFillAlignment;
-} VkVideoEncodeCapabilitiesKHR;
-
-typedef struct VkVideoEncodeUsageInfoKHR {
-    VkStructureType                 sType;
-    const void*                     pNext;
-    VkVideoEncodeUsageFlagsKHR      videoUsageHints;
-    VkVideoEncodeContentFlagsKHR    videoContentHints;
-    VkVideoEncodeTuningModeKHR      tuningMode;
-} VkVideoEncodeUsageInfoKHR;
-
-typedef struct VkVideoEncodeRateControlLayerInfoKHR {
+// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
+#define VK_AMDX_shader_enqueue 1
+#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
+#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue"
+#define VK_SHADER_INDEX_UNUSED_AMDX       (~0U)
+typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX {
     VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           averageBitrate;
-    uint32_t           maxBitrate;
-    uint32_t           frameRateNumerator;
-    uint32_t           frameRateDenominator;
-    uint32_t           virtualBufferSizeInMs;
-    uint32_t           initialVirtualBufferSizeInMs;
-} VkVideoEncodeRateControlLayerInfoKHR;
+    void*              pNext;
+    VkBool32           shaderEnqueue;
+} VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
 
-typedef struct VkVideoEncodeRateControlInfoKHR {
-    VkStructureType                                sType;
-    const void*                                    pNext;
-    VkVideoEncodeRateControlFlagsKHR               flags;
-    VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
-    uint8_t                                        layerCount;
-    const VkVideoEncodeRateControlLayerInfoKHR*    pLayerConfigs;
-} VkVideoEncodeRateControlInfoKHR;
+typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxExecutionGraphDepth;
+    uint32_t           maxExecutionGraphShaderOutputNodes;
+    uint32_t           maxExecutionGraphShaderPayloadSize;
+    uint32_t           maxExecutionGraphShaderPayloadCount;
+    uint32_t           executionGraphDispatchAddressAlignment;
+} VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
 
-typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
+typedef struct VkExecutionGraphPipelineScratchSizeAMDX {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceSize       size;
+} VkExecutionGraphPipelineScratchSizeAMDX;
+
+typedef struct VkExecutionGraphPipelineCreateInfoAMDX {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    VkPipelineCreateFlags                     flags;
+    uint32_t                                  stageCount;
+    const VkPipelineShaderStageCreateInfo*    pStages;
+    const VkPipelineLibraryCreateInfoKHR*     pLibraryInfo;
+    VkPipelineLayout                          layout;
+    VkPipeline                                basePipelineHandle;
+    int32_t                                   basePipelineIndex;
+} VkExecutionGraphPipelineCreateInfoAMDX;
+
+typedef union VkDeviceOrHostAddressConstAMDX {
+    VkDeviceAddress    deviceAddress;
+    const void*        hostAddress;
+} VkDeviceOrHostAddressConstAMDX;
+
+typedef struct VkDispatchGraphInfoAMDX {
+    uint32_t                          nodeIndex;
+    uint32_t                          payloadCount;
+    VkDeviceOrHostAddressConstAMDX    payloads;
+    uint64_t                          payloadStride;
+} VkDispatchGraphInfoAMDX;
+
+typedef struct VkDispatchGraphCountInfoAMDX {
+    uint32_t                          count;
+    VkDeviceOrHostAddressConstAMDX    infos;
+    uint64_t                          stride;
+} VkDispatchGraphCountInfoAMDX;
+
+typedef struct VkPipelineShaderStageNodeCreateInfoAMDX {
+      VkStructureType    sType;
+    const void*          pNext;
+    const char*          pName;
+    uint32_t             index;
+} VkPipelineShaderStageNodeCreateInfoAMDX;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice                                        device, VkPipelineCache                 pipelineCache, uint32_t                                        createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks*    pAllocator, VkPipeline*               pPipelines);
+typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice                                        device, VkPipeline                                      executionGraph, VkExecutionGraphPipelineScratchSizeAMDX*         pSizeInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice                                        device, VkPipeline                                      executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX*   pNodeInfo, uint32_t*                                       pNodeIndex);
+typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch);
+typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, const VkDispatchGraphCountInfoAMDX*              pCountInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, const VkDispatchGraphCountInfoAMDX*              pCountInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer                                 commandBuffer, VkDeviceAddress                                 scratch, VkDeviceAddress                                 countInfo);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX(
+    VkDevice                                    device,
+    VkPipelineCache                             pipelineCache,
+    uint32_t                                    createInfoCount,
+    const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
+    const VkAllocationCallbacks*                pAllocator,
+    VkPipeline*                                 pPipelines);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX(
+    VkDevice                                    device,
+    VkPipeline                                  executionGraph,
+    VkExecutionGraphPipelineScratchSizeAMDX*    pSizeInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX(
+    VkDevice                                    device,
+    VkPipeline                                  executionGraph,
+    const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
+    uint32_t*                                   pNodeIndex);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX(
     VkCommandBuffer                             commandBuffer,
-    const VkVideoEncodeInfoKHR*                 pEncodeInfo);
+    VkDeviceAddress                             scratch);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX(
+    VkCommandBuffer                             commandBuffer,
+    VkDeviceAddress                             scratch,
+    const VkDispatchGraphCountInfoAMDX*         pCountInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX(
+    VkCommandBuffer                             commandBuffer,
+    VkDeviceAddress                             scratch,
+    const VkDispatchGraphCountInfoAMDX*         pCountInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX(
+    VkCommandBuffer                             commandBuffer,
+    VkDeviceAddress                             scratch,
+    VkDeviceAddress                             countInfo);
 #endif
 
 
-#define VK_EXT_video_encode_h264 1
-#include "vk_video/vulkan_video_codec_h264std.h"
-#include "vk_video/vulkan_video_codec_h264std_encode.h"
-#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 9
-#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
+// VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_displacement_micromap 1
+#define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2
+#define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap"
 
-typedef enum VkVideoEncodeH264RateControlStructureEXT {
-    VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
-    VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1,
-    VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2,
-    VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH264RateControlStructureEXT;
-
-typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000008,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000010,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000080,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000100,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000200,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000400,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000800,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00001000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00002000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00004000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00008000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00010000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00020000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00040000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00080000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00100000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00200000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00400000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00800000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x01000000,
-    VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH264CapabilityFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
-
-typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH264InputModeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT;
-
-typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH264OutputModeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;
-typedef struct VkVideoEncodeH264CapabilitiesEXT {
-    VkStructureType                        sType;
-    void*                                  pNext;
-    VkVideoEncodeH264CapabilityFlagsEXT    flags;
-    VkVideoEncodeH264InputModeFlagsEXT     inputModeFlags;
-    VkVideoEncodeH264OutputModeFlagsEXT    outputModeFlags;
-    uint8_t                                maxPPictureL0ReferenceCount;
-    uint8_t                                maxBPictureL0ReferenceCount;
-    uint8_t                                maxL1ReferenceCount;
-    VkBool32                               motionVectorsOverPicBoundariesFlag;
-    uint32_t                               maxBytesPerPicDenom;
-    uint32_t                               maxBitsPerMbDenom;
-    uint32_t                               log2MaxMvLengthHorizontal;
-    uint32_t                               log2MaxMvLengthVertical;
-} VkVideoEncodeH264CapabilitiesEXT;
-
-typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    uint32_t                                   stdSPSCount;
-    const StdVideoH264SequenceParameterSet*    pStdSPSs;
-    uint32_t                                   stdPPSCount;
-    const StdVideoH264PictureParameterSet*     pStdPPSs;
-} VkVideoEncodeH264SessionParametersAddInfoEXT;
-
-typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
-    VkStructureType                                        sType;
-    const void*                                            pNext;
-    uint32_t                                               maxStdSPSCount;
-    uint32_t                                               maxStdPPSCount;
-    const VkVideoEncodeH264SessionParametersAddInfoEXT*    pParametersAddInfo;
-} VkVideoEncodeH264SessionParametersCreateInfoEXT;
-
-typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
-    VkStructureType                           sType;
-    const void*                               pNext;
-    int8_t                                    slotIndex;
-    const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
-} VkVideoEncodeH264DpbSlotInfoEXT;
-
-typedef struct VkVideoEncodeH264ReferenceListsInfoEXT {
-    VkStructureType                                      sType;
-    const void*                                          pNext;
-    uint8_t                                              referenceList0EntryCount;
-    const VkVideoEncodeH264DpbSlotInfoEXT*               pReferenceList0Entries;
-    uint8_t                                              referenceList1EntryCount;
-    const VkVideoEncodeH264DpbSlotInfoEXT*               pReferenceList1Entries;
-    const StdVideoEncodeH264RefMemMgmtCtrlOperations*    pMemMgmtCtrlOperations;
-} VkVideoEncodeH264ReferenceListsInfoEXT;
-
-typedef struct VkVideoEncodeH264NaluSliceInfoEXT {
-    VkStructureType                                  sType;
-    const void*                                      pNext;
-    uint32_t                                         mbCount;
-    const VkVideoEncodeH264ReferenceListsInfoEXT*    pReferenceFinalLists;
-    const StdVideoEncodeH264SliceHeader*             pSliceHeaderStd;
-} VkVideoEncodeH264NaluSliceInfoEXT;
-
-typedef struct VkVideoEncodeH264VclFrameInfoEXT {
-    VkStructureType                                  sType;
-    const void*                                      pNext;
-    const VkVideoEncodeH264ReferenceListsInfoEXT*    pReferenceFinalLists;
-    uint32_t                                         naluSliceEntryCount;
-    const VkVideoEncodeH264NaluSliceInfoEXT*         pNaluSliceEntries;
-    const StdVideoEncodeH264PictureInfo*             pCurrentPictureInfo;
-} VkVideoEncodeH264VclFrameInfoEXT;
-
-typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT {
+typedef enum VkDisplacementMicromapFormatNV {
+    VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1,
+    VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2,
+    VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3,
+    VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF
+} VkDisplacementMicromapFormatNV;
+typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV {
     VkStructureType    sType;
-    const void*        pNext;
-    uint8_t            spsId;
-    VkBool32           emitSpsEnable;
-    uint32_t           ppsIdEntryCount;
-    const uint8_t*     ppsIdEntries;
-} VkVideoEncodeH264EmitPictureParametersInfoEXT;
+    void*              pNext;
+    VkBool32           displacementMicromap;
+} VkPhysicalDeviceDisplacementMicromapFeaturesNV;
 
-typedef struct VkVideoEncodeH264ProfileInfoEXT {
-    VkStructureType           sType;
-    const void*               pNext;
-    StdVideoH264ProfileIdc    stdProfileIdc;
-} VkVideoEncodeH264ProfileInfoEXT;
-
-typedef struct VkVideoEncodeH264RateControlInfoEXT {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    uint32_t                                    gopFrameCount;
-    uint32_t                                    idrPeriod;
-    uint32_t                                    consecutiveBFrameCount;
-    VkVideoEncodeH264RateControlStructureEXT    rateControlStructure;
-    uint8_t                                     temporalLayerCount;
-} VkVideoEncodeH264RateControlInfoEXT;
-
-typedef struct VkVideoEncodeH264QpEXT {
-    int32_t    qpI;
-    int32_t    qpP;
-    int32_t    qpB;
-} VkVideoEncodeH264QpEXT;
-
-typedef struct VkVideoEncodeH264FrameSizeEXT {
-    uint32_t    frameISize;
-    uint32_t    framePSize;
-    uint32_t    frameBSize;
-} VkVideoEncodeH264FrameSizeEXT;
-
-typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
-    VkStructureType                  sType;
-    const void*                      pNext;
-    uint8_t                          temporalLayerId;
-    VkBool32                         useInitialRcQp;
-    VkVideoEncodeH264QpEXT           initialRcQp;
-    VkBool32                         useMinQp;
-    VkVideoEncodeH264QpEXT           minQp;
-    VkBool32                         useMaxQp;
-    VkVideoEncodeH264QpEXT           maxQp;
-    VkBool32                         useMaxFrameSize;
-    VkVideoEncodeH264FrameSizeEXT    maxFrameSize;
-} VkVideoEncodeH264RateControlLayerInfoEXT;
-
-
-
-#define VK_EXT_video_encode_h265 1
-#include "vk_video/vulkan_video_codec_h265std.h"
-#include "vk_video/vulkan_video_codec_h265std_encode.h"
-#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 9
-#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
-
-typedef enum VkVideoEncodeH265RateControlStructureEXT {
-    VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
-    VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1,
-    VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2,
-    VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265RateControlStructureEXT;
-
-typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0x00000008,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0x00000010,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0x00000040,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0x00000080,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0x00000100,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0x00000200,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0x00000400,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0x00000800,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00001000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0x00002000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00004000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0x00008000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0x00010000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0x00020000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0x00040000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0x00080000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0x00100000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0x00200000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0x00400000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0x00800000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x01000000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x02000000,
-    VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265CapabilityFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
-
-typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265InputModeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
-
-typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265OutputModeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
-
-typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265CtbSizeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
-
-typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT {
-    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0x00000001,
-    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0x00000002,
-    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0x00000004,
-    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0x00000008,
-    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH265TransformBlockSizeFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT;
-typedef struct VkVideoEncodeH265CapabilitiesEXT {
-    VkStructureType                                sType;
-    void*                                          pNext;
-    VkVideoEncodeH265CapabilityFlagsEXT            flags;
-    VkVideoEncodeH265InputModeFlagsEXT             inputModeFlags;
-    VkVideoEncodeH265OutputModeFlagsEXT            outputModeFlags;
-    VkVideoEncodeH265CtbSizeFlagsEXT               ctbSizes;
-    VkVideoEncodeH265TransformBlockSizeFlagsEXT    transformBlockSizes;
-    uint8_t                                        maxPPictureL0ReferenceCount;
-    uint8_t                                        maxBPictureL0ReferenceCount;
-    uint8_t                                        maxL1ReferenceCount;
-    uint8_t                                        maxSubLayersCount;
-    uint8_t                                        minLog2MinLumaCodingBlockSizeMinus3;
-    uint8_t                                        maxLog2MinLumaCodingBlockSizeMinus3;
-    uint8_t                                        minLog2MinLumaTransformBlockSizeMinus2;
-    uint8_t                                        maxLog2MinLumaTransformBlockSizeMinus2;
-    uint8_t                                        minMaxTransformHierarchyDepthInter;
-    uint8_t                                        maxMaxTransformHierarchyDepthInter;
-    uint8_t                                        minMaxTransformHierarchyDepthIntra;
-    uint8_t                                        maxMaxTransformHierarchyDepthIntra;
-    uint8_t                                        maxDiffCuQpDeltaDepth;
-    uint8_t                                        minMaxNumMergeCand;
-    uint8_t                                        maxMaxNumMergeCand;
-} VkVideoEncodeH265CapabilitiesEXT;
-
-typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    uint32_t                                   stdVPSCount;
-    const StdVideoH265VideoParameterSet*       pStdVPSs;
-    uint32_t                                   stdSPSCount;
-    const StdVideoH265SequenceParameterSet*    pStdSPSs;
-    uint32_t                                   stdPPSCount;
-    const StdVideoH265PictureParameterSet*     pStdPPSs;
-} VkVideoEncodeH265SessionParametersAddInfoEXT;
-
-typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT {
-    VkStructureType                                        sType;
-    const void*                                            pNext;
-    uint32_t                                               maxStdVPSCount;
-    uint32_t                                               maxStdSPSCount;
-    uint32_t                                               maxStdPPSCount;
-    const VkVideoEncodeH265SessionParametersAddInfoEXT*    pParametersAddInfo;
-} VkVideoEncodeH265SessionParametersCreateInfoEXT;
-
-typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
-    VkStructureType                           sType;
-    const void*                               pNext;
-    int8_t                                    slotIndex;
-    const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
-} VkVideoEncodeH265DpbSlotInfoEXT;
-
-typedef struct VkVideoEncodeH265ReferenceListsInfoEXT {
-    VkStructureType                                    sType;
-    const void*                                        pNext;
-    uint8_t                                            referenceList0EntryCount;
-    const VkVideoEncodeH265DpbSlotInfoEXT*             pReferenceList0Entries;
-    uint8_t                                            referenceList1EntryCount;
-    const VkVideoEncodeH265DpbSlotInfoEXT*             pReferenceList1Entries;
-    const StdVideoEncodeH265ReferenceModifications*    pReferenceModifications;
-} VkVideoEncodeH265ReferenceListsInfoEXT;
-
-typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT {
-    VkStructureType                                  sType;
-    const void*                                      pNext;
-    uint32_t                                         ctbCount;
-    const VkVideoEncodeH265ReferenceListsInfoEXT*    pReferenceFinalLists;
-    const StdVideoEncodeH265SliceSegmentHeader*      pSliceSegmentHeaderStd;
-} VkVideoEncodeH265NaluSliceSegmentInfoEXT;
-
-typedef struct VkVideoEncodeH265VclFrameInfoEXT {
-    VkStructureType                                    sType;
-    const void*                                        pNext;
-    const VkVideoEncodeH265ReferenceListsInfoEXT*      pReferenceFinalLists;
-    uint32_t                                           naluSliceSegmentEntryCount;
-    const VkVideoEncodeH265NaluSliceSegmentInfoEXT*    pNaluSliceSegmentEntries;
-    const StdVideoEncodeH265PictureInfo*               pCurrentPictureInfo;
-} VkVideoEncodeH265VclFrameInfoEXT;
-
-typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT {
+typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV {
     VkStructureType    sType;
-    const void*        pNext;
-    uint8_t            vpsId;
-    uint8_t            spsId;
-    VkBool32           emitVpsEnable;
-    VkBool32           emitSpsEnable;
-    uint32_t           ppsIdEntryCount;
-    const uint8_t*     ppsIdEntries;
-} VkVideoEncodeH265EmitPictureParametersInfoEXT;
+    void*              pNext;
+    uint32_t           maxDisplacementMicromapSubdivisionLevel;
+} VkPhysicalDeviceDisplacementMicromapPropertiesNV;
 
-typedef struct VkVideoEncodeH265ProfileInfoEXT {
-    VkStructureType           sType;
-    const void*               pNext;
-    StdVideoH265ProfileIdc    stdProfileIdc;
-} VkVideoEncodeH265ProfileInfoEXT;
-
-typedef struct VkVideoEncodeH265RateControlInfoEXT {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    uint32_t                                    gopFrameCount;
-    uint32_t                                    idrPeriod;
-    uint32_t                                    consecutiveBFrameCount;
-    VkVideoEncodeH265RateControlStructureEXT    rateControlStructure;
-    uint8_t                                     subLayerCount;
-} VkVideoEncodeH265RateControlInfoEXT;
-
-typedef struct VkVideoEncodeH265QpEXT {
-    int32_t    qpI;
-    int32_t    qpP;
-    int32_t    qpB;
-} VkVideoEncodeH265QpEXT;
-
-typedef struct VkVideoEncodeH265FrameSizeEXT {
-    uint32_t    frameISize;
-    uint32_t    framePSize;
-    uint32_t    frameBSize;
-} VkVideoEncodeH265FrameSizeEXT;
-
-typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
-    VkStructureType                  sType;
-    const void*                      pNext;
-    uint8_t                          temporalId;
-    VkBool32                         useInitialRcQp;
-    VkVideoEncodeH265QpEXT           initialRcQp;
-    VkBool32                         useMinQp;
-    VkVideoEncodeH265QpEXT           minQp;
-    VkBool32                         useMaxQp;
-    VkVideoEncodeH265QpEXT           maxQp;
-    VkBool32                         useMaxFrameSize;
-    VkVideoEncodeH265FrameSizeEXT    maxFrameSize;
-} VkVideoEncodeH265RateControlLayerInfoEXT;
-
-
-
-#define VK_EXT_video_decode_h264 1
-#include "vk_video/vulkan_video_codec_h264std_decode.h"
-#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 7
-#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"
-
-typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT {
-    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0,
-    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001,
-    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002,
-    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoDecodeH264PictureLayoutFlagBitsEXT;
-typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT;
-typedef struct VkVideoDecodeH264ProfileInfoEXT {
-    VkStructureType                              sType;
-    const void*                                  pNext;
-    StdVideoH264ProfileIdc                       stdProfileIdc;
-    VkVideoDecodeH264PictureLayoutFlagBitsEXT    pictureLayout;
-} VkVideoDecodeH264ProfileInfoEXT;
-
-typedef struct VkVideoDecodeH264CapabilitiesEXT {
-    VkStructureType         sType;
-    void*                   pNext;
-    StdVideoH264LevelIdc    maxLevelIdc;
-    VkOffset2D              fieldOffsetGranularity;
-} VkVideoDecodeH264CapabilitiesEXT;
-
-typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    uint32_t                                   stdSPSCount;
-    const StdVideoH264SequenceParameterSet*    pStdSPSs;
-    uint32_t                                   stdPPSCount;
-    const StdVideoH264PictureParameterSet*     pStdPPSs;
-} VkVideoDecodeH264SessionParametersAddInfoEXT;
-
-typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT {
-    VkStructureType                                        sType;
-    const void*                                            pNext;
-    uint32_t                                               maxStdSPSCount;
-    uint32_t                                               maxStdPPSCount;
-    const VkVideoDecodeH264SessionParametersAddInfoEXT*    pParametersAddInfo;
-} VkVideoDecodeH264SessionParametersCreateInfoEXT;
-
-typedef struct VkVideoDecodeH264PictureInfoEXT {
-    VkStructureType                         sType;
-    const void*                             pNext;
-    const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
-    uint32_t                                sliceCount;
-    const uint32_t*                         pSliceOffsets;
-} VkVideoDecodeH264PictureInfoEXT;
-
-typedef struct VkVideoDecodeH264DpbSlotInfoEXT {
-    VkStructureType                           sType;
-    const void*                               pNext;
-    const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
-} VkVideoDecodeH264DpbSlotInfoEXT;
-
-
-
-#define VK_EXT_video_decode_h265 1
-#include "vk_video/vulkan_video_codec_h265std_decode.h"
-#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 6
-#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265"
-typedef struct VkVideoDecodeH265ProfileInfoEXT {
-    VkStructureType           sType;
-    const void*               pNext;
-    StdVideoH265ProfileIdc    stdProfileIdc;
-} VkVideoDecodeH265ProfileInfoEXT;
-
-typedef struct VkVideoDecodeH265CapabilitiesEXT {
-    VkStructureType         sType;
-    void*                   pNext;
-    StdVideoH265LevelIdc    maxLevelIdc;
-} VkVideoDecodeH265CapabilitiesEXT;
-
-typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    uint32_t                                   stdVPSCount;
-    const StdVideoH265VideoParameterSet*       pStdVPSs;
-    uint32_t                                   stdSPSCount;
-    const StdVideoH265SequenceParameterSet*    pStdSPSs;
-    uint32_t                                   stdPPSCount;
-    const StdVideoH265PictureParameterSet*     pStdPPSs;
-} VkVideoDecodeH265SessionParametersAddInfoEXT;
-
-typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT {
-    VkStructureType                                        sType;
-    const void*                                            pNext;
-    uint32_t                                               maxStdVPSCount;
-    uint32_t                                               maxStdSPSCount;
-    uint32_t                                               maxStdPPSCount;
-    const VkVideoDecodeH265SessionParametersAddInfoEXT*    pParametersAddInfo;
-} VkVideoDecodeH265SessionParametersCreateInfoEXT;
-
-typedef struct VkVideoDecodeH265PictureInfoEXT {
-    VkStructureType                   sType;
-    const void*                       pNext;
-    StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
-    uint32_t                          sliceSegmentCount;
-    const uint32_t*                   pSliceSegmentOffsets;
-} VkVideoDecodeH265PictureInfoEXT;
-
-typedef struct VkVideoDecodeH265DpbSlotInfoEXT {
-    VkStructureType                           sType;
-    const void*                               pNext;
-    const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
-} VkVideoDecodeH265DpbSlotInfoEXT;
+typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV {
+    VkStructureType                     sType;
+    void*                               pNext;
+    VkFormat                            displacementBiasAndScaleFormat;
+    VkFormat                            displacementVectorFormat;
+    VkDeviceOrHostAddressConstKHR       displacementBiasAndScaleBuffer;
+    VkDeviceSize                        displacementBiasAndScaleStride;
+    VkDeviceOrHostAddressConstKHR       displacementVectorBuffer;
+    VkDeviceSize                        displacementVectorStride;
+    VkDeviceOrHostAddressConstKHR       displacedMicromapPrimitiveFlags;
+    VkDeviceSize                        displacedMicromapPrimitiveFlagsStride;
+    VkIndexType                         indexType;
+    VkDeviceOrHostAddressConstKHR       indexBuffer;
+    VkDeviceSize                        indexStride;
+    uint32_t                            baseTriangle;
+    uint32_t                            usageCountsCount;
+    const VkMicromapUsageEXT*           pUsageCounts;
+    const VkMicromapUsageEXT* const*    ppUsageCounts;
+    VkMicromapEXT                       micromap;
+} VkAccelerationStructureTrianglesDisplacementMicromapNV;
 
 
 #ifdef __cplusplus
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index ef2bd54..7d8bb4c 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -2,7 +2,7 @@
 #define VULKAN_CORE_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
 #define VK_VERSION_1_0 1
 #include "vk_platform.h"
 
@@ -26,7 +27,7 @@
 
 
 #ifndef VK_USE_64_BIT_PTR_DEFINES
-    #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
+    #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
         #define VK_USE_64_BIT_PTR_DEFINES 1
     #else
         #define VK_USE_64_BIT_PTR_DEFINES 0
@@ -58,37 +59,37 @@
     #endif
 #endif
 
-// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
-#define VK_MAKE_VERSION(major, minor, patch) \
-    ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
+#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
+    ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
 
 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
-//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
-
-#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
-    ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
+//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
 
 // Vulkan 1.0 version number
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 237
+#define VK_HEADER_VERSION 275
 
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
 
+// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
+#define VK_MAKE_VERSION(major, minor, patch) \
+    ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
+
 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
-#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
+#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
 
 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
-#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
+#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
 
 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
 
-#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
-#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
-#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
+#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
+#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
+#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
 typedef uint32_t VkBool32;
 typedef uint64_t VkDeviceAddress;
@@ -120,7 +121,6 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
-#define VK_UUID_SIZE                      16U
 #define VK_ATTACHMENT_UNUSED              (~0U)
 #define VK_FALSE                          0U
 #define VK_LOD_CLAMP_NONE                 1000.0F
@@ -132,6 +132,7 @@
 #define VK_WHOLE_SIZE                     (~0ULL)
 #define VK_MAX_MEMORY_TYPES               32U
 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
+#define VK_UUID_SIZE                      16U
 #define VK_MAX_EXTENSION_NAME_SIZE        256U
 #define VK_MAX_DESCRIPTION_SIZE           256U
 #define VK_MAX_MEMORY_HEAPS               16U
@@ -168,24 +169,12 @@
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
     VK_ERROR_INVALID_SHADER_NV = -1000012000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
-#endif
     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
@@ -193,7 +182,9 @@
     VK_THREAD_DONE_KHR = 1000268001,
     VK_OPERATION_DEFERRED_KHR = 1000268002,
     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
+    VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
+    VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
@@ -443,66 +434,26 @@
     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
-#endif
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
@@ -514,90 +465,40 @@
     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT = 1000038005,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000038006,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT = 1000038007,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT = 1000038010,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT = 1000039005,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000039006,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT = 1000039008,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT = 1000040003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006,
-#endif
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
@@ -652,6 +553,7 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
@@ -687,6 +589,21 @@
     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
+#endif
     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
@@ -758,33 +675,18 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
-    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT = 1000187003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005,
-#endif
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
+    VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
-    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
@@ -853,6 +755,18 @@
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001,
+    VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002,
+    VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003,
+    VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004,
+    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005,
+    VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006,
+    VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007,
+    VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008,
+    VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009,
+    VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
+    VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
@@ -876,6 +790,9 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
+    VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
+    VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
@@ -890,23 +807,25 @@
     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
-#endif
+    VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
+    VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+    VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
+    VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
+    VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
+    VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
@@ -956,8 +875,6 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
-    VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002,
-    VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003,
     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
@@ -998,6 +915,8 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
+    VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
@@ -1012,6 +931,8 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
@@ -1022,14 +943,37 @@
     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
+#endif
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
+    VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
+    VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
+    VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
+    VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
+    VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
@@ -1037,11 +981,17 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
+    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
+    VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
+    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
@@ -1064,6 +1014,21 @@
     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
+    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
+    VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
+    VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
+    VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
+    VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
+    VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
+    VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
+    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
@@ -1071,10 +1036,62 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
+    VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
+    VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
+    VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
+    VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
+    VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
+    VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
+    VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
+    VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
+    VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
+    VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
+    VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
+    VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
+    VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
+    VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
+    VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
+    VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
+    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000,
+    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002,
+    VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
+    VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
+    VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
+    VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
+    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001,
+    VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002,
+    VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003,
+    VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004,
+    VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005,
+    VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006,
+    VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
+    VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -1175,6 +1192,9 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
+    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
+    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
@@ -1237,6 +1257,8 @@
     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
+    VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
+    VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
@@ -1248,6 +1270,7 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
+    VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
@@ -1275,27 +1298,15 @@
     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
-#endif
     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
-#endif
     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
@@ -1344,12 +1355,8 @@
     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
-#endif
     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
@@ -1359,9 +1366,12 @@
     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
+    VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
+    VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
+    VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
@@ -1375,6 +1385,7 @@
     VK_VENDOR_ID_CODEPLAY = 0x10004,
     VK_VENDOR_ID_MESA = 0x10005,
     VK_VENDOR_ID_POCL = 0x10006,
+    VK_VENDOR_ID_MOBILEYE = 0x10007,
     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
 } VkVendorId;
 
@@ -1641,6 +1652,8 @@
     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
     VK_FORMAT_R16G16_S10_5_NV = 1000464000,
+    VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
+    VK_FORMAT_A8_UNORM_KHR = 1000470001,
     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
@@ -1725,18 +1738,14 @@
     VK_QUERY_TYPE_OCCLUSION = 0,
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
     VK_QUERY_TYPE_TIMESTAMP = 2,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
-#endif
     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
-    VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000,
-#endif
+    VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
@@ -1891,10 +1900,13 @@
     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
+    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
+    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
+    VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
@@ -1933,6 +1945,7 @@
     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
+    VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
@@ -2098,6 +2111,9 @@
 typedef enum VkPipelineBindPoint {
     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
+#endif
     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
@@ -2122,6 +2138,7 @@
 typedef enum VkSubpassContents {
     VK_SUBPASS_CONTENTS_INLINE = 0,
     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
+    VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000,
     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
 } VkSubpassContents;
 
@@ -2208,22 +2225,14 @@
     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
-#endif
     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
-#endif
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
@@ -2259,6 +2268,7 @@
     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
+    VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
@@ -2290,26 +2300,15 @@
     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
-#endif
     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000,
     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
-#endif
     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
@@ -2353,12 +2352,8 @@
     VK_QUEUE_TRANSFER_BIT = 0x00000004,
     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
     VK_QUEUE_PROTECTED_BIT = 0x00000010,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
-#endif
     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkQueueFlagBits;
@@ -2452,6 +2447,7 @@
     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
+    VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkQueryPipelineStatisticFlagBits;
 typedef VkFlags VkQueryPipelineStatisticFlags;
@@ -2462,9 +2458,7 @@
     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
-#endif
     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkQueryResultFlagBits;
 typedef VkFlags VkQueryResultFlags;
@@ -2476,6 +2470,7 @@
     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
+    VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -2493,24 +2488,19 @@
     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
-#endif
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
+#endif
     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
-#endif
     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
@@ -2578,6 +2568,9 @@
     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
+#endif
     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
@@ -2618,6 +2611,7 @@
     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
+    VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
@@ -2682,6 +2676,8 @@
     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
+    VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
+    VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -2694,7 +2690,9 @@
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -4850,6 +4848,7 @@
 #endif
 
 
+// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_VERSION_1_1 1
 // Vulkan 1.1 version number
 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
@@ -4967,6 +4966,7 @@
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
@@ -5715,6 +5715,7 @@
 #endif
 
 
+// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_VERSION_1_2 1
 // 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
@@ -5747,6 +5748,8 @@
     VK_DRIVER_ID_MESA_VENUS = 22,
     VK_DRIVER_ID_MESA_DOZEN = 23,
     VK_DRIVER_ID_MESA_NVK = 24,
+    VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
+    VK_DRIVER_ID_MESA_AGXV = 26,
     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
@@ -5776,6 +5779,7 @@
     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
+    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
@@ -5796,6 +5800,7 @@
     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
+    VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
@@ -6468,6 +6473,7 @@
 #endif
 
 
+// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
 #define VK_VERSION_1_3 1
 // Vulkan 1.3 version number
 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
@@ -6559,12 +6565,8 @@
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
-#endif
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
@@ -6579,10 +6581,12 @@
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
 
 typedef VkFlags64 VkAccessFlags2;
@@ -6631,18 +6635,10 @@
 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
-#endif
 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
@@ -6677,6 +6673,7 @@
     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
     VK_RENDERING_RESUMING_BIT = 0x00000004,
+    VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010,
     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
@@ -6742,21 +6739,14 @@
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
-#endif
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
-#ifdef VK_ENABLE_BETA_EXTENSIONS
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
-#endif
-#ifdef VK_ENABLE_BETA_EXTENSIONS
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
-#endif
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
@@ -7518,6 +7508,7 @@
 #endif
 
 
+// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_surface 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
 #define VK_KHR_SURFACE_SPEC_VERSION       25
@@ -7632,6 +7623,7 @@
 #endif
 
 
+// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_swapchain 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
@@ -7792,6 +7784,7 @@
 #endif
 
 
+// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_display 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
@@ -7917,6 +7910,7 @@
 #endif
 
 
+// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_display_swapchain 1
 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
@@ -7940,11 +7934,840 @@
 #endif
 
 
+// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_sampler_mirror_clamp_to_edge 1
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 
 
+// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_queue 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
+#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
+#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
+
+typedef enum VkQueryResultStatusKHR {
+    VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
+    VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
+    VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
+    VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
+    VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkQueryResultStatusKHR;
+
+typedef enum VkVideoCodecOperationFlagBitsKHR {
+    VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
+    VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
+    VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
+    VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
+    VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
+    VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoCodecOperationFlagBitsKHR;
+typedef VkFlags VkVideoCodecOperationFlagsKHR;
+
+typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
+    VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
+    VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
+    VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
+    VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
+    VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
+    VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoChromaSubsamplingFlagBitsKHR;
+typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
+
+typedef enum VkVideoComponentBitDepthFlagBitsKHR {
+    VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
+    VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
+    VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
+    VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
+    VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoComponentBitDepthFlagBitsKHR;
+typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
+
+typedef enum VkVideoCapabilityFlagBitsKHR {
+    VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
+    VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
+    VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoCapabilityFlagsKHR;
+
+typedef enum VkVideoSessionCreateFlagBitsKHR {
+    VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
+    VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
+    VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
+    VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoSessionCreateFlagBitsKHR;
+typedef VkFlags VkVideoSessionCreateFlagsKHR;
+typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
+typedef VkFlags VkVideoBeginCodingFlagsKHR;
+typedef VkFlags VkVideoEndCodingFlagsKHR;
+
+typedef enum VkVideoCodingControlFlagBitsKHR {
+    VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
+    VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
+    VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
+    VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoCodingControlFlagBitsKHR;
+typedef VkFlags VkVideoCodingControlFlagsKHR;
+typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           queryResultStatusSupport;
+} VkQueueFamilyQueryResultStatusPropertiesKHR;
+
+typedef struct VkQueueFamilyVideoPropertiesKHR {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkVideoCodecOperationFlagsKHR    videoCodecOperations;
+} VkQueueFamilyVideoPropertiesKHR;
+
+typedef struct VkVideoProfileInfoKHR {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
+    VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
+    VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
+    VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
+} VkVideoProfileInfoKHR;
+
+typedef struct VkVideoProfileListInfoKHR {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    uint32_t                        profileCount;
+    const VkVideoProfileInfoKHR*    pProfiles;
+} VkVideoProfileListInfoKHR;
+
+typedef struct VkVideoCapabilitiesKHR {
+    VkStructureType              sType;
+    void*                        pNext;
+    VkVideoCapabilityFlagsKHR    flags;
+    VkDeviceSize                 minBitstreamBufferOffsetAlignment;
+    VkDeviceSize                 minBitstreamBufferSizeAlignment;
+    VkExtent2D                   pictureAccessGranularity;
+    VkExtent2D                   minCodedExtent;
+    VkExtent2D                   maxCodedExtent;
+    uint32_t                     maxDpbSlots;
+    uint32_t                     maxActiveReferencePictures;
+    VkExtensionProperties        stdHeaderVersion;
+} VkVideoCapabilitiesKHR;
+
+typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
+    VkStructureType      sType;
+    const void*          pNext;
+    VkImageUsageFlags    imageUsage;
+} VkPhysicalDeviceVideoFormatInfoKHR;
+
+typedef struct VkVideoFormatPropertiesKHR {
+    VkStructureType       sType;
+    void*                 pNext;
+    VkFormat              format;
+    VkComponentMapping    componentMapping;
+    VkImageCreateFlags    imageCreateFlags;
+    VkImageType           imageType;
+    VkImageTiling         imageTiling;
+    VkImageUsageFlags     imageUsageFlags;
+} VkVideoFormatPropertiesKHR;
+
+typedef struct VkVideoPictureResourceInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkOffset2D         codedOffset;
+    VkExtent2D         codedExtent;
+    uint32_t           baseArrayLayer;
+    VkImageView        imageViewBinding;
+} VkVideoPictureResourceInfoKHR;
+
+typedef struct VkVideoReferenceSlotInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    int32_t                                 slotIndex;
+    const VkVideoPictureResourceInfoKHR*    pPictureResource;
+} VkVideoReferenceSlotInfoKHR;
+
+typedef struct VkVideoSessionMemoryRequirementsKHR {
+    VkStructureType         sType;
+    void*                   pNext;
+    uint32_t                memoryBindIndex;
+    VkMemoryRequirements    memoryRequirements;
+} VkVideoSessionMemoryRequirementsKHR;
+
+typedef struct VkBindVideoSessionMemoryInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           memoryBindIndex;
+    VkDeviceMemory     memory;
+    VkDeviceSize       memoryOffset;
+    VkDeviceSize       memorySize;
+} VkBindVideoSessionMemoryInfoKHR;
+
+typedef struct VkVideoSessionCreateInfoKHR {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    uint32_t                        queueFamilyIndex;
+    VkVideoSessionCreateFlagsKHR    flags;
+    const VkVideoProfileInfoKHR*    pVideoProfile;
+    VkFormat                        pictureFormat;
+    VkExtent2D                      maxCodedExtent;
+    VkFormat                        referencePictureFormat;
+    uint32_t                        maxDpbSlots;
+    uint32_t                        maxActiveReferencePictures;
+    const VkExtensionProperties*    pStdHeaderVersion;
+} VkVideoSessionCreateInfoKHR;
+
+typedef struct VkVideoSessionParametersCreateInfoKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    VkVideoSessionParametersCreateFlagsKHR    flags;
+    VkVideoSessionParametersKHR               videoSessionParametersTemplate;
+    VkVideoSessionKHR                         videoSession;
+} VkVideoSessionParametersCreateInfoKHR;
+
+typedef struct VkVideoSessionParametersUpdateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           updateSequenceCount;
+} VkVideoSessionParametersUpdateInfoKHR;
+
+typedef struct VkVideoBeginCodingInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkVideoBeginCodingFlagsKHR            flags;
+    VkVideoSessionKHR                     videoSession;
+    VkVideoSessionParametersKHR           videoSessionParameters;
+    uint32_t                              referenceSlotCount;
+    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
+} VkVideoBeginCodingInfoKHR;
+
+typedef struct VkVideoEndCodingInfoKHR {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkVideoEndCodingFlagsKHR    flags;
+} VkVideoEndCodingInfoKHR;
+
+typedef struct VkVideoCodingControlInfoKHR {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    VkVideoCodingControlFlagsKHR    flags;
+} VkVideoCodingControlInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
+typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
+typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
+typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
+typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
+typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkVideoProfileInfoKHR*                pVideoProfile,
+    VkVideoCapabilitiesKHR*                     pCapabilities);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
+    uint32_t*                                   pVideoFormatPropertyCount,
+    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
+    VkDevice                                    device,
+    const VkVideoSessionCreateInfoKHR*          pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkVideoSessionKHR*                          pVideoSession);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
+    VkDevice                                    device,
+    VkVideoSessionKHR                           videoSession,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
+    VkDevice                                    device,
+    VkVideoSessionKHR                           videoSession,
+    uint32_t*                                   pMemoryRequirementsCount,
+    VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
+    VkDevice                                    device,
+    VkVideoSessionKHR                           videoSession,
+    uint32_t                                    bindSessionMemoryInfoCount,
+    const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
+    VkDevice                                    device,
+    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkVideoSessionParametersKHR*                pVideoSessionParameters);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
+    VkDevice                                    device,
+    VkVideoSessionParametersKHR                 videoSessionParameters,
+    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
+    VkDevice                                    device,
+    VkVideoSessionParametersKHR                 videoSessionParameters,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkVideoBeginCodingInfoKHR*            pBeginInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
+#endif
+
+
+// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_decode_queue 1
+#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
+#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
+
+typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
+    VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
+    VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
+    VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoDecodeCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
+
+typedef enum VkVideoDecodeUsageFlagBitsKHR {
+    VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
+    VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
+    VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
+    VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
+    VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoDecodeUsageFlagBitsKHR;
+typedef VkFlags VkVideoDecodeUsageFlagsKHR;
+typedef VkFlags VkVideoDecodeFlagsKHR;
+typedef struct VkVideoDecodeCapabilitiesKHR {
+    VkStructureType                    sType;
+    void*                              pNext;
+    VkVideoDecodeCapabilityFlagsKHR    flags;
+} VkVideoDecodeCapabilitiesKHR;
+
+typedef struct VkVideoDecodeUsageInfoKHR {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkVideoDecodeUsageFlagsKHR    videoUsageHints;
+} VkVideoDecodeUsageInfoKHR;
+
+typedef struct VkVideoDecodeInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkVideoDecodeFlagsKHR                 flags;
+    VkBuffer                              srcBuffer;
+    VkDeviceSize                          srcBufferOffset;
+    VkDeviceSize                          srcBufferRange;
+    VkVideoPictureResourceInfoKHR         dstPictureResource;
+    const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
+    uint32_t                              referenceSlotCount;
+    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
+} VkVideoDecodeInfoKHR;
+
+typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkVideoDecodeInfoKHR*                 pDecodeInfo);
+#endif
+
+
+// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_encode_h264 1
+#include "vk_video/vulkan_video_codec_h264std.h"
+#include "vk_video/vulkan_video_codec_h264std_encode.h"
+#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
+#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
+
+typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
+    VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
+    VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH264CapabilityFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
+
+typedef enum VkVideoEncodeH264StdFlagBitsKHR {
+    VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
+    VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
+    VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
+    VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
+    VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
+    VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
+    VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
+    VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
+    VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
+    VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
+    VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
+    VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
+    VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
+    VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
+    VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
+    VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH264StdFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
+
+typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH264RateControlFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
+typedef struct VkVideoEncodeH264CapabilitiesKHR {
+    VkStructureType                        sType;
+    void*                                  pNext;
+    VkVideoEncodeH264CapabilityFlagsKHR    flags;
+    StdVideoH264LevelIdc                   maxLevelIdc;
+    uint32_t                               maxSliceCount;
+    uint32_t                               maxPPictureL0ReferenceCount;
+    uint32_t                               maxBPictureL0ReferenceCount;
+    uint32_t                               maxL1ReferenceCount;
+    uint32_t                               maxTemporalLayerCount;
+    VkBool32                               expectDyadicTemporalLayerPattern;
+    int32_t                                minQp;
+    int32_t                                maxQp;
+    VkBool32                               prefersGopRemainingFrames;
+    VkBool32                               requiresGopRemainingFrames;
+    VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
+} VkVideoEncodeH264CapabilitiesKHR;
+
+typedef struct VkVideoEncodeH264QpKHR {
+    int32_t    qpI;
+    int32_t    qpP;
+    int32_t    qpB;
+} VkVideoEncodeH264QpKHR;
+
+typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
+    VkStructureType                         sType;
+    void*                                   pNext;
+    VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
+    uint32_t                                preferredGopFrameCount;
+    uint32_t                                preferredIdrPeriod;
+    uint32_t                                preferredConsecutiveBFrameCount;
+    uint32_t                                preferredTemporalLayerCount;
+    VkVideoEncodeH264QpKHR                  preferredConstantQp;
+    uint32_t                                preferredMaxL0ReferenceCount;
+    uint32_t                                preferredMaxL1ReferenceCount;
+    VkBool32                                preferredStdEntropyCodingModeFlag;
+} VkVideoEncodeH264QualityLevelPropertiesKHR;
+
+typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
+    VkStructureType         sType;
+    const void*             pNext;
+    VkBool32                useMaxLevelIdc;
+    StdVideoH264LevelIdc    maxLevelIdc;
+} VkVideoEncodeH264SessionCreateInfoKHR;
+
+typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
+    VkStructureType                            sType;
+    const void*                                pNext;
+    uint32_t                                   stdSPSCount;
+    const StdVideoH264SequenceParameterSet*    pStdSPSs;
+    uint32_t                                   stdPPSCount;
+    const StdVideoH264PictureParameterSet*     pStdPPSs;
+} VkVideoEncodeH264SessionParametersAddInfoKHR;
+
+typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
+    VkStructureType                                        sType;
+    const void*                                            pNext;
+    uint32_t                                               maxStdSPSCount;
+    uint32_t                                               maxStdPPSCount;
+    const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
+} VkVideoEncodeH264SessionParametersCreateInfoKHR;
+
+typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           writeStdSPS;
+    VkBool32           writeStdPPS;
+    uint32_t           stdSPSId;
+    uint32_t           stdPPSId;
+} VkVideoEncodeH264SessionParametersGetInfoKHR;
+
+typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           hasStdSPSOverrides;
+    VkBool32           hasStdPPSOverrides;
+} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
+
+typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    int32_t                                 constantQp;
+    const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
+} VkVideoEncodeH264NaluSliceInfoKHR;
+
+typedef struct VkVideoEncodeH264PictureInfoKHR {
+    VkStructureType                             sType;
+    const void*                                 pNext;
+    uint32_t                                    naluSliceEntryCount;
+    const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
+    const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
+    VkBool32                                    generatePrefixNalu;
+} VkVideoEncodeH264PictureInfoKHR;
+
+typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
+} VkVideoEncodeH264DpbSlotInfoKHR;
+
+typedef struct VkVideoEncodeH264ProfileInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    StdVideoH264ProfileIdc    stdProfileIdc;
+} VkVideoEncodeH264ProfileInfoKHR;
+
+typedef struct VkVideoEncodeH264RateControlInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    VkVideoEncodeH264RateControlFlagsKHR    flags;
+    uint32_t                                gopFrameCount;
+    uint32_t                                idrPeriod;
+    uint32_t                                consecutiveBFrameCount;
+    uint32_t                                temporalLayerCount;
+} VkVideoEncodeH264RateControlInfoKHR;
+
+typedef struct VkVideoEncodeH264FrameSizeKHR {
+    uint32_t    frameISize;
+    uint32_t    framePSize;
+    uint32_t    frameBSize;
+} VkVideoEncodeH264FrameSizeKHR;
+
+typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkBool32                         useMinQp;
+    VkVideoEncodeH264QpKHR           minQp;
+    VkBool32                         useMaxQp;
+    VkVideoEncodeH264QpKHR           maxQp;
+    VkBool32                         useMaxFrameSize;
+    VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
+} VkVideoEncodeH264RateControlLayerInfoKHR;
+
+typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           useGopRemainingFrames;
+    uint32_t           gopRemainingI;
+    uint32_t           gopRemainingP;
+    uint32_t           gopRemainingB;
+} VkVideoEncodeH264GopRemainingFrameInfoKHR;
+
+
+
+// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_encode_h265 1
+#include "vk_video/vulkan_video_codec_h265std.h"
+#include "vk_video/vulkan_video_codec_h265std_encode.h"
+#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
+#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
+
+typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
+    VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
+    VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH265CapabilityFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
+
+typedef enum VkVideoEncodeH265StdFlagBitsKHR {
+    VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
+    VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
+    VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
+    VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
+    VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
+    VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
+    VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
+    VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
+    VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
+    VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
+    VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
+    VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
+    VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
+    VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
+    VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
+    VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
+    VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH265StdFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
+
+typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
+    VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH265CtbSizeFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
+
+typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
+    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
+
+typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
+    VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeH265RateControlFlagBitsKHR;
+typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
+typedef struct VkVideoEncodeH265CapabilitiesKHR {
+    VkStructureType                                sType;
+    void*                                          pNext;
+    VkVideoEncodeH265CapabilityFlagsKHR            flags;
+    StdVideoH265LevelIdc                           maxLevelIdc;
+    uint32_t                                       maxSliceSegmentCount;
+    VkExtent2D                                     maxTiles;
+    VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
+    VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
+    uint32_t                                       maxPPictureL0ReferenceCount;
+    uint32_t                                       maxBPictureL0ReferenceCount;
+    uint32_t                                       maxL1ReferenceCount;
+    uint32_t                                       maxSubLayerCount;
+    VkBool32                                       expectDyadicTemporalSubLayerPattern;
+    int32_t                                        minQp;
+    int32_t                                        maxQp;
+    VkBool32                                       prefersGopRemainingFrames;
+    VkBool32                                       requiresGopRemainingFrames;
+    VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
+} VkVideoEncodeH265CapabilitiesKHR;
+
+typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
+    VkStructureType         sType;
+    const void*             pNext;
+    VkBool32                useMaxLevelIdc;
+    StdVideoH265LevelIdc    maxLevelIdc;
+} VkVideoEncodeH265SessionCreateInfoKHR;
+
+typedef struct VkVideoEncodeH265QpKHR {
+    int32_t    qpI;
+    int32_t    qpP;
+    int32_t    qpB;
+} VkVideoEncodeH265QpKHR;
+
+typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
+    VkStructureType                         sType;
+    void*                                   pNext;
+    VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
+    uint32_t                                preferredGopFrameCount;
+    uint32_t                                preferredIdrPeriod;
+    uint32_t                                preferredConsecutiveBFrameCount;
+    uint32_t                                preferredSubLayerCount;
+    VkVideoEncodeH265QpKHR                  preferredConstantQp;
+    uint32_t                                preferredMaxL0ReferenceCount;
+    uint32_t                                preferredMaxL1ReferenceCount;
+} VkVideoEncodeH265QualityLevelPropertiesKHR;
+
+typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
+    VkStructureType                            sType;
+    const void*                                pNext;
+    uint32_t                                   stdVPSCount;
+    const StdVideoH265VideoParameterSet*       pStdVPSs;
+    uint32_t                                   stdSPSCount;
+    const StdVideoH265SequenceParameterSet*    pStdSPSs;
+    uint32_t                                   stdPPSCount;
+    const StdVideoH265PictureParameterSet*     pStdPPSs;
+} VkVideoEncodeH265SessionParametersAddInfoKHR;
+
+typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
+    VkStructureType                                        sType;
+    const void*                                            pNext;
+    uint32_t                                               maxStdVPSCount;
+    uint32_t                                               maxStdSPSCount;
+    uint32_t                                               maxStdPPSCount;
+    const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
+} VkVideoEncodeH265SessionParametersCreateInfoKHR;
+
+typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           writeStdVPS;
+    VkBool32           writeStdSPS;
+    VkBool32           writeStdPPS;
+    uint32_t           stdVPSId;
+    uint32_t           stdSPSId;
+    uint32_t           stdPPSId;
+} VkVideoEncodeH265SessionParametersGetInfoKHR;
+
+typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           hasStdVPSOverrides;
+    VkBool32           hasStdSPSOverrides;
+    VkBool32           hasStdPPSOverrides;
+} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
+
+typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
+    VkStructureType                                sType;
+    const void*                                    pNext;
+    int32_t                                        constantQp;
+    const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
+} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
+
+typedef struct VkVideoEncodeH265PictureInfoKHR {
+    VkStructureType                                    sType;
+    const void*                                        pNext;
+    uint32_t                                           naluSliceSegmentEntryCount;
+    const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
+    const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
+} VkVideoEncodeH265PictureInfoKHR;
+
+typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
+} VkVideoEncodeH265DpbSlotInfoKHR;
+
+typedef struct VkVideoEncodeH265ProfileInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    StdVideoH265ProfileIdc    stdProfileIdc;
+} VkVideoEncodeH265ProfileInfoKHR;
+
+typedef struct VkVideoEncodeH265RateControlInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    VkVideoEncodeH265RateControlFlagsKHR    flags;
+    uint32_t                                gopFrameCount;
+    uint32_t                                idrPeriod;
+    uint32_t                                consecutiveBFrameCount;
+    uint32_t                                subLayerCount;
+} VkVideoEncodeH265RateControlInfoKHR;
+
+typedef struct VkVideoEncodeH265FrameSizeKHR {
+    uint32_t    frameISize;
+    uint32_t    framePSize;
+    uint32_t    frameBSize;
+} VkVideoEncodeH265FrameSizeKHR;
+
+typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkBool32                         useMinQp;
+    VkVideoEncodeH265QpKHR           minQp;
+    VkBool32                         useMaxQp;
+    VkVideoEncodeH265QpKHR           maxQp;
+    VkBool32                         useMaxFrameSize;
+    VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
+} VkVideoEncodeH265RateControlLayerInfoKHR;
+
+typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           useGopRemainingFrames;
+    uint32_t           gopRemainingI;
+    uint32_t           gopRemainingP;
+    uint32_t           gopRemainingB;
+} VkVideoEncodeH265GopRemainingFrameInfoKHR;
+
+
+
+// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_decode_h264 1
+#include "vk_video/vulkan_video_codec_h264std_decode.h"
+#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
+#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
+
+typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
+    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
+    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
+    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
+    VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
+typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
+typedef struct VkVideoDecodeH264ProfileInfoKHR {
+    VkStructureType                              sType;
+    const void*                                  pNext;
+    StdVideoH264ProfileIdc                       stdProfileIdc;
+    VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
+} VkVideoDecodeH264ProfileInfoKHR;
+
+typedef struct VkVideoDecodeH264CapabilitiesKHR {
+    VkStructureType         sType;
+    void*                   pNext;
+    StdVideoH264LevelIdc    maxLevelIdc;
+    VkOffset2D              fieldOffsetGranularity;
+} VkVideoDecodeH264CapabilitiesKHR;
+
+typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
+    VkStructureType                            sType;
+    const void*                                pNext;
+    uint32_t                                   stdSPSCount;
+    const StdVideoH264SequenceParameterSet*    pStdSPSs;
+    uint32_t                                   stdPPSCount;
+    const StdVideoH264PictureParameterSet*     pStdPPSs;
+} VkVideoDecodeH264SessionParametersAddInfoKHR;
+
+typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
+    VkStructureType                                        sType;
+    const void*                                            pNext;
+    uint32_t                                               maxStdSPSCount;
+    uint32_t                                               maxStdPPSCount;
+    const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
+} VkVideoDecodeH264SessionParametersCreateInfoKHR;
+
+typedef struct VkVideoDecodeH264PictureInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
+    uint32_t                                sliceCount;
+    const uint32_t*                         pSliceOffsets;
+} VkVideoDecodeH264PictureInfoKHR;
+
+typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
+} VkVideoDecodeH264DpbSlotInfoKHR;
+
+
+
+// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_dynamic_rendering 1
 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
@@ -8007,6 +8830,7 @@
 #endif
 
 
+// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_multiview 1
 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
@@ -8018,6 +8842,7 @@
 
 
 
+// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_get_physical_device_properties2 1
 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
@@ -8083,6 +8908,7 @@
 #endif
 
 
+// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_device_group 1
 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
@@ -8135,11 +8961,13 @@
 #endif
 
 
+// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_draw_parameters 1
 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
 
 
+// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_maintenance1 1
 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
@@ -8157,6 +8985,7 @@
 #endif
 
 
+// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_device_group_creation 1
 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
@@ -8175,6 +9004,7 @@
 #endif
 
 
+// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_memory_capabilities 1
 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
@@ -8209,6 +9039,7 @@
 #endif
 
 
+// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_memory 1
 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
@@ -8221,6 +9052,7 @@
 
 
 
+// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_memory_fd 1
 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
@@ -8261,6 +9093,7 @@
 #endif
 
 
+// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_semaphore_capabilities 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
@@ -8286,6 +9119,7 @@
 #endif
 
 
+// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_semaphore 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
@@ -8297,6 +9131,7 @@
 
 
 
+// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_semaphore_fd 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
@@ -8331,6 +9166,7 @@
 #endif
 
 
+// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_push_descriptor 1
 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
@@ -8361,6 +9197,7 @@
 #endif
 
 
+// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_float16_int8 1
 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
@@ -8370,6 +9207,7 @@
 
 
 
+// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_16bit_storage 1
 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
@@ -8377,6 +9215,7 @@
 
 
 
+// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_incremental_present 1
 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
@@ -8400,6 +9239,7 @@
 
 
 
+// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_descriptor_update_template 1
 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
 
@@ -8437,6 +9277,7 @@
 #endif
 
 
+// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_imageless_framebuffer 1
 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
@@ -8450,6 +9291,7 @@
 
 
 
+// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_create_renderpass2 1
 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
@@ -8495,6 +9337,7 @@
 #endif
 
 
+// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shared_presentable_image 1
 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
@@ -8513,6 +9356,7 @@
 #endif
 
 
+// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_fence_capabilities 1
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
@@ -8538,6 +9382,7 @@
 #endif
 
 
+// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_fence 1
 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
@@ -8549,6 +9394,7 @@
 
 
 
+// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_fence_fd 1
 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
@@ -8583,6 +9429,7 @@
 #endif
 
 
+// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_performance_query 1
 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
@@ -8723,6 +9570,7 @@
 #endif
 
 
+// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_maintenance2 1
 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
@@ -8744,6 +9592,7 @@
 
 
 
+// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_get_surface_capabilities2 1
 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
@@ -8782,6 +9631,7 @@
 #endif
 
 
+// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_variable_pointers 1
 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
@@ -8791,6 +9641,7 @@
 
 
 
+// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_get_display_properties2 1
 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
@@ -8854,6 +9705,7 @@
 #endif
 
 
+// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_dedicated_allocation 1
 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
@@ -8863,16 +9715,19 @@
 
 
 
+// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_storage_buffer_storage_class 1
 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
 
 
+// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_relaxed_block_layout 1
 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
 
 
+// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_get_memory_requirements2 1
 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
@@ -8909,6 +9764,7 @@
 #endif
 
 
+// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_image_format_list 1
 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
@@ -8916,6 +9772,7 @@
 
 
 
+// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_sampler_ycbcr_conversion 1
 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
 
@@ -8956,6 +9813,7 @@
 #endif
 
 
+// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_bind_memory2 1
 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
@@ -8979,6 +9837,7 @@
 #endif
 
 
+// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_maintenance3 1
 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
@@ -8998,6 +9857,7 @@
 #endif
 
 
+// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_draw_indirect_count 1
 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
@@ -9025,6 +9885,7 @@
 #endif
 
 
+// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_subgroup_extended_types 1
 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
@@ -9032,6 +9893,7 @@
 
 
 
+// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_8bit_storage 1
 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
@@ -9039,6 +9901,7 @@
 
 
 
+// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_atomic_int64 1
 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
@@ -9046,6 +9909,7 @@
 
 
 
+// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_clock 1
 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
@@ -9058,6 +9922,60 @@
 
 
 
+// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_decode_h265 1
+#include "vk_video/vulkan_video_codec_h265std_decode.h"
+#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
+#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
+typedef struct VkVideoDecodeH265ProfileInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    StdVideoH265ProfileIdc    stdProfileIdc;
+} VkVideoDecodeH265ProfileInfoKHR;
+
+typedef struct VkVideoDecodeH265CapabilitiesKHR {
+    VkStructureType         sType;
+    void*                   pNext;
+    StdVideoH265LevelIdc    maxLevelIdc;
+} VkVideoDecodeH265CapabilitiesKHR;
+
+typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
+    VkStructureType                            sType;
+    const void*                                pNext;
+    uint32_t                                   stdVPSCount;
+    const StdVideoH265VideoParameterSet*       pStdVPSs;
+    uint32_t                                   stdSPSCount;
+    const StdVideoH265SequenceParameterSet*    pStdSPSs;
+    uint32_t                                   stdPPSCount;
+    const StdVideoH265PictureParameterSet*     pStdPPSs;
+} VkVideoDecodeH265SessionParametersAddInfoKHR;
+
+typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
+    VkStructureType                                        sType;
+    const void*                                            pNext;
+    uint32_t                                               maxStdVPSCount;
+    uint32_t                                               maxStdSPSCount;
+    uint32_t                                               maxStdPPSCount;
+    const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
+} VkVideoDecodeH265SessionParametersCreateInfoKHR;
+
+typedef struct VkVideoDecodeH265PictureInfoKHR {
+    VkStructureType                         sType;
+    const void*                             pNext;
+    const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
+    uint32_t                                sliceSegmentCount;
+    const uint32_t*                         pSliceSegmentOffsets;
+} VkVideoDecodeH265PictureInfoKHR;
+
+typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
+} VkVideoDecodeH265DpbSlotInfoKHR;
+
+
+
+// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_global_priority 1
 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
@@ -9095,6 +10013,7 @@
 
 
 
+// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_driver_properties 1
 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
@@ -9108,6 +10027,7 @@
 
 
 
+// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_float_controls 1
 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
@@ -9117,6 +10037,7 @@
 
 
 
+// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_depth_stencil_resolve 1
 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
@@ -9130,11 +10051,13 @@
 
 
 
+// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_swapchain_mutable_format 1
 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
 
 
+// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_timeline_semaphore 1
 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
@@ -9177,6 +10100,7 @@
 #endif
 
 
+// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_vulkan_memory_model 1
 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
@@ -9184,6 +10108,7 @@
 
 
 
+// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_terminate_invocation 1
 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
@@ -9191,6 +10116,7 @@
 
 
 
+// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_fragment_shading_rate 1
 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
@@ -9270,11 +10196,13 @@
 #endif
 
 
+// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_spirv_1_4 1
 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
 
 
+// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_surface_protected_capabilities 1
 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
@@ -9286,6 +10214,7 @@
 
 
 
+// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_separate_depth_stencil_layouts 1
 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
@@ -9297,6 +10226,7 @@
 
 
 
+// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_present_wait 1
 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
@@ -9317,6 +10247,7 @@
 #endif
 
 
+// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_uniform_buffer_standard_layout 1
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
@@ -9324,6 +10255,7 @@
 
 
 
+// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_buffer_device_address 1
 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
@@ -9356,6 +10288,7 @@
 #endif
 
 
+// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_deferred_host_operations 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
@@ -9391,6 +10324,7 @@
 #endif
 
 
+// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_pipeline_executable_properties 1
 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
@@ -9481,6 +10415,43 @@
 #endif
 
 
+// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_map_memory2 1
+#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
+#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
+typedef VkFlags VkMemoryUnmapFlagsKHR;
+typedef struct VkMemoryMapInfoKHR {
+    VkStructureType     sType;
+    const void*         pNext;
+    VkMemoryMapFlags    flags;
+    VkDeviceMemory      memory;
+    VkDeviceSize        offset;
+    VkDeviceSize        size;
+} VkMemoryMapInfoKHR;
+
+typedef struct VkMemoryUnmapInfoKHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkMemoryUnmapFlagsKHR    flags;
+    VkDeviceMemory           memory;
+} VkMemoryUnmapInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData);
+typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
+    VkDevice                                    device,
+    const VkMemoryMapInfoKHR*                   pMemoryMapInfo,
+    void**                                      ppData);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
+    VkDevice                                    device,
+    const VkMemoryUnmapInfoKHR*                 pMemoryUnmapInfo);
+#endif
+
+
+// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_integer_dot_product 1
 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
@@ -9490,6 +10461,7 @@
 
 
 
+// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_pipeline_library 1
 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
@@ -9502,11 +10474,13 @@
 
 
 
+// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_non_semantic_info 1
 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
 
 
+// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_present_id 1
 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
@@ -9525,6 +10499,180 @@
 
 
 
+// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_encode_queue 1
+#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
+#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
+
+typedef enum VkVideoEncodeTuningModeKHR {
+    VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
+    VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
+    VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
+    VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
+    VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
+    VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeTuningModeKHR;
+typedef VkFlags VkVideoEncodeFlagsKHR;
+
+typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
+    VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
+
+typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
+    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
+    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeRateControlModeFlagBitsKHR;
+typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
+
+typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
+    VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeFeedbackFlagBitsKHR;
+typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
+
+typedef enum VkVideoEncodeUsageFlagBitsKHR {
+    VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
+    VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
+    VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeUsageFlagBitsKHR;
+typedef VkFlags VkVideoEncodeUsageFlagsKHR;
+
+typedef enum VkVideoEncodeContentFlagBitsKHR {
+    VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
+    VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
+    VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
+    VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
+    VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeContentFlagBitsKHR;
+typedef VkFlags VkVideoEncodeContentFlagsKHR;
+typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
+typedef struct VkVideoEncodeInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkVideoEncodeFlagsKHR                 flags;
+    VkBuffer                              dstBuffer;
+    VkDeviceSize                          dstBufferOffset;
+    VkDeviceSize                          dstBufferRange;
+    VkVideoPictureResourceInfoKHR         srcPictureResource;
+    const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
+    uint32_t                              referenceSlotCount;
+    const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
+    uint32_t                              precedingExternallyEncodedBytes;
+} VkVideoEncodeInfoKHR;
+
+typedef struct VkVideoEncodeCapabilitiesKHR {
+    VkStructureType                         sType;
+    void*                                   pNext;
+    VkVideoEncodeCapabilityFlagsKHR         flags;
+    VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
+    uint32_t                                maxRateControlLayers;
+    uint64_t                                maxBitrate;
+    uint32_t                                maxQualityLevels;
+    VkExtent2D                              encodeInputPictureGranularity;
+    VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
+} VkVideoEncodeCapabilitiesKHR;
+
+typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
+} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
+
+typedef struct VkVideoEncodeUsageInfoKHR {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    VkVideoEncodeUsageFlagsKHR      videoUsageHints;
+    VkVideoEncodeContentFlagsKHR    videoContentHints;
+    VkVideoEncodeTuningModeKHR      tuningMode;
+} VkVideoEncodeUsageInfoKHR;
+
+typedef struct VkVideoEncodeRateControlLayerInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint64_t           averageBitrate;
+    uint64_t           maxBitrate;
+    uint32_t           frameRateNumerator;
+    uint32_t           frameRateDenominator;
+} VkVideoEncodeRateControlLayerInfoKHR;
+
+typedef struct VkVideoEncodeRateControlInfoKHR {
+    VkStructureType                                sType;
+    const void*                                    pNext;
+    VkVideoEncodeRateControlFlagsKHR               flags;
+    VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
+    uint32_t                                       layerCount;
+    const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
+    uint32_t                                       virtualBufferSizeInMs;
+    uint32_t                                       initialVirtualBufferSizeInMs;
+} VkVideoEncodeRateControlInfoKHR;
+
+typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    const VkVideoProfileInfoKHR*    pVideoProfile;
+    uint32_t                        qualityLevel;
+} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+
+typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
+    VkStructureType                            sType;
+    void*                                      pNext;
+    VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
+    uint32_t                                   preferredRateControlLayerCount;
+} VkVideoEncodeQualityLevelPropertiesKHR;
+
+typedef struct VkVideoEncodeQualityLevelInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           qualityLevel;
+} VkVideoEncodeQualityLevelInfoKHR;
+
+typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
+    VkStructureType                sType;
+    const void*                    pNext;
+    VkVideoSessionParametersKHR    videoSessionParameters;
+} VkVideoEncodeSessionParametersGetInfoKHR;
+
+typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           hasOverrides;
+} VkVideoEncodeSessionParametersFeedbackInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
+typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
+    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
+    VkDevice                                    device,
+    const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
+    VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
+    size_t*                                     pDataSize,
+    void*                                       pData);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkVideoEncodeInfoKHR*                 pEncodeInfo);
+#endif
+
+
+// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_synchronization2 1
 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
@@ -9625,6 +10773,7 @@
 #endif
 
 
+// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_fragment_shader_barycentric 1
 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
@@ -9642,6 +10791,7 @@
 
 
 
+// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_shader_subgroup_uniform_control_flow 1
 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
@@ -9653,6 +10803,7 @@
 
 
 
+// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_zero_initialize_workgroup_memory 1
 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
@@ -9660,6 +10811,7 @@
 
 
 
+// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_workgroup_memory_explicit_layout 1
 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
@@ -9674,6 +10826,7 @@
 
 
 
+// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_copy_commands2 1
 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
@@ -9733,6 +10886,7 @@
 #endif
 
 
+// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_format_feature_flags2 1
 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
@@ -9744,6 +10898,7 @@
 
 
 
+// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_ray_tracing_maintenance1 1
 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
@@ -9780,11 +10935,13 @@
 #endif
 
 
+// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_portability_enumeration 1
 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
 
 
+// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_maintenance4 1
 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
@@ -9819,6 +10976,473 @@
 #endif
 
 
+// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_maintenance5 1
+#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
+#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
+typedef VkFlags64 VkPipelineCreateFlags2KHR;
+
+// Flag bits for VkPipelineCreateFlagBits2KHR
+typedef VkFlags64 VkPipelineCreateFlagBits2KHR;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
+
+typedef VkFlags64 VkBufferUsageFlags2KHR;
+
+// Flag bits for VkBufferUsageFlagBits2KHR
+typedef VkFlags64 VkBufferUsageFlagBits2KHR;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
+#endif
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
+
+typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           maintenance5;
+} VkPhysicalDeviceMaintenance5FeaturesKHR;
+
+typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
+    VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
+    VkBool32           depthStencilSwizzleOneSupport;
+    VkBool32           polygonModePointSize;
+    VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
+    VkBool32           nonStrictWideLinesUseParallelogram;
+} VkPhysicalDeviceMaintenance5PropertiesKHR;
+
+typedef struct VkRenderingAreaInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           viewMask;
+    uint32_t           colorAttachmentCount;
+    const VkFormat*    pColorAttachmentFormats;
+    VkFormat           depthAttachmentFormat;
+    VkFormat           stencilAttachmentFormat;
+} VkRenderingAreaInfoKHR;
+
+typedef struct VkImageSubresource2KHR {
+    VkStructureType       sType;
+    void*                 pNext;
+    VkImageSubresource    imageSubresource;
+} VkImageSubresource2KHR;
+
+typedef struct VkDeviceImageSubresourceInfoKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    const VkImageCreateInfo*         pCreateInfo;
+    const VkImageSubresource2KHR*    pSubresource;
+} VkDeviceImageSubresourceInfoKHR;
+
+typedef struct VkSubresourceLayout2KHR {
+    VkStructureType        sType;
+    void*                  pNext;
+    VkSubresourceLayout    subresourceLayout;
+} VkSubresourceLayout2KHR;
+
+typedef struct VkPipelineCreateFlags2CreateInfoKHR {
+    VkStructureType              sType;
+    const void*                  pNext;
+    VkPipelineCreateFlags2KHR    flags;
+} VkPipelineCreateFlags2CreateInfoKHR;
+
+typedef struct VkBufferUsageFlags2CreateInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    VkBufferUsageFlags2KHR    usage;
+} VkBufferUsageFlags2CreateInfoKHR;
+
+typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
+typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity);
+typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout);
+typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
+    VkCommandBuffer                             commandBuffer,
+    VkBuffer                                    buffer,
+    VkDeviceSize                                offset,
+    VkDeviceSize                                size,
+    VkIndexType                                 indexType);
+
+VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
+    VkDevice                                    device,
+    const VkRenderingAreaInfoKHR*               pRenderingAreaInfo,
+    VkExtent2D*                                 pGranularity);
+
+VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
+    VkDevice                                    device,
+    const VkDeviceImageSubresourceInfoKHR*      pInfo,
+    VkSubresourceLayout2KHR*                    pLayout);
+
+VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
+    VkDevice                                    device,
+    VkImage                                     image,
+    const VkImageSubresource2KHR*               pSubresource,
+    VkSubresourceLayout2KHR*                    pLayout);
+#endif
+
+
+// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_ray_tracing_position_fetch 1
+#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
+#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
+typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           rayTracingPositionFetch;
+} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+
+
+
+// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_cooperative_matrix 1
+#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
+#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
+
+typedef enum VkComponentTypeKHR {
+    VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
+    VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
+    VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
+    VK_COMPONENT_TYPE_SINT8_KHR = 3,
+    VK_COMPONENT_TYPE_SINT16_KHR = 4,
+    VK_COMPONENT_TYPE_SINT32_KHR = 5,
+    VK_COMPONENT_TYPE_SINT64_KHR = 6,
+    VK_COMPONENT_TYPE_UINT8_KHR = 7,
+    VK_COMPONENT_TYPE_UINT16_KHR = 8,
+    VK_COMPONENT_TYPE_UINT32_KHR = 9,
+    VK_COMPONENT_TYPE_UINT64_KHR = 10,
+    VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
+    VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
+    VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
+    VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
+    VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
+    VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
+    VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
+    VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
+    VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
+    VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
+    VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
+    VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkComponentTypeKHR;
+
+typedef enum VkScopeKHR {
+    VK_SCOPE_DEVICE_KHR = 1,
+    VK_SCOPE_WORKGROUP_KHR = 2,
+    VK_SCOPE_SUBGROUP_KHR = 3,
+    VK_SCOPE_QUEUE_FAMILY_KHR = 5,
+    VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
+    VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
+    VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
+    VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
+    VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkScopeKHR;
+typedef struct VkCooperativeMatrixPropertiesKHR {
+    VkStructureType       sType;
+    void*                 pNext;
+    uint32_t              MSize;
+    uint32_t              NSize;
+    uint32_t              KSize;
+    VkComponentTypeKHR    AType;
+    VkComponentTypeKHR    BType;
+    VkComponentTypeKHR    CType;
+    VkComponentTypeKHR    ResultType;
+    VkBool32              saturatingAccumulation;
+    VkScopeKHR            scope;
+} VkCooperativeMatrixPropertiesKHR;
+
+typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           cooperativeMatrix;
+    VkBool32           cooperativeMatrixRobustBufferAccess;
+} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
+
+typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
+    VkStructureType       sType;
+    void*                 pNext;
+    VkShaderStageFlags    cooperativeMatrixSupportedStages;
+} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t*                                   pPropertyCount,
+    VkCooperativeMatrixPropertiesKHR*           pProperties);
+#endif
+
+
+// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_video_maintenance1 1
+#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
+#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
+typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           videoMaintenance1;
+} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
+
+typedef struct VkVideoInlineQueryInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkQueryPool        queryPool;
+    uint32_t           firstQuery;
+    uint32_t           queryCount;
+} VkVideoInlineQueryInfoKHR;
+
+
+
+// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_vertex_attribute_divisor 1
+#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
+#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
+typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxVertexAttribDivisor;
+    VkBool32           supportsNonZeroFirstInstance;
+} VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+
+typedef struct VkVertexInputBindingDivisorDescriptionKHR {
+    uint32_t    binding;
+    uint32_t    divisor;
+} VkVertexInputBindingDivisorDescriptionKHR;
+
+typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    uint32_t                                            vertexBindingDivisorCount;
+    const VkVertexInputBindingDivisorDescriptionKHR*    pVertexBindingDivisors;
+} VkPipelineVertexInputDivisorStateCreateInfoKHR;
+
+typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           vertexAttributeInstanceRateDivisor;
+    VkBool32           vertexAttributeInstanceRateZeroDivisor;
+} VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
+
+
+
+// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_calibrated_timestamps 1
+#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
+#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
+
+typedef enum VkTimeDomainKHR {
+    VK_TIME_DOMAIN_DEVICE_KHR = 0,
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
+    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
+    VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
+    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
+    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
+    VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkTimeDomainKHR;
+typedef struct VkCalibratedTimestampInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkTimeDomainKHR    timeDomain;
+} VkCalibratedTimestampInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
+typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t*                                   pTimeDomainCount,
+    VkTimeDomainKHR*                            pTimeDomains);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
+    VkDevice                                    device,
+    uint32_t                                    timestampCount,
+    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
+    uint64_t*                                   pTimestamps,
+    uint64_t*                                   pMaxDeviation);
+#endif
+
+
+// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_maintenance6 1
+#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
+#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
+typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           maintenance6;
+} VkPhysicalDeviceMaintenance6FeaturesKHR;
+
+typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           blockTexelViewCompatibleMultipleLayers;
+    uint32_t           maxCombinedImageSamplerDescriptorCount;
+    VkBool32           fragmentShadingRateClampCombinerInputs;
+} VkPhysicalDeviceMaintenance6PropertiesKHR;
+
+typedef struct VkBindMemoryStatusKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkResult*          pResult;
+} VkBindMemoryStatusKHR;
+
+typedef struct VkBindDescriptorSetsInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    VkShaderStageFlags        stageFlags;
+    VkPipelineLayout          layout;
+    uint32_t                  firstSet;
+    uint32_t                  descriptorSetCount;
+    const VkDescriptorSet*    pDescriptorSets;
+    uint32_t                  dynamicOffsetCount;
+    const uint32_t*           pDynamicOffsets;
+} VkBindDescriptorSetsInfoKHR;
+
+typedef struct VkPushConstantsInfoKHR {
+    VkStructureType       sType;
+    const void*           pNext;
+    VkPipelineLayout      layout;
+    VkShaderStageFlags    stageFlags;
+    uint32_t              offset;
+    uint32_t              size;
+    const void*           pValues;
+} VkPushConstantsInfoKHR;
+
+typedef struct VkPushDescriptorSetInfoKHR {
+    VkStructureType                sType;
+    const void*                    pNext;
+    VkShaderStageFlags             stageFlags;
+    VkPipelineLayout               layout;
+    uint32_t                       set;
+    uint32_t                       descriptorWriteCount;
+    const VkWriteDescriptorSet*    pDescriptorWrites;
+} VkPushDescriptorSetInfoKHR;
+
+typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
+    VkPipelineLayout              layout;
+    uint32_t                      set;
+    const void*                   pData;
+} VkPushDescriptorSetWithTemplateInfoKHR;
+
+typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
+    VkStructureType        sType;
+    const void*            pNext;
+    VkShaderStageFlags     stageFlags;
+    VkPipelineLayout       layout;
+    uint32_t               firstSet;
+    uint32_t               setCount;
+    const uint32_t*        pBufferIndices;
+    const VkDeviceSize*    pOffsets;
+} VkSetDescriptorBufferOffsetsInfoEXT;
+
+typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
+    VkStructureType       sType;
+    const void*           pNext;
+    VkShaderStageFlags    stageFlags;
+    VkPipelineLayout      layout;
+    uint32_t              set;
+} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkBindDescriptorSetsInfoKHR*          pBindDescriptorSetsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkPushConstantsInfoKHR*               pPushConstantsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkPushDescriptorSetInfoKHR*           pPushDescriptorSetInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
+#endif
+
+
+// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_debug_report 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
@@ -9863,6 +11487,8 @@
     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
+    VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
+    VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
@@ -9926,21 +11552,25 @@
 #endif
 
 
+// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_glsl_shader 1
 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
 
 
+// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_depth_range_unrestricted 1
 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
 
 
+// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
 #define VK_IMG_filter_cubic 1
 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
 
 
+// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_rasterization_order 1
 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
@@ -9958,16 +11588,19 @@
 
 
 
+// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_trinary_minmax 1
 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
 
 
+// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_explicit_vertex_parameter 1
 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
 
 
+// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_debug_marker 1
 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
@@ -10024,11 +11657,13 @@
 #endif
 
 
+// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_gcn_shader 1
 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
 
 
+// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_dedicated_allocation 1
 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
@@ -10053,6 +11688,7 @@
 
 
 
+// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_transform_feedback 1
 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
@@ -10140,6 +11776,7 @@
 #endif
 
 
+// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
 #define VK_NVX_binary_import 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
@@ -10211,6 +11848,7 @@
 #endif
 
 
+// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
 #define VK_NVX_image_view_handle 1
 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
@@ -10244,6 +11882,7 @@
 #endif
 
 
+// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_draw_indirect_count 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
@@ -10271,21 +11910,25 @@
 #endif
 
 
+// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_negative_viewport_height 1
 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
 
 
+// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_gpu_shader_half_float 1
 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
 
 
+// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_ballot 1
 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
 
 
+// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_texture_gather_bias_lod 1
 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
@@ -10297,6 +11940,7 @@
 
 
 
+// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_info 1
 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
@@ -10338,11 +11982,13 @@
 #endif
 
 
+// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_image_load_store_lod 1
 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
 
 
+// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_corner_sampled_image 1
 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
@@ -10354,11 +12000,13 @@
 
 
 
+// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
 #define VK_IMG_format_pvrtc 1
 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
 
 
+// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_external_memory_capabilities 1
 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
@@ -10401,6 +12049,7 @@
 #endif
 
 
+// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_external_memory 1
 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
@@ -10418,8 +12067,9 @@
 
 
 
+// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_validation_flags 1
-#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
+#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
 
 typedef enum VkValidationCheckEXT {
@@ -10436,16 +12086,19 @@
 
 
 
+// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_subgroup_ballot 1
 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
 
 
+// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_subgroup_vote 1
 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
 
 
+// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_texture_compression_astc_hdr 1
 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
@@ -10453,6 +12106,7 @@
 
 
 
+// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_astc_decode_mode 1
 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
@@ -10470,6 +12124,7 @@
 
 
 
+// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pipeline_robustness 1
 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
@@ -10515,6 +12170,7 @@
 
 
 
+// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_conditional_rendering 1
 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
@@ -10558,6 +12214,7 @@
 #endif
 
 
+// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_clip_space_w_scaling 1
 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
@@ -10585,6 +12242,7 @@
 #endif
 
 
+// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_direct_mode_display 1
 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
@@ -10597,6 +12255,7 @@
 #endif
 
 
+// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_display_surface_counter 1
 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
@@ -10633,6 +12292,7 @@
 #endif
 
 
+// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_display_control 1
 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
@@ -10709,6 +12369,7 @@
 #endif
 
 
+// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
 #define VK_GOOGLE_display_timing 1
 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
@@ -10753,16 +12414,19 @@
 #endif
 
 
+// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_sample_mask_override_coverage 1
 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
 
 
+// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_geometry_shader_passthrough 1
 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
 
 
+// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_viewport_array2 1
 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
@@ -10770,6 +12434,7 @@
 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
 
 
+// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
 #define VK_NVX_multiview_per_view_attributes 1
 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
@@ -10781,6 +12446,7 @@
 
 
 
+// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_viewport_swizzle 1
 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
@@ -10814,8 +12480,9 @@
 
 
 
+// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_discard_rectangles 1
-#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
+#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
 
 typedef enum VkDiscardRectangleModeEXT {
@@ -10840,6 +12507,8 @@
 } VkPipelineDiscardRectangleStateCreateInfoEXT;
 
 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
@@ -10847,9 +12516,18 @@
     uint32_t                                    firstDiscardRectangle,
     uint32_t                                    discardRectangleCount,
     const VkRect2D*                             pDiscardRectangles);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    discardRectangleEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkDiscardRectangleModeEXT                   discardRectangleMode);
 #endif
 
 
+// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_conservative_rasterization 1
 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
@@ -10885,6 +12563,7 @@
 
 
 
+// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_depth_clip_enable 1
 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
@@ -10904,11 +12583,13 @@
 
 
 
+// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_swapchain_colorspace 1
 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
 
 
+// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_hdr_metadata 1
 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
@@ -10941,17 +12622,32 @@
 #endif
 
 
+// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
+#define VK_IMG_relaxed_line_rasterization 1
+#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
+#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
+typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           relaxedLineRasterization;
+} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+
+
+
+// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_external_memory_dma_buf 1
 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
 
 
+// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_queue_family_foreign 1
 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
 
 
+// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_debug_utils 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
@@ -11094,6 +12790,7 @@
 #endif
 
 
+// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_sampler_filter_minmax 1
 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
@@ -11105,21 +12802,25 @@
 
 
 
+// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_gpu_shader_int16 1
 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
 
 
+// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_mixed_attachment_samples 1
 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
 
 
+// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_fragment_mask 1
 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
 
 
+// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_inline_uniform_block 1
 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
@@ -11133,11 +12834,13 @@
 
 
 
+// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_stencil_export 1
 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
 
 
+// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_sample_locations 1
 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
@@ -11212,6 +12915,7 @@
 #endif
 
 
+// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_blend_operation_advanced 1
 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
@@ -11249,6 +12953,7 @@
 
 
 
+// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_fragment_coverage_to_color 1
 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
@@ -11263,6 +12968,7 @@
 
 
 
+// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_framebuffer_mixed_samples 1
 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
@@ -11287,11 +12993,13 @@
 
 
 
+// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_fill_rectangle 1
 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
 
 
+// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_shader_sm_builtins 1
 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
@@ -11310,11 +13018,13 @@
 
 
 
+// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_post_depth_coverage 1
 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
 
 
+// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_drm_format_modifier 1
 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
@@ -11384,6 +13094,7 @@
 #endif
 
 
+// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_validation_cache 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
@@ -11439,6 +13150,7 @@
 #endif
 
 
+// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_descriptor_indexing 1
 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
@@ -11458,11 +13170,13 @@
 
 
 
+// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_viewport_index_layer 1
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
 
 
+// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_shading_rate_image 1
 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
@@ -11563,6 +13277,7 @@
 #endif
 
 
+// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_ray_tracing 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
@@ -11666,6 +13381,10 @@
     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
+#endif
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
@@ -11937,6 +13656,7 @@
 #endif
 
 
+// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_representative_fragment_test 1
 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
@@ -11954,6 +13674,7 @@
 
 
 
+// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_filter_cubic 1
 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
@@ -11972,11 +13693,13 @@
 
 
 
+// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_render_pass_shader_resolve 1
 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
 
 
+// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_global_priority 1
 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
@@ -11986,6 +13709,7 @@
 
 
 
+// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_external_memory_host 1
 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
@@ -12019,6 +13743,7 @@
 #endif
 
 
+// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_buffer_marker 1
 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
@@ -12034,6 +13759,7 @@
 #endif
 
 
+// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_pipeline_compiler_control 1
 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
@@ -12050,41 +13776,33 @@
 
 
 
+// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_calibrated_timestamps 1
 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
+typedef VkTimeDomainKHR VkTimeDomainEXT;
 
-typedef enum VkTimeDomainEXT {
-    VK_TIME_DOMAIN_DEVICE_EXT = 0,
-    VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
-    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
-    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
-    VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkTimeDomainEXT;
-typedef struct VkCalibratedTimestampInfoEXT {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkTimeDomainEXT    timeDomain;
-} VkCalibratedTimestampInfoEXT;
+typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
 
-typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
-typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
+typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
     VkPhysicalDevice                            physicalDevice,
     uint32_t*                                   pTimeDomainCount,
-    VkTimeDomainEXT*                            pTimeDomains);
+    VkTimeDomainKHR*                            pTimeDomains);
 
 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
     VkDevice                                    device,
     uint32_t                                    timestampCount,
-    const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
+    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
     uint64_t*                                   pTimestamps,
     uint64_t*                                   pMaxDeviation);
 #endif
 
 
+// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_core_properties 1
 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
@@ -12109,6 +13827,7 @@
 
 
 
+// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_memory_overallocation_behavior 1
 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
@@ -12127,6 +13846,7 @@
 
 
 
+// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_vertex_attribute_divisor 1
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
@@ -12136,27 +13856,15 @@
     uint32_t           maxVertexAttribDivisor;
 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
 
-typedef struct VkVertexInputBindingDivisorDescriptionEXT {
-    uint32_t    binding;
-    uint32_t    divisor;
-} VkVertexInputBindingDivisorDescriptionEXT;
+typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT;
 
-typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
-    VkStructureType                                     sType;
-    const void*                                         pNext;
-    uint32_t                                            vertexBindingDivisorCount;
-    const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
-} VkPipelineVertexInputDivisorStateCreateInfoEXT;
+typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT;
 
-typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
-    VkStructureType    sType;
-    void*              pNext;
-    VkBool32           vertexAttributeInstanceRateDivisor;
-    VkBool32           vertexAttributeInstanceRateZeroDivisor;
-} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
 
 
 
+// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pipeline_creation_feedback 1
 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
@@ -12170,11 +13878,13 @@
 
 
 
+// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_shader_subgroup_partitioned 1
 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
 
 
+// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_compute_shader_derivatives 1
 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
@@ -12187,6 +13897,7 @@
 
 
 
+// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_mesh_shader 1
 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
@@ -12248,6 +13959,7 @@
 #endif
 
 
+// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_fragment_shader_barycentric 1
 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
@@ -12255,6 +13967,7 @@
 
 
 
+// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_shader_image_footprint 1
 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
@@ -12266,8 +13979,9 @@
 
 
 
+// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_scissor_exclusive 1
-#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
+#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
     VkStructureType    sType;
@@ -12282,9 +13996,16 @@
     VkBool32           exclusiveScissor;
 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
 
+typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
 
 #ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstExclusiveScissor,
+    uint32_t                                    exclusiveScissorCount,
+    const VkBool32*                             pExclusiveScissorEnables);
+
 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
     VkCommandBuffer                             commandBuffer,
     uint32_t                                    firstExclusiveScissor,
@@ -12293,6 +14014,7 @@
 #endif
 
 
+// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_device_diagnostic_checkpoints 1
 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
@@ -12324,6 +14046,7 @@
 #endif
 
 
+// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_INTEL_shader_integer_functions2 1
 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
@@ -12335,6 +14058,7 @@
 
 
 
+// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_INTEL_performance_query 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
@@ -12473,6 +14197,7 @@
 #endif
 
 
+// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pci_bus_info 1
 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
@@ -12487,6 +14212,7 @@
 
 
 
+// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_display_native_hdr 1
 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
@@ -12512,6 +14238,7 @@
 #endif
 
 
+// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_fragment_density_map 1
 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
@@ -12539,6 +14266,7 @@
 
 
 
+// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_scalar_block_layout 1
 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
@@ -12546,6 +14274,7 @@
 
 
 
+// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_GOOGLE_hlsl_functionality1 1
 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
@@ -12553,11 +14282,13 @@
 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
 
 
+// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
 #define VK_GOOGLE_decorate_string 1
 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
 
 
+// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_subgroup_size_control 1
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
@@ -12569,6 +14300,7 @@
 
 
 
+// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_core_properties2 1
 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
@@ -12586,6 +14318,7 @@
 
 
 
+// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_device_coherent_memory 1
 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
@@ -12597,6 +14330,7 @@
 
 
 
+// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_image_atomic_int64 1
 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
@@ -12609,6 +14343,7 @@
 
 
 
+// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_memory_budget 1
 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
@@ -12621,6 +14356,7 @@
 
 
 
+// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_memory_priority 1
 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
@@ -12638,6 +14374,7 @@
 
 
 
+// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_dedicated_allocation_image_aliasing 1
 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
@@ -12649,6 +14386,7 @@
 
 
 
+// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_buffer_device_address 1
 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
@@ -12679,6 +14417,7 @@
 #endif
 
 
+// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_tooling_info 1
 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
@@ -12698,6 +14437,7 @@
 #endif
 
 
+// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_separate_stencil_usage 1
 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
@@ -12705,8 +14445,9 @@
 
 
 
+// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_validation_features 1
-#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
+#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
 
 typedef enum VkValidationFeatureEnableEXT {
@@ -12740,32 +14481,14 @@
 
 
 
+// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_cooperative_matrix 1
 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
+typedef VkComponentTypeKHR VkComponentTypeNV;
 
-typedef enum VkComponentTypeNV {
-    VK_COMPONENT_TYPE_FLOAT16_NV = 0,
-    VK_COMPONENT_TYPE_FLOAT32_NV = 1,
-    VK_COMPONENT_TYPE_FLOAT64_NV = 2,
-    VK_COMPONENT_TYPE_SINT8_NV = 3,
-    VK_COMPONENT_TYPE_SINT16_NV = 4,
-    VK_COMPONENT_TYPE_SINT32_NV = 5,
-    VK_COMPONENT_TYPE_SINT64_NV = 6,
-    VK_COMPONENT_TYPE_UINT8_NV = 7,
-    VK_COMPONENT_TYPE_UINT16_NV = 8,
-    VK_COMPONENT_TYPE_UINT32_NV = 9,
-    VK_COMPONENT_TYPE_UINT64_NV = 10,
-    VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkComponentTypeNV;
+typedef VkScopeKHR VkScopeNV;
 
-typedef enum VkScopeNV {
-    VK_SCOPE_DEVICE_NV = 1,
-    VK_SCOPE_WORKGROUP_NV = 2,
-    VK_SCOPE_SUBGROUP_NV = 3,
-    VK_SCOPE_QUEUE_FAMILY_NV = 5,
-    VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkScopeNV;
 typedef struct VkCooperativeMatrixPropertiesNV {
     VkStructureType      sType;
     void*                pNext;
@@ -12802,6 +14525,7 @@
 #endif
 
 
+// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_coverage_reduction_mode 1
 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
@@ -12844,6 +14568,7 @@
 #endif
 
 
+// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_fragment_shader_interlock 1
 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
@@ -12857,6 +14582,7 @@
 
 
 
+// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_ycbcr_image_arrays 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
@@ -12868,6 +14594,7 @@
 
 
 
+// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_provoking_vertex 1
 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
@@ -12899,6 +14626,7 @@
 
 
 
+// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_headless_surface 1
 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
@@ -12920,6 +14648,7 @@
 #endif
 
 
+// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_line_rasterization 1
 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
@@ -12967,6 +14696,7 @@
 #endif
 
 
+// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_atomic_float 1
 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
@@ -12989,6 +14719,7 @@
 
 
 
+// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_host_query_reset 1
 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
@@ -13005,6 +14736,7 @@
 #endif
 
 
+// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_index_type_uint8 1
 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
@@ -13016,6 +14748,7 @@
 
 
 
+// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_extended_dynamic_state 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
@@ -13100,6 +14833,146 @@
 #endif
 
 
+// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_host_image_copy 1
+#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
+#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
+
+typedef enum VkHostImageCopyFlagBitsEXT {
+    VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001,
+    VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkHostImageCopyFlagBitsEXT;
+typedef VkFlags VkHostImageCopyFlagsEXT;
+typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           hostImageCopy;
+} VkPhysicalDeviceHostImageCopyFeaturesEXT;
+
+typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           copySrcLayoutCount;
+    VkImageLayout*     pCopySrcLayouts;
+    uint32_t           copyDstLayoutCount;
+    VkImageLayout*     pCopyDstLayouts;
+    uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
+    VkBool32           identicalMemoryTypeRequirements;
+} VkPhysicalDeviceHostImageCopyPropertiesEXT;
+
+typedef struct VkMemoryToImageCopyEXT {
+    VkStructureType             sType;
+    const void*                 pNext;
+    const void*                 pHostPointer;
+    uint32_t                    memoryRowLength;
+    uint32_t                    memoryImageHeight;
+    VkImageSubresourceLayers    imageSubresource;
+    VkOffset3D                  imageOffset;
+    VkExtent3D                  imageExtent;
+} VkMemoryToImageCopyEXT;
+
+typedef struct VkImageToMemoryCopyEXT {
+    VkStructureType             sType;
+    const void*                 pNext;
+    void*                       pHostPointer;
+    uint32_t                    memoryRowLength;
+    uint32_t                    memoryImageHeight;
+    VkImageSubresourceLayers    imageSubresource;
+    VkOffset3D                  imageOffset;
+    VkExtent3D                  imageExtent;
+} VkImageToMemoryCopyEXT;
+
+typedef struct VkCopyMemoryToImageInfoEXT {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkHostImageCopyFlagsEXT          flags;
+    VkImage                          dstImage;
+    VkImageLayout                    dstImageLayout;
+    uint32_t                         regionCount;
+    const VkMemoryToImageCopyEXT*    pRegions;
+} VkCopyMemoryToImageInfoEXT;
+
+typedef struct VkCopyImageToMemoryInfoEXT {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkHostImageCopyFlagsEXT          flags;
+    VkImage                          srcImage;
+    VkImageLayout                    srcImageLayout;
+    uint32_t                         regionCount;
+    const VkImageToMemoryCopyEXT*    pRegions;
+} VkCopyImageToMemoryInfoEXT;
+
+typedef struct VkCopyImageToImageInfoEXT {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkHostImageCopyFlagsEXT    flags;
+    VkImage                    srcImage;
+    VkImageLayout              srcImageLayout;
+    VkImage                    dstImage;
+    VkImageLayout              dstImageLayout;
+    uint32_t                   regionCount;
+    const VkImageCopy2*        pRegions;
+} VkCopyImageToImageInfoEXT;
+
+typedef struct VkHostImageLayoutTransitionInfoEXT {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkImage                    image;
+    VkImageLayout              oldLayout;
+    VkImageLayout              newLayout;
+    VkImageSubresourceRange    subresourceRange;
+} VkHostImageLayoutTransitionInfoEXT;
+
+typedef struct VkSubresourceHostMemcpySizeEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceSize       size;
+} VkSubresourceHostMemcpySizeEXT;
+
+typedef struct VkHostImageCopyDevicePerformanceQueryEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           optimalDeviceAccess;
+    VkBool32           identicalMemoryLayout;
+} VkHostImageCopyDevicePerformanceQueryEXT;
+
+typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT;
+
+typedef VkImageSubresource2KHR VkImageSubresource2EXT;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions);
+typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
+    VkDevice                                    device,
+    const VkCopyMemoryToImageInfoEXT*           pCopyMemoryToImageInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
+    VkDevice                                    device,
+    const VkCopyImageToMemoryInfoEXT*           pCopyImageToMemoryInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
+    VkDevice                                    device,
+    const VkCopyImageToImageInfoEXT*            pCopyImageToImageInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
+    VkDevice                                    device,
+    uint32_t                                    transitionCount,
+    const VkHostImageLayoutTransitionInfoEXT*   pTransitions);
+
+VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
+    VkDevice                                    device,
+    VkImage                                     image,
+    const VkImageSubresource2KHR*               pSubresource,
+    VkSubresourceLayout2KHR*                    pLayout);
+#endif
+
+
+// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_atomic_float2 1
 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
@@ -13122,6 +14995,7 @@
 
 
 
+// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_surface_maintenance1 1
 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
@@ -13166,6 +15040,7 @@
 
 
 
+// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_swapchain_maintenance1 1
 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
@@ -13177,21 +15052,21 @@
 
 typedef struct VkSwapchainPresentFenceInfoEXT {
     VkStructureType    sType;
-    void*              pNext;
+    const void*        pNext;
     uint32_t           swapchainCount;
     const VkFence*     pFences;
 } VkSwapchainPresentFenceInfoEXT;
 
 typedef struct VkSwapchainPresentModesCreateInfoEXT {
     VkStructureType            sType;
-    void*                      pNext;
+    const void*                pNext;
     uint32_t                   presentModeCount;
     const VkPresentModeKHR*    pPresentModes;
 } VkSwapchainPresentModesCreateInfoEXT;
 
 typedef struct VkSwapchainPresentModeInfoEXT {
     VkStructureType            sType;
-    void*                      pNext;
+    const void*                pNext;
     uint32_t                   swapchainCount;
     const VkPresentModeKHR*    pPresentModes;
 } VkSwapchainPresentModeInfoEXT;
@@ -13221,6 +15096,7 @@
 #endif
 
 
+// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_demote_to_helper_invocation 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
@@ -13228,6 +15104,7 @@
 
 
 
+// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_device_generated_commands 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
@@ -13243,6 +15120,8 @@
     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkIndirectCommandsTokenTypeNV;
 
@@ -13419,6 +15298,7 @@
 #endif
 
 
+// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_inherited_viewport_scissor 1
 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
@@ -13438,6 +15318,7 @@
 
 
 
+// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_texel_buffer_alignment 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
@@ -13451,8 +15332,9 @@
 
 
 
+// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_render_pass_transform 1
-#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 3
+#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
 typedef struct VkRenderPassTransformBeginInfoQCOM {
     VkStructureType                  sType;
@@ -13469,6 +15351,51 @@
 
 
 
+// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_depth_bias_control 1
+#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
+#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
+
+typedef enum VkDepthBiasRepresentationEXT {
+    VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
+    VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
+    VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
+    VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDepthBiasRepresentationEXT;
+typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           depthBiasControl;
+    VkBool32           leastRepresentableValueForceUnormRepresentation;
+    VkBool32           floatRepresentation;
+    VkBool32           depthBiasExact;
+} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
+
+typedef struct VkDepthBiasInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    float              depthBiasConstantFactor;
+    float              depthBiasClamp;
+    float              depthBiasSlopeFactor;
+} VkDepthBiasInfoEXT;
+
+typedef struct VkDepthBiasRepresentationInfoEXT {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    VkDepthBiasRepresentationEXT    depthBiasRepresentation;
+    VkBool32                        depthBiasExact;
+} VkDepthBiasRepresentationInfoEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
+#endif
+
+
+// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_device_memory_report 1
 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
@@ -13514,6 +15441,7 @@
 
 
 
+// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_acquire_drm_display 1
 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
@@ -13534,6 +15462,7 @@
 #endif
 
 
+// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_robustness2 1
 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
@@ -13554,6 +15483,7 @@
 
 
 
+// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_custom_border_color 1
 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
@@ -13579,11 +15509,13 @@
 
 
 
+// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
 #define VK_GOOGLE_user_type 1
 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
 
 
+// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_present_barrier 1
 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
@@ -13607,6 +15539,7 @@
 
 
 
+// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_private_data 1
 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
 
@@ -13653,6 +15586,7 @@
 #endif
 
 
+// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pipeline_creation_cache_control 1
 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
@@ -13660,6 +15594,7 @@
 
 
 
+// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_device_diagnostics_config 1
 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
@@ -13686,11 +15621,117 @@
 
 
 
+// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_render_pass_store_ops 1
 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
 
 
+// VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_cuda_kernel_launch 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
+#define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
+#define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
+typedef struct VkCudaModuleCreateInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    size_t             dataSize;
+    const void*        pData;
+} VkCudaModuleCreateInfoNV;
+
+typedef struct VkCudaFunctionCreateInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkCudaModuleNV     module;
+    const char*        pName;
+} VkCudaFunctionCreateInfoNV;
+
+typedef struct VkCudaLaunchInfoNV {
+    VkStructureType        sType;
+    const void*            pNext;
+    VkCudaFunctionNV       function;
+    uint32_t               gridDimX;
+    uint32_t               gridDimY;
+    uint32_t               gridDimZ;
+    uint32_t               blockDimX;
+    uint32_t               blockDimY;
+    uint32_t               blockDimZ;
+    uint32_t               sharedMemBytes;
+    size_t                 paramCount;
+    const void* const *    pParams;
+    size_t                 extraCount;
+    const void* const *    pExtras;
+} VkCudaLaunchInfoNV;
+
+typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           cudaKernelLaunchFeatures;
+} VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
+
+typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           computeCapabilityMinor;
+    uint32_t           computeCapabilityMajor;
+} VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
+typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
+typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
+    VkDevice                                    device,
+    const VkCudaModuleCreateInfoNV*             pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkCudaModuleNV*                             pModule);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
+    VkDevice                                    device,
+    VkCudaModuleNV                              module,
+    size_t*                                     pCacheSize,
+    void*                                       pCacheData);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
+    VkDevice                                    device,
+    const VkCudaFunctionCreateInfoNV*           pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkCudaFunctionNV*                           pFunction);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
+    VkDevice                                    device,
+    VkCudaModuleNV                              module,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
+    VkDevice                                    device,
+    VkCudaFunctionNV                            function,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
+    VkCommandBuffer                             commandBuffer,
+    const VkCudaLaunchInfoNV*                   pLaunchInfo);
+#endif
+
+
+// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_low_latency 1
+#define VK_NV_LOW_LATENCY_SPEC_VERSION    1
+#define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
+typedef struct VkQueryLowLatencySupportNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    void*              pQueriedLowLatencyData;
+} VkQueryLowLatencySupportNV;
+
+
+
+// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_descriptor_buffer 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
@@ -13903,6 +15944,7 @@
 #endif
 
 
+// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_graphics_pipeline_library 1
 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
@@ -13930,12 +15972,13 @@
 
 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
     VkStructureType                      sType;
-    void*                                pNext;
+    const void*                          pNext;
     VkGraphicsPipelineLibraryFlagsEXT    flags;
 } VkGraphicsPipelineLibraryCreateInfoEXT;
 
 
 
+// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
 #define VK_AMD_shader_early_and_late_fragment_tests 1
 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
@@ -13947,6 +15990,7 @@
 
 
 
+// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_fragment_shading_rate_enums 1
 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
@@ -14004,6 +16048,7 @@
 #endif
 
 
+// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_ray_tracing_motion_blur 1
 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
@@ -14094,6 +16139,7 @@
 
 
 
+// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_ycbcr_2plane_444_formats 1
 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
@@ -14105,6 +16151,7 @@
 
 
 
+// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_fragment_density_map2 1
 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
@@ -14125,8 +16172,9 @@
 
 
 
+// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_rotated_copy_commands 1
-#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1
+#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
 typedef struct VkCopyCommandTransformInfoQCOM {
     VkStructureType                  sType;
@@ -14136,6 +16184,7 @@
 
 
 
+// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_robustness 1
 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
@@ -14143,6 +16192,7 @@
 
 
 
+// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_compression_control 1
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
@@ -14199,18 +16249,6 @@
     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
 } VkImageCompressionControlEXT;
 
-typedef struct VkSubresourceLayout2EXT {
-    VkStructureType        sType;
-    void*                  pNext;
-    VkSubresourceLayout    subresourceLayout;
-} VkSubresourceLayout2EXT;
-
-typedef struct VkImageSubresource2EXT {
-    VkStructureType       sType;
-    void*                 pNext;
-    VkImageSubresource    imageSubresource;
-} VkImageSubresource2EXT;
-
 typedef struct VkImageCompressionPropertiesEXT {
     VkStructureType                        sType;
     void*                                  pNext;
@@ -14218,17 +16256,9 @@
     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
 } VkImageCompressionPropertiesEXT;
 
-typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout);
-
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
-    VkDevice                                    device,
-    VkImage                                     image,
-    const VkImageSubresource2EXT*               pSubresource,
-    VkSubresourceLayout2EXT*                    pLayout);
-#endif
 
 
+// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_attachment_feedback_loop_layout 1
 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
@@ -14240,6 +16270,7 @@
 
 
 
+// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_4444_formats 1
 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
@@ -14252,8 +16283,9 @@
 
 
 
+// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_device_fault 1
-#define VK_EXT_DEVICE_FAULT_SPEC_VERSION  1
+#define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
 
 typedef enum VkDeviceFaultAddressTypeEXT {
@@ -14317,6 +16349,8 @@
     uint32_t                                     applicationNameOffset;
     uint32_t                                     applicationVersion;
     uint32_t                                     engineNameOffset;
+    uint32_t                                     engineVersion;
+    uint32_t                                     apiVersion;
 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
 
 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
@@ -14329,6 +16363,7 @@
 #endif
 
 
+// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
 #define VK_ARM_rasterization_order_attachment_access 1
 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
@@ -14344,6 +16379,7 @@
 
 
 
+// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_rgba10x6_formats 1
 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
@@ -14355,6 +16391,7 @@
 
 
 
+// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
 #define VK_VALVE_mutable_descriptor_type 1
 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
@@ -14384,6 +16421,7 @@
 
 
 
+// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_vertex_input_dynamic_state 1
 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
@@ -14423,6 +16461,7 @@
 #endif
 
 
+// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_physical_device_drm 1
 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
@@ -14439,6 +16478,7 @@
 
 
 
+// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_device_address_binding_report 1
 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
@@ -14471,6 +16511,7 @@
 
 
 
+// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_depth_clip_control 1
 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
@@ -14488,6 +16529,7 @@
 
 
 
+// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_primitive_topology_list_restart 1
 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
@@ -14500,8 +16542,9 @@
 
 
 
+// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
 #define VK_HUAWEI_subpass_shading 1
-#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
+#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
     VkStructureType    sType;
@@ -14536,6 +16579,7 @@
 #endif
 
 
+// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
 #define VK_HUAWEI_invocation_mask 1
 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
@@ -14555,6 +16599,7 @@
 #endif
 
 
+// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_external_memory_rdma 1
 typedef void* VkRemoteAddressNV;
 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
@@ -14582,6 +16627,7 @@
 #endif
 
 
+// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pipeline_properties 1
 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
@@ -14609,6 +16655,39 @@
 #endif
 
 
+// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_frame_boundary 1
+#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
+#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
+
+typedef enum VkFrameBoundaryFlagBitsEXT {
+    VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
+    VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkFrameBoundaryFlagBitsEXT;
+typedef VkFlags VkFrameBoundaryFlagsEXT;
+typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           frameBoundary;
+} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
+
+typedef struct VkFrameBoundaryEXT {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkFrameBoundaryFlagsEXT    flags;
+    uint64_t                   frameID;
+    uint32_t                   imageCount;
+    const VkImage*             pImages;
+    uint32_t                   bufferCount;
+    const VkBuffer*            pBuffers;
+    uint64_t                   tagName;
+    size_t                     tagSize;
+    const void*                pTag;
+} VkFrameBoundaryEXT;
+
+
+
+// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_multisampled_render_to_single_sampled 1
 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
@@ -14633,6 +16712,7 @@
 
 
 
+// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_extended_dynamic_state2 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
@@ -14673,6 +16753,7 @@
 #endif
 
 
+// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_color_write_enable 1
 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
@@ -14699,6 +16780,7 @@
 #endif
 
 
+// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_primitives_generated_query 1
 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
@@ -14712,6 +16794,7 @@
 
 
 
+// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_global_priority_query 1
 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
@@ -14722,6 +16805,7 @@
 
 
 
+// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_view_min_lod 1
 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
@@ -14739,6 +16823,7 @@
 
 
 
+// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_multi_draw 1
 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
@@ -14788,6 +16873,7 @@
 #endif
 
 
+// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_2d_view_of_3d 1
 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
@@ -14800,6 +16886,29 @@
 
 
 
+// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_shader_tile_image 1
+#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
+#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
+typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           shaderTileImageColorReadAccess;
+    VkBool32           shaderTileImageDepthReadAccess;
+    VkBool32           shaderTileImageStencilReadAccess;
+} VkPhysicalDeviceShaderTileImageFeaturesEXT;
+
+typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           shaderTileImageCoherentReadAccelerated;
+    VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
+    VkBool32           shaderTileImageReadFromHelperInvocation;
+} VkPhysicalDeviceShaderTileImagePropertiesEXT;
+
+
+
+// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_opacity_micromap 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
@@ -14807,6 +16916,9 @@
 
 typedef enum VkMicromapTypeEXT {
     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+    VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
+#endif
     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkMicromapTypeEXT;
 
@@ -15068,11 +17180,56 @@
 #endif
 
 
+// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_load_store_op_none 1
 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
 
 
+// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
+#define VK_HUAWEI_cluster_culling_shader 1
+#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
+#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
+typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           clustercullingShader;
+    VkBool32           multiviewClusterCullingShader;
+} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+
+typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxWorkGroupCount[3];
+    uint32_t           maxWorkGroupSize[3];
+    uint32_t           maxOutputClusterCount;
+    VkDeviceSize       indirectBufferOffsetAlignment;
+} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+
+typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           clusterShadingRate;
+} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+
+typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
+typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    groupCountX,
+    uint32_t                                    groupCountY,
+    uint32_t                                    groupCountZ);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
+    VkCommandBuffer                             commandBuffer,
+    VkBuffer                                    buffer,
+    VkDeviceSize                                offset);
+#endif
+
+
+// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_border_color_swizzle 1
 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
@@ -15092,6 +17249,7 @@
 
 
 
+// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pageable_device_local_memory 1
 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
@@ -15111,6 +17269,71 @@
 #endif
 
 
+// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
+#define VK_ARM_shader_core_properties 1
+#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
+#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
+typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           pixelRate;
+    uint32_t           texelRate;
+    uint32_t           fmaRate;
+} VkPhysicalDeviceShaderCorePropertiesARM;
+
+
+
+// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
+#define VK_ARM_scheduling_controls 1
+#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
+#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
+typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
+
+// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
+typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
+static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
+
+typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           shaderCoreCount;
+} VkDeviceQueueShaderCoreControlCreateInfoARM;
+
+typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           schedulingControls;
+} VkPhysicalDeviceSchedulingControlsFeaturesARM;
+
+typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
+    VkStructureType                               sType;
+    void*                                         pNext;
+    VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
+} VkPhysicalDeviceSchedulingControlsPropertiesARM;
+
+
+
+// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_image_sliced_view_of_3d 1
+#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
+#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
+#define VK_REMAINING_3D_SLICES_EXT        (~0U)
+typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           imageSlicedViewOf3D;
+} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+
+typedef struct VkImageViewSlicedCreateInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           sliceOffset;
+    uint32_t           sliceCount;
+} VkImageViewSlicedCreateInfoEXT;
+
+
+
+// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
 #define VK_VALVE_descriptor_set_host_mapping 1
 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
@@ -15150,6 +17373,7 @@
 #endif
 
 
+// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_depth_clamp_zero_one 1
 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
@@ -15161,6 +17385,7 @@
 
 
 
+// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_non_seamless_cube_map 1
 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
@@ -15172,6 +17397,46 @@
 
 
 
+// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
+#define VK_ARM_render_pass_striped 1
+#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
+#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
+typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           renderPassStriped;
+} VkPhysicalDeviceRenderPassStripedFeaturesARM;
+
+typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkExtent2D         renderPassStripeGranularity;
+    uint32_t           maxRenderPassStripes;
+} VkPhysicalDeviceRenderPassStripedPropertiesARM;
+
+typedef struct VkRenderPassStripeInfoARM {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkRect2D           stripeArea;
+} VkRenderPassStripeInfoARM;
+
+typedef struct VkRenderPassStripeBeginInfoARM {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    uint32_t                            stripeInfoCount;
+    const VkRenderPassStripeInfoARM*    pStripeInfos;
+} VkRenderPassStripeBeginInfoARM;
+
+typedef struct VkRenderPassStripeSubmitInfoARM {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    uint32_t                        stripeSemaphoreInfoCount;
+    const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
+} VkRenderPassStripeSubmitInfoARM;
+
+
+
+// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_fragment_density_map_offset 1
 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
@@ -15196,6 +17461,7 @@
 
 
 
+// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_copy_memory_indirect 1
 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
@@ -15247,6 +17513,7 @@
 #endif
 
 
+// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_memory_decompression 1
 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
@@ -15294,6 +17561,59 @@
 #endif
 
 
+// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_device_generated_commands_compute 1
+#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
+#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           deviceGeneratedCompute;
+    VkBool32           deviceGeneratedComputePipelines;
+    VkBool32           deviceGeneratedComputeCaptureReplay;
+} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+
+typedef struct VkComputePipelineIndirectBufferInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkDeviceAddress    deviceAddress;
+    VkDeviceSize       size;
+    VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
+} VkComputePipelineIndirectBufferInfoNV;
+
+typedef struct VkPipelineIndirectDeviceAddressInfoNV {
+    VkStructureType        sType;
+    const void*            pNext;
+    VkPipelineBindPoint    pipelineBindPoint;
+    VkPipeline             pipeline;
+} VkPipelineIndirectDeviceAddressInfoNV;
+
+typedef struct VkBindPipelineIndirectCommandNV {
+    VkDeviceAddress    pipelineAddress;
+} VkBindPipelineIndirectCommandNV;
+
+typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
+typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
+    VkDevice                                    device,
+    const VkComputePipelineCreateInfo*          pCreateInfo,
+    VkMemoryRequirements2*                      pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
+    VkCommandBuffer                             commandBuffer,
+    VkPipelineBindPoint                         pipelineBindPoint,
+    VkPipeline                                  pipeline);
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
+    VkDevice                                    device,
+    const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
+#endif
+
+
+// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_linear_color_attachment 1
 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
@@ -15305,11 +17625,13 @@
 
 
 
+// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_GOOGLE_surfaceless_query 1
 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
 
 
+// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_image_compression_control_swapchain 1
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
@@ -15321,6 +17643,7 @@
 
 
 
+// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_image_processing 1
 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
@@ -15351,6 +17674,39 @@
 
 
 
+// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_nested_command_buffer 1
+#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
+#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
+typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           nestedCommandBuffer;
+    VkBool32           nestedCommandBufferRendering;
+    VkBool32           nestedCommandBufferSimultaneousUse;
+} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
+
+typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxCommandBufferNestingLevel;
+} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
+
+
+
+// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_external_memory_acquire_unmodified 1
+#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
+#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
+typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           acquireUnmodifiedMemory;
+} VkExternalMemoryAcquireUnmodifiedEXT;
+
+
+
+// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_extended_dynamic_state3 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
@@ -15584,6 +17940,7 @@
 #endif
 
 
+// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_subpass_merge_feedback 1
 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
@@ -15641,6 +17998,7 @@
 
 
 
+// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
 #define VK_LUNARG_direct_driver_loading 1
 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
@@ -15663,7 +18021,7 @@
 
 typedef struct VkDirectDriverLoadingListLUNARG {
     VkStructureType                           sType;
-    void*                                     pNext;
+    const void*                               pNext;
     VkDirectDriverLoadingModeLUNARG           mode;
     uint32_t                                  driverCount;
     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
@@ -15671,6 +18029,7 @@
 
 
 
+// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_module_identifier 1
 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
@@ -15717,11 +18076,13 @@
 #endif
 
 
+// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_rasterization_order_attachment_access 1
 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
 
 
+// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_optical_flow 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
@@ -15886,6 +18247,7 @@
 #endif
 
 
+// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_legacy_dithering 1
 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1
 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
@@ -15897,6 +18259,7 @@
 
 
 
+// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_pipeline_protected_access 1
 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
@@ -15908,6 +18271,94 @@
 
 
 
+// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_shader_object 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
+#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
+#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
+
+typedef enum VkShaderCodeTypeEXT {
+    VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
+    VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
+    VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkShaderCodeTypeEXT;
+
+typedef enum VkShaderCreateFlagBitsEXT {
+    VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
+    VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
+    VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
+    VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
+    VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
+    VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
+    VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
+    VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkShaderCreateFlagBitsEXT;
+typedef VkFlags VkShaderCreateFlagsEXT;
+typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           shaderObject;
+} VkPhysicalDeviceShaderObjectFeaturesEXT;
+
+typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
+    uint32_t           shaderBinaryVersion;
+} VkPhysicalDeviceShaderObjectPropertiesEXT;
+
+typedef struct VkShaderCreateInfoEXT {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    VkShaderCreateFlagsEXT          flags;
+    VkShaderStageFlagBits           stage;
+    VkShaderStageFlags              nextStage;
+    VkShaderCodeTypeEXT             codeType;
+    size_t                          codeSize;
+    const void*                     pCode;
+    const char*                     pName;
+    uint32_t                        setLayoutCount;
+    const VkDescriptorSetLayout*    pSetLayouts;
+    uint32_t                        pushConstantRangeCount;
+    const VkPushConstantRange*      pPushConstantRanges;
+    const VkSpecializationInfo*     pSpecializationInfo;
+} VkShaderCreateInfoEXT;
+
+typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
+typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
+typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
+typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
+    VkDevice                                    device,
+    uint32_t                                    createInfoCount,
+    const VkShaderCreateInfoEXT*                pCreateInfos,
+    const VkAllocationCallbacks*                pAllocator,
+    VkShaderEXT*                                pShaders);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
+    VkDevice                                    device,
+    VkShaderEXT                                 shader,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
+    VkDevice                                    device,
+    VkShaderEXT                                 shader,
+    size_t*                                     pDataSize,
+    void*                                       pData);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    stageCount,
+    const VkShaderStageFlagBits*                pStages,
+    const VkShaderEXT*                          pShaders);
+#endif
+
+
+// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_tile_properties 1
 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
@@ -15942,6 +18393,7 @@
 #endif
 
 
+// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
 #define VK_SEC_amigo_profiling 1
 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
@@ -15960,6 +18412,7 @@
 
 
 
+// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
 #define VK_QCOM_multiview_per_view_viewports 1
 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
@@ -15971,6 +18424,7 @@
 
 
 
+// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_ray_tracing_invocation_reorder 1
 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
@@ -15994,11 +18448,66 @@
 
 
 
+// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_extended_sparse_address_space 1
+#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
+#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
+typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           extendedSparseAddressSpace;
+} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+
+typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
+    VkStructureType       sType;
+    void*                 pNext;
+    VkDeviceSize          extendedSparseAddressSpaceSize;
+    VkImageUsageFlags     extendedSparseImageUsageFlags;
+    VkBufferUsageFlags    extendedSparseBufferUsageFlags;
+} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+
+
+
+// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_mutable_descriptor_type 1
 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
 
 
+// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_layer_settings 1
+#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
+#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
+
+typedef enum VkLayerSettingTypeEXT {
+    VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
+    VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
+    VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
+    VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
+    VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
+    VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
+    VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
+    VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
+    VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkLayerSettingTypeEXT;
+typedef struct VkLayerSettingEXT {
+    const char*              pLayerName;
+    const char*              pSettingName;
+    VkLayerSettingTypeEXT    type;
+    uint32_t                 valueCount;
+    const void*              pValues;
+} VkLayerSettingEXT;
+
+typedef struct VkLayerSettingsCreateInfoEXT {
+    VkStructureType             sType;
+    const void*                 pNext;
+    uint32_t                    settingCount;
+    const VkLayerSettingEXT*    pSettings;
+} VkLayerSettingsCreateInfoEXT;
+
+
+
+// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
 #define VK_ARM_shader_core_builtins 1
 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
@@ -16018,6 +18527,338 @@
 
 
 
+// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_pipeline_library_group_handles 1
+#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
+#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
+typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           pipelineLibraryGroupHandles;
+} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+
+
+
+// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_dynamic_rendering_unused_attachments 1
+#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
+#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
+typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           dynamicRenderingUnusedAttachments;
+} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+
+
+
+// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_low_latency2 1
+#define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
+#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
+
+typedef enum VkLatencyMarkerNV {
+    VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
+    VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
+    VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
+    VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
+    VK_LATENCY_MARKER_PRESENT_START_NV = 4,
+    VK_LATENCY_MARKER_PRESENT_END_NV = 5,
+    VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
+    VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
+    VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
+    VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
+    VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
+    VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
+    VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
+} VkLatencyMarkerNV;
+
+typedef enum VkOutOfBandQueueTypeNV {
+    VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
+    VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
+    VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
+} VkOutOfBandQueueTypeNV;
+typedef struct VkLatencySleepModeInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           lowLatencyMode;
+    VkBool32           lowLatencyBoost;
+    uint32_t           minimumIntervalUs;
+} VkLatencySleepModeInfoNV;
+
+typedef struct VkLatencySleepInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkSemaphore        signalSemaphore;
+    uint64_t           value;
+} VkLatencySleepInfoNV;
+
+typedef struct VkSetLatencyMarkerInfoNV {
+    VkStructureType      sType;
+    const void*          pNext;
+    uint64_t             presentID;
+    VkLatencyMarkerNV    marker;
+} VkSetLatencyMarkerInfoNV;
+
+typedef struct VkLatencyTimingsFrameReportNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint64_t           presentID;
+    uint64_t           inputSampleTimeUs;
+    uint64_t           simStartTimeUs;
+    uint64_t           simEndTimeUs;
+    uint64_t           renderSubmitStartTimeUs;
+    uint64_t           renderSubmitEndTimeUs;
+    uint64_t           presentStartTimeUs;
+    uint64_t           presentEndTimeUs;
+    uint64_t           driverStartTimeUs;
+    uint64_t           driverEndTimeUs;
+    uint64_t           osRenderQueueStartTimeUs;
+    uint64_t           osRenderQueueEndTimeUs;
+    uint64_t           gpuRenderStartTimeUs;
+    uint64_t           gpuRenderEndTimeUs;
+} VkLatencyTimingsFrameReportNV;
+
+typedef struct VkGetLatencyMarkerInfoNV {
+    VkStructureType                   sType;
+    const void*                       pNext;
+    uint32_t                          timingCount;
+    VkLatencyTimingsFrameReportNV*    pTimings;
+} VkGetLatencyMarkerInfoNV;
+
+typedef struct VkLatencySubmissionPresentIdNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint64_t           presentID;
+} VkLatencySubmissionPresentIdNV;
+
+typedef struct VkSwapchainLatencyCreateInfoNV {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           latencyModeEnable;
+} VkSwapchainLatencyCreateInfoNV;
+
+typedef struct VkOutOfBandQueueTypeInfoNV {
+    VkStructureType           sType;
+    const void*               pNext;
+    VkOutOfBandQueueTypeNV    queueType;
+} VkOutOfBandQueueTypeInfoNV;
+
+typedef struct VkLatencySurfaceCapabilitiesNV {
+    VkStructureType      sType;
+    const void*          pNext;
+    uint32_t             presentModeCount;
+    VkPresentModeKHR*    pPresentModes;
+} VkLatencySurfaceCapabilitiesNV;
+
+typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
+typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
+typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
+typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
+    VkDevice                                    device,
+    VkSwapchainKHR                              swapchain,
+    const VkLatencySleepModeInfoNV*             pSleepModeInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
+    VkDevice                                    device,
+    VkSwapchainKHR                              swapchain,
+    const VkLatencySleepInfoNV*                 pSleepInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
+    VkDevice                                    device,
+    VkSwapchainKHR                              swapchain,
+    const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
+    VkDevice                                    device,
+    VkSwapchainKHR                              swapchain,
+    VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
+    VkQueue                                     queue,
+    const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
+#endif
+
+
+// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
+#define VK_QCOM_multiview_per_view_render_areas 1
+#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
+#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
+typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           multiviewPerViewRenderAreas;
+} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+
+typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           perViewRenderAreaCount;
+    const VkRect2D*    pPerViewRenderAreas;
+} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+
+
+
+// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_per_stage_descriptor_set 1
+#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
+#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
+typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           perStageDescriptorSet;
+    VkBool32           dynamicPipelineLayout;
+} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
+
+
+
+// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
+#define VK_QCOM_image_processing2 1
+#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
+#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
+
+typedef enum VkBlockMatchWindowCompareModeQCOM {
+    VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
+    VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
+    VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
+} VkBlockMatchWindowCompareModeQCOM;
+typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           textureBlockMatch2;
+} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
+
+typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkExtent2D         maxBlockMatchWindow;
+} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
+
+typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkExtent2D                           windowExtent;
+    VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
+} VkSamplerBlockMatchWindowCreateInfoQCOM;
+
+
+
+// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
+#define VK_QCOM_filter_cubic_weights 1
+#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
+#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
+
+typedef enum VkCubicFilterWeightsQCOM {
+    VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
+    VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
+    VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
+    VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
+    VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
+} VkCubicFilterWeightsQCOM;
+typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           selectableCubicWeights;
+} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
+
+typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkCubicFilterWeightsQCOM    cubicWeights;
+} VkSamplerCubicWeightsCreateInfoQCOM;
+
+typedef struct VkBlitImageCubicWeightsInfoQCOM {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkCubicFilterWeightsQCOM    cubicWeights;
+} VkBlitImageCubicWeightsInfoQCOM;
+
+
+
+// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
+#define VK_QCOM_ycbcr_degamma 1
+#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
+#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
+typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           ycbcrDegamma;
+} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
+
+typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           enableYDegamma;
+    VkBool32           enableCbCrDegamma;
+} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+
+
+
+// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
+#define VK_QCOM_filter_cubic_clamp 1
+#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
+#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
+typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           cubicRangeClamp;
+} VkPhysicalDeviceCubicClampFeaturesQCOM;
+
+
+
+// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_attachment_feedback_loop_dynamic_state 1
+#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
+#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
+typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           attachmentFeedbackLoopDynamicState;
+} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask);
+#endif
+
+
+// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
+#define VK_MSFT_layered_driver 1
+#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
+#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
+
+typedef enum VkLayeredDriverUnderlyingApiMSFT {
+    VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
+    VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
+    VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
+} VkLayeredDriverUnderlyingApiMSFT;
+typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
+    VkStructureType                     sType;
+    void*                               pNext;
+    VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
+} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
+
+
+
+// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
+#define VK_NV_descriptor_pool_overallocation 1
+#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
+#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
+typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           descriptorPoolOverallocation;
+} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+
+
+
+// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_acceleration_structure 1
 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
@@ -16293,6 +19134,7 @@
 #endif
 
 
+// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_ray_tracing_pipeline 1
 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
@@ -16429,6 +19271,7 @@
 #endif
 
 
+// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_ray_query 1
 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
@@ -16440,6 +19283,7 @@
 
 
 
+// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_mesh_shader 1
 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
diff --git a/include/vulkan/vulkan_directfb.h b/include/vulkan/vulkan_directfb.h
index ab3504e..f06f80b 100644
--- a/include/vulkan/vulkan_directfb.h
+++ b/include/vulkan/vulkan_directfb.h
@@ -2,7 +2,7 @@
 #define VULKAN_DIRECTFB_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_EXT_directfb_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_directfb_surface 1
 #define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1
 #define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface"
diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp
index d3eb23b..5dabb74 100644
--- a/include/vulkan/vulkan_enums.hpp
+++ b/include/vulkan/vulkan_enums.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -10,6 +10,211 @@
 
 namespace VULKAN_HPP_NAMESPACE
 {
+  template <typename FlagBitsType>
+  struct FlagTraits
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false;
+  };
+
+  template <typename BitType>
+  class Flags
+  {
+  public:
+    using MaskType = typename std::underlying_type<BitType>::type;
+
+    // constructors
+    VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
+
+    VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
+
+    VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
+
+    // relational operators
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( Flags<BitType> const & ) const = default;
+#else
+    VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask < rhs.m_mask;
+    }
+
+    VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask <= rhs.m_mask;
+    }
+
+    VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask > rhs.m_mask;
+    }
+
+    VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask >= rhs.m_mask;
+    }
+
+    VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask == rhs.m_mask;
+    }
+
+    VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask != rhs.m_mask;
+    }
+#endif
+
+    // logical operator
+    VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return !m_mask;
+    }
+
+    // bitwise operators
+    VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return Flags<BitType>( m_mask & rhs.m_mask );
+    }
+
+    VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return Flags<BitType>( m_mask | rhs.m_mask );
+    }
+
+    VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return Flags<BitType>( m_mask ^ rhs.m_mask );
+    }
+
+    VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
+    {
+      return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags.m_mask );
+    }
+
+    // assignment operators
+    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      m_mask |= rhs.m_mask;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      m_mask &= rhs.m_mask;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      m_mask ^= rhs.m_mask;
+      return *this;
+    }
+
+    // cast operators
+    explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return !!m_mask;
+    }
+
+    explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_mask;
+    }
+
+#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
+  public:
+#else
+  private:
+#endif
+    MaskType m_mask;
+  };
+
+#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+  // relational operators only needed for pre C++20
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator>( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator>=( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator<( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator<=( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator==( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator!=( bit );
+  }
+#endif
+
+  // bitwise operators
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator&( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator|( bit );
+  }
+
+  template <typename BitType>
+  VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
+  {
+    return flags.operator^( bit );
+  }
+
+  // bitwise operators on BitType
+  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
+  {
+    return Flags<BitType>( lhs ) & rhs;
+  }
+
+  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
+  {
+    return Flags<BitType>( lhs ) | rhs;
+  }
+
+  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
+  {
+    return Flags<BitType>( lhs ) ^ rhs;
+  }
+
+  template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator~( BitType bit ) VULKAN_HPP_NOEXCEPT
+  {
+    return ~( Flags<BitType>( bit ) );
+  }
 
   template <typename EnumType, EnumType value>
   struct CppType
@@ -24,63 +229,63 @@
 
   enum class Result
   {
-    eSuccess                          = VK_SUCCESS,
-    eNotReady                         = VK_NOT_READY,
-    eTimeout                          = VK_TIMEOUT,
-    eEventSet                         = VK_EVENT_SET,
-    eEventReset                       = VK_EVENT_RESET,
-    eIncomplete                       = VK_INCOMPLETE,
-    eErrorOutOfHostMemory             = VK_ERROR_OUT_OF_HOST_MEMORY,
-    eErrorOutOfDeviceMemory           = VK_ERROR_OUT_OF_DEVICE_MEMORY,
-    eErrorInitializationFailed        = VK_ERROR_INITIALIZATION_FAILED,
-    eErrorDeviceLost                  = VK_ERROR_DEVICE_LOST,
-    eErrorMemoryMapFailed             = VK_ERROR_MEMORY_MAP_FAILED,
-    eErrorLayerNotPresent             = VK_ERROR_LAYER_NOT_PRESENT,
-    eErrorExtensionNotPresent         = VK_ERROR_EXTENSION_NOT_PRESENT,
-    eErrorFeatureNotPresent           = VK_ERROR_FEATURE_NOT_PRESENT,
-    eErrorIncompatibleDriver          = VK_ERROR_INCOMPATIBLE_DRIVER,
-    eErrorTooManyObjects              = VK_ERROR_TOO_MANY_OBJECTS,
-    eErrorFormatNotSupported          = VK_ERROR_FORMAT_NOT_SUPPORTED,
-    eErrorFragmentedPool              = VK_ERROR_FRAGMENTED_POOL,
-    eErrorUnknown                     = VK_ERROR_UNKNOWN,
-    eErrorOutOfPoolMemory             = VK_ERROR_OUT_OF_POOL_MEMORY,
-    eErrorInvalidExternalHandle       = VK_ERROR_INVALID_EXTERNAL_HANDLE,
-    eErrorFragmentation               = VK_ERROR_FRAGMENTATION,
-    eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
-    ePipelineCompileRequired          = VK_PIPELINE_COMPILE_REQUIRED,
-    eErrorSurfaceLostKHR              = VK_ERROR_SURFACE_LOST_KHR,
-    eErrorNativeWindowInUseKHR        = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
-    eSuboptimalKHR                    = VK_SUBOPTIMAL_KHR,
-    eErrorOutOfDateKHR                = VK_ERROR_OUT_OF_DATE_KHR,
-    eErrorIncompatibleDisplayKHR      = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
-    eErrorValidationFailedEXT         = VK_ERROR_VALIDATION_FAILED_EXT,
-    eErrorInvalidShaderNV             = VK_ERROR_INVALID_SHADER_NV,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eErrorImageUsageNotSupportedKHR            = VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR,
-    eErrorVideoPictureLayoutNotSupportedKHR    = VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,
-    eErrorVideoProfileOperationNotSupportedKHR = VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,
-    eErrorVideoProfileFormatNotSupportedKHR    = VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,
-    eErrorVideoProfileCodecNotSupportedKHR     = VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR,
-    eErrorVideoStdVersionNotSupportedKHR       = VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eSuccess                                     = VK_SUCCESS,
+    eNotReady                                    = VK_NOT_READY,
+    eTimeout                                     = VK_TIMEOUT,
+    eEventSet                                    = VK_EVENT_SET,
+    eEventReset                                  = VK_EVENT_RESET,
+    eIncomplete                                  = VK_INCOMPLETE,
+    eErrorOutOfHostMemory                        = VK_ERROR_OUT_OF_HOST_MEMORY,
+    eErrorOutOfDeviceMemory                      = VK_ERROR_OUT_OF_DEVICE_MEMORY,
+    eErrorInitializationFailed                   = VK_ERROR_INITIALIZATION_FAILED,
+    eErrorDeviceLost                             = VK_ERROR_DEVICE_LOST,
+    eErrorMemoryMapFailed                        = VK_ERROR_MEMORY_MAP_FAILED,
+    eErrorLayerNotPresent                        = VK_ERROR_LAYER_NOT_PRESENT,
+    eErrorExtensionNotPresent                    = VK_ERROR_EXTENSION_NOT_PRESENT,
+    eErrorFeatureNotPresent                      = VK_ERROR_FEATURE_NOT_PRESENT,
+    eErrorIncompatibleDriver                     = VK_ERROR_INCOMPATIBLE_DRIVER,
+    eErrorTooManyObjects                         = VK_ERROR_TOO_MANY_OBJECTS,
+    eErrorFormatNotSupported                     = VK_ERROR_FORMAT_NOT_SUPPORTED,
+    eErrorFragmentedPool                         = VK_ERROR_FRAGMENTED_POOL,
+    eErrorUnknown                                = VK_ERROR_UNKNOWN,
+    eErrorOutOfPoolMemory                        = VK_ERROR_OUT_OF_POOL_MEMORY,
+    eErrorInvalidExternalHandle                  = VK_ERROR_INVALID_EXTERNAL_HANDLE,
+    eErrorFragmentation                          = VK_ERROR_FRAGMENTATION,
+    eErrorInvalidOpaqueCaptureAddress            = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
+    ePipelineCompileRequired                     = VK_PIPELINE_COMPILE_REQUIRED,
+    eErrorSurfaceLostKHR                         = VK_ERROR_SURFACE_LOST_KHR,
+    eErrorNativeWindowInUseKHR                   = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
+    eSuboptimalKHR                               = VK_SUBOPTIMAL_KHR,
+    eErrorOutOfDateKHR                           = VK_ERROR_OUT_OF_DATE_KHR,
+    eErrorIncompatibleDisplayKHR                 = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
+    eErrorValidationFailedEXT                    = VK_ERROR_VALIDATION_FAILED_EXT,
+    eErrorInvalidShaderNV                        = VK_ERROR_INVALID_SHADER_NV,
+    eErrorImageUsageNotSupportedKHR              = VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR,
+    eErrorVideoPictureLayoutNotSupportedKHR      = VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,
+    eErrorVideoProfileOperationNotSupportedKHR   = VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,
+    eErrorVideoProfileFormatNotSupportedKHR      = VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,
+    eErrorVideoProfileCodecNotSupportedKHR       = VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR,
+    eErrorVideoStdVersionNotSupportedKHR         = VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,
+    eErrorOutOfPoolMemoryKHR                     = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
+    eErrorInvalidExternalHandleKHR               = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
+    eErrorFragmentationEXT                       = VK_ERROR_FRAGMENTATION_EXT,
+    eErrorNotPermittedEXT                        = VK_ERROR_NOT_PERMITTED_EXT,
     eErrorNotPermittedKHR                        = VK_ERROR_NOT_PERMITTED_KHR,
+    eErrorInvalidDeviceAddressEXT                = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
+    eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
     eThreadIdleKHR                       = VK_THREAD_IDLE_KHR,
     eThreadDoneKHR                       = VK_THREAD_DONE_KHR,
     eOperationDeferredKHR                = VK_OPERATION_DEFERRED_KHR,
     eOperationNotDeferredKHR             = VK_OPERATION_NOT_DEFERRED_KHR,
-    eErrorCompressionExhaustedEXT        = VK_ERROR_COMPRESSION_EXHAUSTED_EXT,
-    eErrorFragmentationEXT               = VK_ERROR_FRAGMENTATION_EXT,
-    eErrorInvalidDeviceAddressEXT        = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
-    eErrorInvalidExternalHandleKHR       = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
-    eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
-    eErrorNotPermittedEXT                = VK_ERROR_NOT_PERMITTED_EXT,
-    eErrorOutOfPoolMemoryKHR             = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
+    ePipelineCompileRequiredEXT          = VK_PIPELINE_COMPILE_REQUIRED_EXT,
     eErrorPipelineCompileRequiredEXT     = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT,
-    ePipelineCompileRequiredEXT          = VK_PIPELINE_COMPILE_REQUIRED_EXT
+    eErrorInvalidVideoStdParametersKHR   = VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR,
+    eErrorCompressionExhaustedEXT        = VK_ERROR_COMPRESSION_EXHAUSTED_EXT,
+    eErrorIncompatibleShaderBinaryEXT    = VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
   };
 
   enum class StructureType
@@ -171,6 +376,7 @@
     ePhysicalDeviceMultiviewFeatures                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
     ePhysicalDeviceMultiviewProperties                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
     ePhysicalDeviceVariablePointersFeatures               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+    ePhysicalDeviceVariablePointerFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
     eProtectedSubmitInfo                                  = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
     ePhysicalDeviceProtectedMemoryFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
     ePhysicalDeviceProtectedMemoryProperties              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
@@ -199,6 +405,7 @@
     ePhysicalDeviceMaintenance3Properties                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
     eDescriptorSetLayoutSupport                           = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
     ePhysicalDeviceShaderDrawParametersFeatures           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
+    ePhysicalDeviceShaderDrawParameterFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
     ePhysicalDeviceVulkan11Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
     ePhysicalDeviceVulkan11Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
     ePhysicalDeviceVulkan12Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
@@ -328,82 +535,94 @@
     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
     eDebugReportCallbackCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+    eDebugReportCreateInfoEXT                        = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
     eDebugMarkerObjectNameInfoEXT                    = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
     eDebugMarkerObjectTagInfoEXT                     = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
     eDebugMarkerMarkerInfoEXT                        = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoProfileInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR,
-    eVideoCapabilitiesKHR                      = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
-    eVideoPictureResourceInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
-    eVideoSessionMemoryRequirementsKHR         = VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
-    eBindVideoSessionMemoryInfoKHR             = VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
-    eVideoSessionCreateInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
-    eVideoSessionParametersCreateInfoKHR       = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
-    eVideoSessionParametersUpdateInfoKHR       = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
-    eVideoBeginCodingInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
-    eVideoEndCodingInfoKHR                     = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
-    eVideoCodingControlInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
-    eVideoReferenceSlotInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
-    eQueueFamilyVideoPropertiesKHR             = VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
-    eVideoProfileListInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
-    ePhysicalDeviceVideoFormatInfoKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
-    eVideoFormatPropertiesKHR                  = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
-    eQueueFamilyQueryResultStatusPropertiesKHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
-    eVideoDecodeInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
-    eVideoDecodeCapabilitiesKHR                = VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
-    eVideoDecodeUsageInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eDedicatedAllocationImageCreateInfoNV          = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
-    eDedicatedAllocationBufferCreateInfoNV         = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
-    eDedicatedAllocationMemoryAllocateInfoNV       = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
-    ePhysicalDeviceTransformFeedbackFeaturesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
-    ePhysicalDeviceTransformFeedbackPropertiesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
-    ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
-    eCuModuleCreateInfoNVX                         = VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
-    eCuFunctionCreateInfoNVX                       = VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
-    eCuLaunchInfoNVX                               = VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
-    eImageViewHandleInfoNVX                        = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
-    eImageViewAddressPropertiesNVX                 = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeH264CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT,
-    eVideoEncodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
-    eVideoEncodeH264SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
-    eVideoEncodeH264VclFrameInfoEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT,
-    eVideoEncodeH264DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT,
-    eVideoEncodeH264NaluSliceInfoEXT               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT,
-    eVideoEncodeH264EmitPictureParametersInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT,
-    eVideoEncodeH264ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT,
-    eVideoEncodeH264RateControlInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT,
-    eVideoEncodeH264RateControlLayerInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT,
-    eVideoEncodeH264ReferenceListsInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT,
-    eVideoEncodeH265CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT,
-    eVideoEncodeH265SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
-    eVideoEncodeH265SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
-    eVideoEncodeH265VclFrameInfoEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT,
-    eVideoEncodeH265DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT,
-    eVideoEncodeH265NaluSliceSegmentInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT,
-    eVideoEncodeH265EmitPictureParametersInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT,
-    eVideoEncodeH265ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT,
-    eVideoEncodeH265ReferenceListsInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT,
-    eVideoEncodeH265RateControlInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT,
-    eVideoEncodeH265RateControlLayerInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT,
-    eVideoDecodeH264CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT,
-    eVideoDecodeH264PictureInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT,
-    eVideoDecodeH264ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT,
-    eVideoDecodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
-    eVideoDecodeH264SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
-    eVideoDecodeH264DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eTextureLodGatherFormatPropertiesAMD           = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
-    eRenderingFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
-    eRenderingFragmentDensityMapAttachmentInfoEXT  = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
-    eAttachmentSampleCountInfoAMD                  = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
-    eMultiviewPerViewAttributesInfoNVX             = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
+    eVideoProfileInfoKHR                             = VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR,
+    eVideoCapabilitiesKHR                            = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
+    eVideoPictureResourceInfoKHR                     = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
+    eVideoSessionMemoryRequirementsKHR               = VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
+    eBindVideoSessionMemoryInfoKHR                   = VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
+    eVideoSessionCreateInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
+    eVideoSessionParametersCreateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
+    eVideoSessionParametersUpdateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
+    eVideoBeginCodingInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
+    eVideoEndCodingInfoKHR                           = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
+    eVideoCodingControlInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
+    eVideoReferenceSlotInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
+    eQueueFamilyVideoPropertiesKHR                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
+    eVideoProfileListInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
+    ePhysicalDeviceVideoFormatInfoKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
+    eVideoFormatPropertiesKHR                        = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
+    eQueueFamilyQueryResultStatusPropertiesKHR       = VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
+    eVideoDecodeInfoKHR                              = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
+    eVideoDecodeCapabilitiesKHR                      = VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
+    eVideoDecodeUsageInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR,
+    eDedicatedAllocationImageCreateInfoNV            = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
+    eDedicatedAllocationBufferCreateInfoNV           = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
+    eDedicatedAllocationMemoryAllocateInfoNV         = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
+    ePhysicalDeviceTransformFeedbackFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
+    ePhysicalDeviceTransformFeedbackPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
+    ePipelineRasterizationStateStreamCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
+    eCuModuleCreateInfoNVX                           = VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
+    eCuFunctionCreateInfoNVX                         = VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
+    eCuLaunchInfoNVX                                 = VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
+    eImageViewHandleInfoNVX                          = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
+    eImageViewAddressPropertiesNVX                   = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
+    eVideoEncodeH264CapabilitiesKHR                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR,
+    eVideoEncodeH264SessionParametersCreateInfoKHR   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
+    eVideoEncodeH264SessionParametersAddInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
+    eVideoEncodeH264PictureInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR,
+    eVideoEncodeH264DpbSlotInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR,
+    eVideoEncodeH264NaluSliceInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR,
+    eVideoEncodeH264GopRemainingFrameInfoKHR         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR,
+    eVideoEncodeH264ProfileInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR,
+    eVideoEncodeH264RateControlInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR,
+    eVideoEncodeH264RateControlLayerInfoKHR          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR,
+    eVideoEncodeH264SessionCreateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR,
+    eVideoEncodeH264QualityLevelPropertiesKHR        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR,
+    eVideoEncodeH264SessionParametersGetInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR,
+    eVideoEncodeH264SessionParametersFeedbackInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
+    eVideoEncodeH265CapabilitiesKHR                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR,
+    eVideoEncodeH265SessionParametersCreateInfoKHR   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
+    eVideoEncodeH265SessionParametersAddInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
+    eVideoEncodeH265PictureInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR,
+    eVideoEncodeH265DpbSlotInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR,
+    eVideoEncodeH265NaluSliceSegmentInfoKHR          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR,
+    eVideoEncodeH265GopRemainingFrameInfoKHR         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR,
+    eVideoEncodeH265ProfileInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR,
+    eVideoEncodeH265RateControlInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR,
+    eVideoEncodeH265RateControlLayerInfoKHR          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR,
+    eVideoEncodeH265SessionCreateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR,
+    eVideoEncodeH265QualityLevelPropertiesKHR        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR,
+    eVideoEncodeH265SessionParametersGetInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR,
+    eVideoEncodeH265SessionParametersFeedbackInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
+    eVideoDecodeH264CapabilitiesKHR                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR,
+    eVideoDecodeH264PictureInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR,
+    eVideoDecodeH264ProfileInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR,
+    eVideoDecodeH264SessionParametersCreateInfoKHR   = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
+    eVideoDecodeH264SessionParametersAddInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
+    eVideoDecodeH264DpbSlotInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR,
+    eTextureLodGatherFormatPropertiesAMD             = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
+    eRenderingInfoKHR                                = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+    eRenderingAttachmentInfoKHR                      = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
+    ePipelineRenderingCreateInfoKHR                  = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+    ePhysicalDeviceDynamicRenderingFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
+    eCommandBufferInheritanceRenderingInfoKHR        = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
+    eRenderingFragmentShadingRateAttachmentInfoKHR   = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
+    eRenderingFragmentDensityMapAttachmentInfoEXT    = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
+    eAttachmentSampleCountInfoAMD                    = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
+    eAttachmentSampleCountInfoNV                     = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
+    eMultiviewPerViewAttributesInfoNVX               = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
 #if defined( VK_USE_PLATFORM_GGP )
     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
 #endif /*VK_USE_PLATFORM_GGP*/
     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
+    eRenderPassMultiviewCreateInfoKHR           = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
+    ePhysicalDeviceMultiviewFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
+    ePhysicalDeviceMultiviewPropertiesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -411,15 +630,42 @@
     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-    eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
+    ePhysicalDeviceFeatures2KHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
+    ePhysicalDeviceProperties2KHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
+    eFormatProperties2KHR                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
+    eImageFormatProperties2KHR               = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
+    ePhysicalDeviceImageFormatInfo2KHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
+    eQueueFamilyProperties2KHR               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
+    ePhysicalDeviceMemoryProperties2KHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
+    eSparseImageFormatProperties2KHR         = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
+    ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
+    eMemoryAllocateFlagsInfoKHR              = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
+    eDeviceGroupRenderPassBeginInfoKHR       = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
+    eDeviceGroupCommandBufferBeginInfoKHR    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
+    eDeviceGroupSubmitInfoKHR                = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
+    eDeviceGroupBindSparseInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
+    eBindBufferMemoryDeviceGroupInfoKHR      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
+    eBindImageMemoryDeviceGroupInfoKHR       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
+    eValidationFlagsEXT                      = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
 #if defined( VK_USE_PLATFORM_VI_NN )
     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
 #endif /*VK_USE_PLATFORM_VI_NN*/
-    eImageViewAstcDecodeModeEXT                    = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
-    ePhysicalDeviceAstcDecodeFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
-    ePipelineRobustnessCreateInfoEXT               = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
-    ePhysicalDevicePipelineRobustnessFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
-    ePhysicalDevicePipelineRobustnessPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
+    ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
+    eImageViewAstcDecodeModeEXT                         = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
+    ePhysicalDeviceAstcDecodeFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
+    ePipelineRobustnessCreateInfoEXT                    = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
+    ePhysicalDevicePipelineRobustnessFeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
+    ePhysicalDevicePipelineRobustnessPropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
+    ePhysicalDeviceGroupPropertiesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
+    eDeviceGroupDeviceCreateInfoKHR                     = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
+    ePhysicalDeviceExternalImageFormatInfoKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
+    eExternalImageFormatPropertiesKHR                   = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
+    ePhysicalDeviceExternalBufferInfoKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
+    eExternalBufferPropertiesKHR                        = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
+    ePhysicalDeviceIdPropertiesKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
+    eExternalMemoryBufferCreateInfoKHR                  = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
+    eExternalMemoryImageCreateInfoKHR                   = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
+    eExportMemoryAllocateInfoKHR                        = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
@@ -431,10 +677,15 @@
     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
-    eImportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
-    eExportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
-    eD3D12FenceSubmitInfoKHR              = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
-    eSemaphoreGetWin32HandleInfoKHR       = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+    ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
+    eExternalSemaphorePropertiesKHR         = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
+    eExportSemaphoreCreateInfoKHR           = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+    eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
+    eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
+    eD3D12FenceSubmitInfoKHR           = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
+    eSemaphoreGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
     eImportSemaphoreFdInfoKHR                              = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
     eSemaphoreGetFdInfoKHR                                 = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
@@ -442,7 +693,11 @@
     eCommandBufferInheritanceConditionalRenderingInfoEXT   = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
     ePhysicalDeviceConditionalRenderingFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
     eConditionalRenderingBeginInfoEXT                      = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
+    ePhysicalDeviceShaderFloat16Int8FeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
+    ePhysicalDeviceFloat16Int8FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
+    ePhysicalDevice16BitStorageFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
     ePresentRegionsKHR                                     = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
+    eDescriptorUpdateTemplateCreateInfoKHR                 = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
     ePipelineViewportWScalingStateCreateInfoNV             = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
     eSurfaceCapabilities2EXT                               = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
     eDisplayPowerInfoEXT                                   = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
@@ -459,35 +714,58 @@
     ePhysicalDeviceDepthClipEnableFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
     ePipelineRasterizationDepthClipStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
     eHdrMetadataEXT                                        = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
+    ePhysicalDeviceImagelessFramebufferFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
+    eFramebufferAttachmentsCreateInfoKHR                   = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
+    eFramebufferAttachmentImageInfoKHR                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
+    eRenderPassAttachmentBeginInfoKHR                      = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
+    eAttachmentDescription2KHR                             = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
+    eAttachmentReference2KHR                               = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
+    eSubpassDescription2KHR                                = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
+    eSubpassDependency2KHR                                 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
+    eRenderPassCreateInfo2KHR                              = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
+    eSubpassBeginInfoKHR                                   = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
+    eSubpassEndInfoKHR                                     = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
+    ePhysicalDeviceRelaxedLineRasterizationFeaturesIMG     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG,
     eSharedPresentSurfaceCapabilitiesKHR                   = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
+    ePhysicalDeviceExternalFenceInfoKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
+    eExternalFencePropertiesKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
+    eExportFenceCreateInfoKHR                              = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-    eImportFenceFdInfoKHR                        = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
-    eFenceGetFdInfoKHR                           = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
-    ePhysicalDevicePerformanceQueryFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
-    ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
-    eQueryPoolPerformanceCreateInfoKHR           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
-    ePerformanceQuerySubmitInfoKHR               = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
-    eAcquireProfilingLockInfoKHR                 = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
-    ePerformanceCounterKHR                       = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
-    ePerformanceCounterDescriptionKHR            = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
-    ePhysicalDeviceSurfaceInfo2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
-    eSurfaceCapabilities2KHR                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
-    eSurfaceFormat2KHR                           = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
-    eDisplayProperties2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
-    eDisplayPlaneProperties2KHR                  = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
-    eDisplayModeProperties2KHR                   = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
-    eDisplayPlaneInfo2KHR                        = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
-    eDisplayPlaneCapabilities2KHR                = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
+    eImportFenceFdInfoKHR                               = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
+    eFenceGetFdInfoKHR                                  = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
+    ePhysicalDevicePerformanceQueryFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
+    ePhysicalDevicePerformanceQueryPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
+    eQueryPoolPerformanceCreateInfoKHR                  = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
+    ePerformanceQuerySubmitInfoKHR                      = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
+    eAcquireProfilingLockInfoKHR                        = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
+    ePerformanceCounterKHR                              = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
+    ePerformanceCounterDescriptionKHR                   = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
+    ePhysicalDevicePointClippingPropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
+    eRenderPassInputAttachmentAspectCreateInfoKHR       = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
+    eImageViewUsageCreateInfoKHR                        = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
+    ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
+    ePhysicalDeviceSurfaceInfo2KHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
+    eSurfaceCapabilities2KHR                            = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
+    eSurfaceFormat2KHR                                  = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
+    ePhysicalDeviceVariablePointersFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
+    ePhysicalDeviceVariablePointerFeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
+    eDisplayProperties2KHR                              = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
+    eDisplayPlaneProperties2KHR                         = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
+    eDisplayModeProperties2KHR                          = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
+    eDisplayPlaneInfo2KHR                               = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
+    eDisplayPlaneCapabilities2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
 #if defined( VK_USE_PLATFORM_IOS_MVK )
     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
 #endif /*VK_USE_PLATFORM_IOS_MVK*/
 #if defined( VK_USE_PLATFORM_MACOS_MVK )
     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
+    eMemoryDedicatedRequirementsKHR     = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
+    eMemoryDedicatedAllocateInfoKHR     = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
@@ -502,122 +780,177 @@
     eExternalFormatANDROID                         = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
     eAndroidHardwareBufferFormatProperties2ANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-    eSampleLocationsInfoEXT                            = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
-    eRenderPassSampleLocationsBeginInfoEXT             = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
-    ePipelineSampleLocationsStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
-    ePhysicalDeviceSampleLocationsPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
-    eMultisamplePropertiesEXT                          = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
-    ePhysicalDeviceBlendOperationAdvancedFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
-    ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
-    ePipelineColorBlendAdvancedStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
-    ePipelineCoverageToColorStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
-    eWriteDescriptorSetAccelerationStructureKHR        = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
-    eAccelerationStructureBuildGeometryInfoKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
-    eAccelerationStructureDeviceAddressInfoKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
-    eAccelerationStructureGeometryAabbsDataKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
-    eAccelerationStructureGeometryInstancesDataKHR     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
-    eAccelerationStructureGeometryTrianglesDataKHR     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
-    eAccelerationStructureGeometryKHR                  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
-    eAccelerationStructureVersionInfoKHR               = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
-    eCopyAccelerationStructureInfoKHR                  = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
-    eCopyAccelerationStructureToMemoryInfoKHR          = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
-    eCopyMemoryToAccelerationStructureInfoKHR          = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
-    ePhysicalDeviceAccelerationStructureFeaturesKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
-    ePhysicalDeviceAccelerationStructurePropertiesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
-    eAccelerationStructureCreateInfoKHR                = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
-    eAccelerationStructureBuildSizesInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
-    ePhysicalDeviceRayTracingPipelineFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
-    ePhysicalDeviceRayTracingPipelinePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
-    eRayTracingPipelineCreateInfoKHR                   = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
-    eRayTracingShaderGroupCreateInfoKHR                = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
-    eRayTracingPipelineInterfaceCreateInfoKHR          = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
-    ePhysicalDeviceRayQueryFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
-    ePipelineCoverageModulationStateCreateInfoNV       = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
-    ePhysicalDeviceShaderSmBuiltinsFeaturesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
-    ePhysicalDeviceShaderSmBuiltinsPropertiesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
-    eDrmFormatModifierPropertiesListEXT                = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
-    ePhysicalDeviceImageDrmFormatModifierInfoEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
-    eImageDrmFormatModifierListCreateInfoEXT           = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
-    eImageDrmFormatModifierExplicitCreateInfoEXT       = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
-    eImageDrmFormatModifierPropertiesEXT               = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
-    eDrmFormatModifierPropertiesList2EXT               = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
-    eValidationCacheCreateInfoEXT                      = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
-    eShaderModuleValidationCacheCreateInfoEXT          = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
+    ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
+    eSamplerReductionModeCreateInfoEXT              = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    ePhysicalDeviceShaderEnqueueFeaturesAMDX   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX,
+    ePhysicalDeviceShaderEnqueuePropertiesAMDX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX,
+    eExecutionGraphPipelineScratchSizeAMDX     = VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX,
+    eExecutionGraphPipelineCreateInfoAMDX      = VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX,
+    ePipelineShaderStageNodeCreateInfoAMDX     = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    ePhysicalDeviceInlineUniformBlockFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
+    ePhysicalDeviceInlineUniformBlockPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
+    eWriteDescriptorSetInlineUniformBlockEXT              = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
+    eDescriptorPoolInlineUniformBlockCreateInfoEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
+    eSampleLocationsInfoEXT                               = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
+    eRenderPassSampleLocationsBeginInfoEXT                = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
+    ePipelineSampleLocationsStateCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
+    ePhysicalDeviceSampleLocationsPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
+    eMultisamplePropertiesEXT                             = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
+    eBufferMemoryRequirementsInfo2KHR                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
+    eImageMemoryRequirementsInfo2KHR                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
+    eImageSparseMemoryRequirementsInfo2KHR                = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
+    eMemoryRequirements2KHR                               = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
+    eSparseImageMemoryRequirements2KHR                    = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
+    eImageFormatListCreateInfoKHR                         = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
+    ePhysicalDeviceBlendOperationAdvancedFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
+    ePhysicalDeviceBlendOperationAdvancedPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
+    ePipelineColorBlendAdvancedStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
+    ePipelineCoverageToColorStateCreateInfoNV             = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
+    eWriteDescriptorSetAccelerationStructureKHR           = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
+    eAccelerationStructureBuildGeometryInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
+    eAccelerationStructureDeviceAddressInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
+    eAccelerationStructureGeometryAabbsDataKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
+    eAccelerationStructureGeometryInstancesDataKHR        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
+    eAccelerationStructureGeometryTrianglesDataKHR        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
+    eAccelerationStructureGeometryKHR                     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
+    eAccelerationStructureVersionInfoKHR                  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
+    eCopyAccelerationStructureInfoKHR                     = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
+    eCopyAccelerationStructureToMemoryInfoKHR             = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
+    eCopyMemoryToAccelerationStructureInfoKHR             = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
+    ePhysicalDeviceAccelerationStructureFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
+    ePhysicalDeviceAccelerationStructurePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
+    eAccelerationStructureCreateInfoKHR                   = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
+    eAccelerationStructureBuildSizesInfoKHR               = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
+    ePhysicalDeviceRayTracingPipelineFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
+    ePhysicalDeviceRayTracingPipelinePropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
+    eRayTracingPipelineCreateInfoKHR                      = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
+    eRayTracingShaderGroupCreateInfoKHR                   = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
+    eRayTracingPipelineInterfaceCreateInfoKHR             = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
+    ePhysicalDeviceRayQueryFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
+    ePipelineCoverageModulationStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
+    ePhysicalDeviceShaderSmBuiltinsFeaturesNV             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
+    ePhysicalDeviceShaderSmBuiltinsPropertiesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
+    eSamplerYcbcrConversionCreateInfoKHR                  = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
+    eSamplerYcbcrConversionInfoKHR                        = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
+    eBindImagePlaneMemoryInfoKHR                          = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
+    eImagePlaneMemoryRequirementsInfoKHR                  = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
+    ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
+    eSamplerYcbcrConversionImageFormatPropertiesKHR       = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
+    eBindBufferMemoryInfoKHR                              = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
+    eBindImageMemoryInfoKHR                               = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
+    eDrmFormatModifierPropertiesListEXT                   = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
+    ePhysicalDeviceImageDrmFormatModifierInfoEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
+    eImageDrmFormatModifierListCreateInfoEXT              = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
+    eImageDrmFormatModifierExplicitCreateInfoEXT          = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
+    eImageDrmFormatModifierPropertiesEXT                  = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
+    eDrmFormatModifierPropertiesList2EXT                  = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
+    eValidationCacheCreateInfoEXT                         = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
+    eShaderModuleValidationCacheCreateInfoEXT             = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
+    eDescriptorSetLayoutBindingFlagsCreateInfoEXT         = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
+    ePhysicalDeviceDescriptorIndexingFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
+    ePhysicalDeviceDescriptorIndexingPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
+    eDescriptorSetVariableDescriptorCountAllocateInfoEXT  = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
+    eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    ePipelineViewportShadingRateImageStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
-    ePhysicalDeviceShadingRateImageFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
-    ePhysicalDeviceShadingRateImagePropertiesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
-    ePipelineViewportCoarseSampleOrderStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
-    eRayTracingPipelineCreateInfoNV                      = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
-    eAccelerationStructureCreateInfoNV                   = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
-    eGeometryNV                                          = VK_STRUCTURE_TYPE_GEOMETRY_NV,
-    eGeometryTrianglesNV                                 = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
-    eGeometryAabbNV                                      = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
-    eBindAccelerationStructureMemoryInfoNV               = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
-    eWriteDescriptorSetAccelerationStructureNV           = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
-    eAccelerationStructureMemoryRequirementsInfoNV       = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
-    ePhysicalDeviceRayTracingPropertiesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
-    eRayTracingShaderGroupCreateInfoNV                   = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
-    eAccelerationStructureInfoNV                         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
-    ePhysicalDeviceRepresentativeFragmentTestFeaturesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
-    ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
-    ePhysicalDeviceImageViewImageFormatInfoEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
-    eFilterCubicImageViewImageFormatPropertiesEXT        = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
-    eImportMemoryHostPointerInfoEXT                      = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
-    eMemoryHostPointerPropertiesEXT                      = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
-    ePhysicalDeviceExternalMemoryHostPropertiesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
-    ePhysicalDeviceShaderClockFeaturesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
-    ePipelineCompilerControlCreateInfoAMD                = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
-    eCalibratedTimestampInfoEXT                          = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
-    ePhysicalDeviceShaderCorePropertiesAMD               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeH265CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT,
-    eVideoDecodeH265SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
-    eVideoDecodeH265SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
-    eVideoDecodeH265ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT,
-    eVideoDecodeH265PictureInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT,
-    eVideoDecodeH265DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eDeviceQueueGlobalPriorityCreateInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
-    ePhysicalDeviceGlobalPriorityQueryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
-    eQueueFamilyGlobalPriorityPropertiesKHR            = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
-    eDeviceMemoryOverallocationCreateInfoAMD           = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
-    ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
-    ePipelineVertexInputDivisorStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
-    ePhysicalDeviceVertexAttributeDivisorFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
+    ePipelineViewportShadingRateImageStateCreateInfoNV    = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
+    ePhysicalDeviceShadingRateImageFeaturesNV             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
+    ePhysicalDeviceShadingRateImagePropertiesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
+    ePipelineViewportCoarseSampleOrderStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
+    eRayTracingPipelineCreateInfoNV                       = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
+    eAccelerationStructureCreateInfoNV                    = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
+    eGeometryNV                                           = VK_STRUCTURE_TYPE_GEOMETRY_NV,
+    eGeometryTrianglesNV                                  = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
+    eGeometryAabbNV                                       = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
+    eBindAccelerationStructureMemoryInfoNV                = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
+    eWriteDescriptorSetAccelerationStructureNV            = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
+    eAccelerationStructureMemoryRequirementsInfoNV        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
+    ePhysicalDeviceRayTracingPropertiesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
+    eRayTracingShaderGroupCreateInfoNV                    = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
+    eAccelerationStructureInfoNV                          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
+    ePhysicalDeviceRepresentativeFragmentTestFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
+    ePipelineRepresentativeFragmentTestStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
+    ePhysicalDeviceMaintenance3PropertiesKHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
+    eDescriptorSetLayoutSupportKHR                        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
+    ePhysicalDeviceImageViewImageFormatInfoEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
+    eFilterCubicImageViewImageFormatPropertiesEXT         = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
+    eDeviceQueueGlobalPriorityCreateInfoEXT               = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
+    ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
+    ePhysicalDevice8BitStorageFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
+    eImportMemoryHostPointerInfoEXT                       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
+    eMemoryHostPointerPropertiesEXT                       = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
+    ePhysicalDeviceExternalMemoryHostPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
+    ePhysicalDeviceShaderAtomicInt64FeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
+    ePhysicalDeviceShaderClockFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
+    ePipelineCompilerControlCreateInfoAMD                 = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
+    eCalibratedTimestampInfoEXT                           = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
+    ePhysicalDeviceShaderCorePropertiesAMD                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
+    eVideoDecodeH265CapabilitiesKHR                       = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR,
+    eVideoDecodeH265SessionParametersCreateInfoKHR        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
+    eVideoDecodeH265SessionParametersAddInfoKHR           = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
+    eVideoDecodeH265ProfileInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR,
+    eVideoDecodeH265PictureInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR,
+    eVideoDecodeH265DpbSlotInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR,
+    eDeviceQueueGlobalPriorityCreateInfoKHR               = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
+    ePhysicalDeviceGlobalPriorityQueryFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
+    eQueueFamilyGlobalPriorityPropertiesKHR               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
+    eDeviceMemoryOverallocationCreateInfoAMD              = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
+    ePhysicalDeviceVertexAttributeDivisorPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
+    ePipelineVertexInputDivisorStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
+    ePhysicalDeviceVertexAttributeDivisorFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
 #if defined( VK_USE_PLATFORM_GGP )
     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
 #endif /*VK_USE_PLATFORM_GGP*/
+    ePipelineCreationFeedbackCreateInfoEXT              = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
+    ePhysicalDeviceDriverPropertiesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
+    ePhysicalDeviceFloatControlsPropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
+    ePhysicalDeviceDepthStencilResolvePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
+    eSubpassDescriptionDepthStencilResolveKHR           = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
     ePhysicalDeviceComputeShaderDerivativesFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
     ePhysicalDeviceMeshShaderFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
     ePhysicalDeviceMeshShaderPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
+    ePhysicalDeviceFragmentShaderBarycentricFeaturesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
     ePhysicalDeviceShaderImageFootprintFeaturesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
     ePipelineViewportExclusiveScissorStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
     ePhysicalDeviceExclusiveScissorFeaturesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
     eCheckpointDataNV                                   = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
     eQueueFamilyCheckpointPropertiesNV                  = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
+    ePhysicalDeviceTimelineSemaphoreFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
+    ePhysicalDeviceTimelineSemaphorePropertiesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
+    eSemaphoreTypeCreateInfoKHR                         = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
+    eTimelineSemaphoreSubmitInfoKHR                     = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
+    eSemaphoreWaitInfoKHR                               = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
+    eSemaphoreSignalInfoKHR                             = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
     eQueryPoolPerformanceQueryCreateInfoINTEL           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
+    eQueryPoolCreateInfoINTEL                           = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
     eInitializePerformanceApiInfoINTEL                  = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
     ePerformanceMarkerInfoINTEL                         = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
     ePerformanceStreamMarkerInfoINTEL                   = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
     ePerformanceOverrideInfoINTEL                       = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
     ePerformanceConfigurationAcquireInfoINTEL           = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
+    ePhysicalDeviceVulkanMemoryModelFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
     ePhysicalDevicePciBusInfoPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
     eDisplayNativeHdrSurfaceCapabilitiesAMD             = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
     eSwapchainDisplayNativeHdrCreateInfoAMD             = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
+    ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
 #if defined( VK_USE_PLATFORM_METAL_EXT )
     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
 #endif /*VK_USE_PLATFORM_METAL_EXT*/
     ePhysicalDeviceFragmentDensityMapFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
     ePhysicalDeviceFragmentDensityMapPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
     eRenderPassFragmentDensityMapCreateInfoEXT                = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
+    ePhysicalDeviceScalarBlockLayoutFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
+    ePhysicalDeviceSubgroupSizeControlPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
+    ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT     = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+    ePhysicalDeviceSubgroupSizeControlFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
     eFragmentShadingRateAttachmentInfoKHR                     = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
     ePipelineFragmentShadingRateStateCreateInfoKHR            = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
     ePhysicalDeviceFragmentShadingRatePropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
@@ -631,8 +964,15 @@
     eMemoryPriorityAllocateInfoEXT                            = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
     eSurfaceProtectedCapabilitiesKHR                          = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
+    ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
+    eAttachmentReferenceStencilLayoutKHR                      = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
+    eAttachmentDescriptionStencilLayoutKHR                    = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
     ePhysicalDeviceBufferDeviceAddressFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
+    ePhysicalDeviceBufferAddressFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
+    eBufferDeviceAddressInfoEXT                               = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
     eBufferDeviceAddressCreateInfoEXT                         = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
+    ePhysicalDeviceToolPropertiesEXT                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
+    eImageStencilUsageCreateInfoEXT                           = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
     eValidationFeaturesEXT                                    = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
     ePhysicalDevicePresentWaitFeaturesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
     ePhysicalDeviceCooperativeMatrixFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
@@ -643,6 +983,7 @@
     eFramebufferMixedSamplesCombinationNV                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
     ePhysicalDeviceYcbcrImageArraysFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
+    ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
     ePhysicalDeviceProvokingVertexFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
     ePipelineRasterizationProvokingVertexStateCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
     ePhysicalDeviceProvokingVertexPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
@@ -651,65 +992,106 @@
     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-    eHeadlessSurfaceCreateInfoEXT                          = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
-    ePhysicalDeviceLineRasterizationFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
-    ePipelineRasterizationLineStateCreateInfoEXT           = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
-    ePhysicalDeviceLineRasterizationPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
-    ePhysicalDeviceShaderAtomicFloatFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
-    ePhysicalDeviceIndexTypeUint8FeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
-    ePhysicalDeviceExtendedDynamicStateFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
-    ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
-    ePipelineInfoKHR                                       = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
-    ePipelineExecutablePropertiesKHR                       = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
-    ePipelineExecutableInfoKHR                             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
-    ePipelineExecutableStatisticKHR                        = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
-    ePipelineExecutableInternalRepresentationKHR           = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
-    ePhysicalDeviceShaderAtomicFloat2FeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
-    eSurfacePresentModeEXT                                 = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT,
-    eSurfacePresentScalingCapabilitiesEXT                  = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
-    eSurfacePresentModeCompatibilityEXT                    = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
-    ePhysicalDeviceSwapchainMaintenance1FeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
-    eSwapchainPresentFenceInfoEXT                          = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
-    eSwapchainPresentModesCreateInfoEXT                    = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
-    eSwapchainPresentModeInfoEXT                           = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT,
-    eSwapchainPresentScalingCreateInfoEXT                  = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
-    eReleaseSwapchainImagesInfoEXT                         = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
-    ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
-    eGraphicsShaderGroupCreateInfoNV                       = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
-    eGraphicsPipelineShaderGroupsCreateInfoNV              = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
-    eIndirectCommandsLayoutTokenNV                         = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
-    eIndirectCommandsLayoutCreateInfoNV                    = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
-    eGeneratedCommandsInfoNV                               = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
-    eGeneratedCommandsMemoryRequirementsInfoNV             = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
-    ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
-    ePhysicalDeviceInheritedViewportScissorFeaturesNV      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
-    eCommandBufferInheritanceViewportScissorInfoNV         = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
-    ePhysicalDeviceTexelBufferAlignmentFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
-    eCommandBufferInheritanceRenderPassTransformInfoQCOM   = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
-    eRenderPassTransformBeginInfoQCOM                      = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
-    ePhysicalDeviceDeviceMemoryReportFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
-    eDeviceDeviceMemoryReportCreateInfoEXT                 = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
-    eDeviceMemoryReportCallbackDataEXT                     = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
-    ePhysicalDeviceRobustness2FeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
-    ePhysicalDeviceRobustness2PropertiesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
-    eSamplerCustomBorderColorCreateInfoEXT                 = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
-    ePhysicalDeviceCustomBorderColorPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
-    ePhysicalDeviceCustomBorderColorFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
-    ePipelineLibraryCreateInfoKHR                          = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
-    ePhysicalDevicePresentBarrierFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
-    eSurfaceCapabilitiesPresentBarrierNV                   = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
-    eSwapchainPresentBarrierCreateInfoNV                   = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
-    ePresentIdKHR                                          = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
-    ePhysicalDevicePresentIdFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
+    eHeadlessSurfaceCreateInfoEXT                            = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
+    ePhysicalDeviceBufferDeviceAddressFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
+    eBufferDeviceAddressInfoKHR                              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
+    eBufferOpaqueCaptureAddressCreateInfoKHR                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
+    eMemoryOpaqueCaptureAddressAllocateInfoKHR               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
+    eDeviceMemoryOpaqueCaptureAddressInfoKHR                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
+    ePhysicalDeviceLineRasterizationFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
+    ePipelineRasterizationLineStateCreateInfoEXT             = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
+    ePhysicalDeviceLineRasterizationPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
+    ePhysicalDeviceShaderAtomicFloatFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
+    ePhysicalDeviceHostQueryResetFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
+    ePhysicalDeviceIndexTypeUint8FeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
+    ePhysicalDeviceExtendedDynamicStateFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
+    ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
+    ePipelineInfoKHR                                         = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
+    ePipelineExecutablePropertiesKHR                         = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
+    ePipelineExecutableInfoKHR                               = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
+    ePipelineExecutableStatisticKHR                          = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
+    ePipelineExecutableInternalRepresentationKHR             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
+    ePhysicalDeviceHostImageCopyFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT,
+    ePhysicalDeviceHostImageCopyPropertiesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT,
+    eMemoryToImageCopyEXT                                    = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT,
+    eImageToMemoryCopyEXT                                    = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT,
+    eCopyImageToMemoryInfoEXT                                = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT,
+    eCopyMemoryToImageInfoEXT                                = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT,
+    eHostImageLayoutTransitionInfoEXT                        = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT,
+    eCopyImageToImageInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT,
+    eSubresourceHostMemcpySizeEXT                            = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT,
+    eHostImageCopyDevicePerformanceQueryEXT                  = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT,
+    eMemoryMapInfoKHR                                        = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR,
+    eMemoryUnmapInfoKHR                                      = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR,
+    ePhysicalDeviceShaderAtomicFloat2FeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
+    eSurfacePresentModeEXT                                   = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT,
+    eSurfacePresentScalingCapabilitiesEXT                    = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
+    eSurfacePresentModeCompatibilityEXT                      = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
+    ePhysicalDeviceSwapchainMaintenance1FeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
+    eSwapchainPresentFenceInfoEXT                            = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
+    eSwapchainPresentModesCreateInfoEXT                      = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
+    eSwapchainPresentModeInfoEXT                             = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT,
+    eSwapchainPresentScalingCreateInfoEXT                    = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
+    eReleaseSwapchainImagesInfoEXT                           = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
+    ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
+    ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
+    eGraphicsShaderGroupCreateInfoNV                         = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
+    eGraphicsPipelineShaderGroupsCreateInfoNV                = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
+    eIndirectCommandsLayoutTokenNV                           = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
+    eIndirectCommandsLayoutCreateInfoNV                      = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
+    eGeneratedCommandsInfoNV                                 = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
+    eGeneratedCommandsMemoryRequirementsInfoNV               = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
+    ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
+    ePhysicalDeviceInheritedViewportScissorFeaturesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
+    eCommandBufferInheritanceViewportScissorInfoNV           = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
+    ePhysicalDeviceShaderIntegerDotProductFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
+    ePhysicalDeviceShaderIntegerDotProductPropertiesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
+    ePhysicalDeviceTexelBufferAlignmentFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
+    ePhysicalDeviceTexelBufferAlignmentPropertiesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
+    eCommandBufferInheritanceRenderPassTransformInfoQCOM     = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
+    eRenderPassTransformBeginInfoQCOM                        = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
+    ePhysicalDeviceDepthBiasControlFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT,
+    eDepthBiasInfoEXT                                        = VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT,
+    eDepthBiasRepresentationInfoEXT                          = VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT,
+    ePhysicalDeviceDeviceMemoryReportFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
+    eDeviceDeviceMemoryReportCreateInfoEXT                   = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
+    eDeviceMemoryReportCallbackDataEXT                       = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
+    ePhysicalDeviceRobustness2FeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
+    ePhysicalDeviceRobustness2PropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
+    eSamplerCustomBorderColorCreateInfoEXT                   = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
+    ePhysicalDeviceCustomBorderColorPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
+    ePhysicalDeviceCustomBorderColorFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
+    ePipelineLibraryCreateInfoKHR                            = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
+    ePhysicalDevicePresentBarrierFeaturesNV                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
+    eSurfaceCapabilitiesPresentBarrierNV                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
+    eSwapchainPresentBarrierCreateInfoNV                     = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
+    ePresentIdKHR                                            = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
+    ePhysicalDevicePresentIdFeaturesKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
+    ePhysicalDevicePrivateDataFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
+    eDevicePrivateDataCreateInfoEXT                          = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
+    ePrivateDataSlotCreateInfoEXT                            = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
+    ePhysicalDevicePipelineCreationCacheControlFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
+    eVideoEncodeInfoKHR                                      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
+    eVideoEncodeRateControlInfoKHR                           = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
+    eVideoEncodeRateControlLayerInfoKHR                      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
+    eVideoEncodeCapabilitiesKHR                              = VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
+    eVideoEncodeUsageInfoKHR                                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR,
+    eQueryPoolVideoEncodeFeedbackCreateInfoKHR               = VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR,
+    ePhysicalDeviceVideoEncodeQualityLevelInfoKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
+    eVideoEncodeQualityLevelPropertiesKHR                    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR,
+    eVideoEncodeQualityLevelInfoKHR                          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
+    eVideoEncodeSessionParametersGetInfoKHR                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR,
+    eVideoEncodeSessionParametersFeedbackInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
+    ePhysicalDeviceDiagnosticsConfigFeaturesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
+    eDeviceDiagnosticsConfigCreateInfoNV                     = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
-    eVideoEncodeRateControlInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
-    eVideoEncodeRateControlLayerInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
-    eVideoEncodeCapabilitiesKHR         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
-    eVideoEncodeUsageInfoKHR            = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR,
+    eCudaModuleCreateInfoNV                     = VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV,
+    eCudaFunctionCreateInfoNV                   = VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV,
+    eCudaLaunchInfoNV                           = VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV,
+    ePhysicalDeviceCudaKernelLaunchFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV,
+    ePhysicalDeviceCudaKernelLaunchPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV,
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
-    eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
+    eQueryLowLatencySupportNV = VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV,
 #if defined( VK_USE_PLATFORM_METAL_EXT )
     eExportMetalObjectCreateInfoEXT = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
     eExportMetalObjectsInfoEXT      = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,
@@ -724,55 +1106,79 @@
     eExportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,
     eImportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,
 #endif /*VK_USE_PLATFORM_METAL_EXT*/
-    eQueueFamilyCheckpointProperties2NV                        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
-    eCheckpointData2NV                                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
-    ePhysicalDeviceDescriptorBufferPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
-    ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
-    ePhysicalDeviceDescriptorBufferFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
-    eDescriptorAddressInfoEXT                                  = VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
-    eDescriptorGetInfoEXT                                      = VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT,
-    eBufferCaptureDescriptorDataInfoEXT                        = VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
-    eImageCaptureDescriptorDataInfoEXT                         = VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
-    eImageViewCaptureDescriptorDataInfoEXT                     = VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
-    eSamplerCaptureDescriptorDataInfoEXT                       = VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
-    eOpaqueCaptureDescriptorDataCreateInfoEXT                  = VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
-    eDescriptorBufferBindingInfoEXT                            = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
-    eDescriptorBufferBindingPushDescriptorBufferHandleEXT      = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
-    eAccelerationStructureCaptureDescriptorDataInfoEXT         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
-    ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
-    ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
-    eGraphicsPipelineLibraryCreateInfoEXT                      = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
-    ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
-    ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
-    ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
-    ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
-    ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
-    ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
-    ePipelineFragmentShadingRateEnumStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
-    eAccelerationStructureGeometryMotionTrianglesDataNV        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
-    ePhysicalDeviceRayTracingMotionBlurFeaturesNV              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
-    eAccelerationStructureMotionInfoNV                         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
-    ePhysicalDeviceMeshShaderFeaturesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
-    ePhysicalDeviceMeshShaderPropertiesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
-    ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
-    ePhysicalDeviceFragmentDensityMap2FeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
-    ePhysicalDeviceFragmentDensityMap2PropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
-    eCopyCommandTransformInfoQCOM                              = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
-    ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
-    ePhysicalDeviceImageCompressionControlFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
-    eImageCompressionControlEXT                                = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,
-    eSubresourceLayout2EXT                                     = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,
-    eImageSubresource2EXT                                      = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,
-    eImageCompressionPropertiesEXT                             = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,
-    ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
-    ePhysicalDevice4444FormatsFeaturesEXT                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
-    ePhysicalDeviceFaultFeaturesEXT                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
-    eDeviceFaultCountsEXT                                      = VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT,
-    eDeviceFaultInfoEXT                                        = VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT,
-    ePhysicalDeviceRgba10X6FormatsFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
+    eMemoryBarrier2KHR                                           = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
+    eBufferMemoryBarrier2KHR                                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
+    eImageMemoryBarrier2KHR                                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
+    eDependencyInfoKHR                                           = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
+    eSubmitInfo2KHR                                              = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
+    eSemaphoreSubmitInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
+    eCommandBufferSubmitInfoKHR                                  = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
+    ePhysicalDeviceSynchronization2FeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
+    eQueueFamilyCheckpointProperties2NV                          = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
+    eCheckpointData2NV                                           = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
+    ePhysicalDeviceDescriptorBufferPropertiesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
+    ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
+    ePhysicalDeviceDescriptorBufferFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
+    eDescriptorAddressInfoEXT                                    = VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
+    eDescriptorGetInfoEXT                                        = VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT,
+    eBufferCaptureDescriptorDataInfoEXT                          = VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
+    eImageCaptureDescriptorDataInfoEXT                           = VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
+    eImageViewCaptureDescriptorDataInfoEXT                       = VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
+    eSamplerCaptureDescriptorDataInfoEXT                         = VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
+    eOpaqueCaptureDescriptorDataCreateInfoEXT                    = VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
+    eDescriptorBufferBindingInfoEXT                              = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
+    eDescriptorBufferBindingPushDescriptorBufferHandleEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
+    eAccelerationStructureCaptureDescriptorDataInfoEXT           = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
+    ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
+    ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
+    eGraphicsPipelineLibraryCreateInfoEXT                        = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
+    ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
+    ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
+    ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
+    ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
+    ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
+    ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
+    ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
+    ePipelineFragmentShadingRateEnumStateCreateInfoNV            = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
+    eAccelerationStructureGeometryMotionTrianglesDataNV          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
+    ePhysicalDeviceRayTracingMotionBlurFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
+    eAccelerationStructureMotionInfoNV                           = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
+    ePhysicalDeviceMeshShaderFeaturesEXT                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
+    ePhysicalDeviceMeshShaderPropertiesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
+    ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
+    ePhysicalDeviceFragmentDensityMap2FeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
+    ePhysicalDeviceFragmentDensityMap2PropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
+    eCopyCommandTransformInfoQCOM                                = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
+    ePhysicalDeviceImageRobustnessFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
+    ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
+    eCopyBufferInfo2KHR                                          = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
+    eCopyImageInfo2KHR                                           = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
+    eCopyBufferToImageInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
+    eCopyImageToBufferInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
+    eBlitImageInfo2KHR                                           = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
+    eResolveImageInfo2KHR                                        = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
+    eBufferCopy2KHR                                              = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
+    eImageCopy2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
+    eImageBlit2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
+    eBufferImageCopy2KHR                                         = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
+    eImageResolve2KHR                                            = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
+    ePhysicalDeviceImageCompressionControlFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
+    eImageCompressionControlEXT                                  = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,
+    eSubresourceLayout2EXT                                       = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,
+    eImageSubresource2EXT                                        = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,
+    eImageCompressionPropertiesEXT                               = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,
+    ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
+    ePhysicalDevice4444FormatsFeaturesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
+    ePhysicalDeviceFaultFeaturesEXT                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
+    eDeviceFaultCountsEXT                                        = VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT,
+    eDeviceFaultInfoEXT                                          = VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT,
+    ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,
+    ePhysicalDeviceRgba10X6FormatsFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+    ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
+    eMutableDescriptorTypeCreateInfoVALVE                  = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
     eVertexInputBindingDescription2EXT                     = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
     eVertexInputAttributeDescription2EXT                   = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
@@ -782,6 +1188,7 @@
     ePhysicalDeviceDepthClipControlFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
     ePipelineViewportDepthClipControlCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
     ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
+    eFormatProperties3KHR                                  = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     eImportMemoryZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
     eMemoryZirconHandlePropertiesFUCHSIA     = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
@@ -807,6 +1214,9 @@
     ePhysicalDeviceExternalMemoryRdmaFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
     ePipelinePropertiesIdentifierEXT                            = VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT,
     ePhysicalDevicePipelinePropertiesFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
+    ePipelineInfoEXT                                            = VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT,
+    ePhysicalDeviceFrameBoundaryFeaturesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT,
+    eFrameBoundaryEXT                                           = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT,
     ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
     eSubpassResolvePerformanceQueryEXT                          = VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
     eMultisampledRenderToSingleSampledInfoEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
@@ -814,33 +1224,60 @@
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
-    ePhysicalDeviceColorWriteEnableFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
-    ePipelineColorWriteCreateInfoEXT                             = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
-    ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
-    ePhysicalDeviceRayTracingMaintenance1FeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
-    ePhysicalDeviceImageViewMinLodFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
-    eImageViewMinLodCreateInfoEXT                                = VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
-    ePhysicalDeviceMultiDrawFeaturesEXT                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
-    ePhysicalDeviceMultiDrawPropertiesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
-    ePhysicalDeviceImage2DViewOf3DFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
-    eMicromapBuildInfoEXT                                        = VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT,
-    eMicromapVersionInfoEXT                                      = VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT,
-    eCopyMicromapInfoEXT                                         = VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT,
-    eCopyMicromapToMemoryInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT,
-    eCopyMemoryToMicromapInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT,
-    ePhysicalDeviceOpacityMicromapFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
-    ePhysicalDeviceOpacityMicromapPropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
-    eMicromapCreateInfoEXT                                       = VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,
-    eMicromapBuildSizesInfoEXT                                   = VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT,
-    eAccelerationStructureTrianglesOpacityMicromapEXT            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
+    ePhysicalDeviceColorWriteEnableFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
+    ePipelineColorWriteCreateInfoEXT                   = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
+    ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
+    ePhysicalDeviceRayTracingMaintenance1FeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
+    ePhysicalDeviceGlobalPriorityQueryFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
+    eQueueFamilyGlobalPriorityPropertiesEXT            = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
+    ePhysicalDeviceImageViewMinLodFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
+    eImageViewMinLodCreateInfoEXT                      = VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
+    ePhysicalDeviceMultiDrawFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
+    ePhysicalDeviceMultiDrawPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
+    ePhysicalDeviceImage2DViewOf3DFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
+    ePhysicalDeviceShaderTileImageFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT,
+    ePhysicalDeviceShaderTileImagePropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT,
+    eMicromapBuildInfoEXT                              = VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT,
+    eMicromapVersionInfoEXT                            = VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT,
+    eCopyMicromapInfoEXT                               = VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT,
+    eCopyMicromapToMemoryInfoEXT                       = VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT,
+    eCopyMemoryToMicromapInfoEXT                       = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT,
+    ePhysicalDeviceOpacityMicromapFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
+    ePhysicalDeviceOpacityMicromapPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
+    eMicromapCreateInfoEXT                             = VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,
+    eMicromapBuildSizesInfoEXT                         = VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT,
+    eAccelerationStructureTrianglesOpacityMicromapEXT  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    ePhysicalDeviceDisplacementMicromapFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV,
+    ePhysicalDeviceDisplacementMicromapPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV,
+    eAccelerationStructureTrianglesDisplacementMicromapNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI,
+    ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI,
+    ePhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI,
     ePhysicalDeviceBorderColorSwizzleFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
     eSamplerBorderColorComponentMappingCreateInfoEXT             = VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
     ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
+    ePhysicalDeviceMaintenance4FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
+    ePhysicalDeviceMaintenance4PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
+    eDeviceBufferMemoryRequirementsKHR                           = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
+    eDeviceImageMemoryRequirementsKHR                            = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
+    ePhysicalDeviceShaderCorePropertiesARM                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM,
+    eDeviceQueueShaderCoreControlCreateInfoARM                   = VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM,
+    ePhysicalDeviceSchedulingControlsFeaturesARM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM,
+    ePhysicalDeviceSchedulingControlsPropertiesARM               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM,
+    ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT,
+    eImageViewSlicedCreateInfoEXT                                = VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT,
     ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
     eDescriptorSetBindingReferenceVALVE                          = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
     eDescriptorSetLayoutHostMappingInfoVALVE                     = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
     ePhysicalDeviceDepthClampZeroOneFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,
     ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
+    ePhysicalDeviceRenderPassStripedFeaturesARM                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM,
+    ePhysicalDeviceRenderPassStripedPropertiesARM                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM,
+    eRenderPassStripeBeginInfoARM                                = VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM,
+    eRenderPassStripeInfoARM                                     = VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM,
+    eRenderPassStripeSubmitInfoARM                               = VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM,
     ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
     ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
     eSubpassFragmentDensityMapOffsetEndInfoQCOM                  = VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
@@ -848,11 +1285,17 @@
     ePhysicalDeviceCopyMemoryIndirectPropertiesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
     ePhysicalDeviceMemoryDecompressionFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
     ePhysicalDeviceMemoryDecompressionPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
+    ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV,
+    eComputePipelineIndirectBufferInfoNV                         = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV,
+    ePipelineIndirectDeviceAddressInfoNV                         = VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV,
     ePhysicalDeviceLinearColorAttachmentFeaturesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
     ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
     ePhysicalDeviceImageProcessingFeaturesQCOM                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
     ePhysicalDeviceImageProcessingPropertiesQCOM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
     eImageViewSampleWeightCreateInfoQCOM                         = VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
+    ePhysicalDeviceNestedCommandBufferFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT,
+    ePhysicalDeviceNestedCommandBufferPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT,
+    eExternalMemoryAcquireUnmodifiedEXT                          = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT,
     ePhysicalDeviceExtendedDynamicState3FeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
     ePhysicalDeviceExtendedDynamicState3PropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
     ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
@@ -875,6 +1318,24 @@
     eOpticalFlowSessionCreatePrivateDataInfoNV                   = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
     ePhysicalDeviceLegacyDitheringFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
     ePhysicalDevicePipelineProtectedAccessFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT,
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+    ePhysicalDeviceExternalFormatResolveFeaturesANDROID   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID,
+    ePhysicalDeviceExternalFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID,
+    eAndroidHardwareBufferFormatResolvePropertiesANDROID  = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID,
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+    ePhysicalDeviceMaintenance5FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR,
+    ePhysicalDeviceMaintenance5PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR,
+    eRenderingAreaInfoKHR                                        = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR,
+    eDeviceImageSubresourceInfoKHR                               = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR,
+    eSubresourceLayout2KHR                                       = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
+    eImageSubresource2KHR                                        = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
+    ePipelineCreateFlags2CreateInfoKHR                           = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR,
+    eBufferUsageFlags2CreateInfoKHR                              = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
+    ePhysicalDeviceRayTracingPositionFetchFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR,
+    ePhysicalDeviceShaderObjectFeaturesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT,
+    ePhysicalDeviceShaderObjectPropertiesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT,
+    eShaderCreateInfoEXT                                         = VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT,
+    eShaderRequiredSubgroupSizeCreateInfoEXT                     = VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
     ePhysicalDeviceTilePropertiesFeaturesQCOM                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
     eTilePropertiesQCOM                                          = VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,
     ePhysicalDeviceAmigoProfilingFeaturesSEC                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
@@ -882,182 +1343,64 @@
     ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
     ePhysicalDeviceRayTracingInvocationReorderFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
     ePhysicalDeviceRayTracingInvocationReorderPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
+    ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV,
+    ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV,
     ePhysicalDeviceMutableDescriptorTypeFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
     eMutableDescriptorTypeCreateInfoEXT                          = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
+    eLayerSettingsCreateInfoEXT                                  = VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT,
     ePhysicalDeviceShaderCoreBuiltinsFeaturesARM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
     ePhysicalDeviceShaderCoreBuiltinsPropertiesARM               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
-    eAttachmentDescription2KHR                                   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
-    eAttachmentDescriptionStencilLayoutKHR                       = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
-    eAttachmentReference2KHR                                     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
-    eAttachmentReferenceStencilLayoutKHR                         = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
-    eAttachmentSampleCountInfoNV                                 = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
-    eBindBufferMemoryDeviceGroupInfoKHR                          = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
-    eBindBufferMemoryInfoKHR                                     = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
-    eBindImageMemoryDeviceGroupInfoKHR                           = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
-    eBindImageMemoryInfoKHR                                      = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
-    eBindImagePlaneMemoryInfoKHR                                 = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
-    eBlitImageInfo2KHR                                           = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
-    eBufferCopy2KHR                                              = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
-    eBufferDeviceAddressInfoEXT                                  = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
-    eBufferDeviceAddressInfoKHR                                  = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
-    eBufferImageCopy2KHR                                         = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
-    eBufferMemoryBarrier2KHR                                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
-    eBufferMemoryRequirementsInfo2KHR                            = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
-    eBufferOpaqueCaptureAddressCreateInfoKHR                     = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
-    eCommandBufferInheritanceRenderingInfoKHR                    = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
-    eCommandBufferSubmitInfoKHR                                  = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
-    eCopyBufferInfo2KHR                                          = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
-    eCopyBufferToImageInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
-    eCopyImageInfo2KHR                                           = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
-    eCopyImageToBufferInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
-    eDebugReportCreateInfoEXT                                    = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
-    eDependencyInfoKHR                                           = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
-    eDescriptorPoolInlineUniformBlockCreateInfoEXT               = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
-    eDescriptorSetLayoutBindingFlagsCreateInfoEXT                = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
-    eDescriptorSetLayoutSupportKHR                               = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
-    eDescriptorSetVariableDescriptorCountAllocateInfoEXT         = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
-    eDescriptorSetVariableDescriptorCountLayoutSupportEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
-    eDescriptorUpdateTemplateCreateInfoKHR                       = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
-    eDeviceBufferMemoryRequirementsKHR                           = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
-    eDeviceGroupBindSparseInfoKHR                                = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
-    eDeviceGroupCommandBufferBeginInfoKHR                        = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
-    eDeviceGroupDeviceCreateInfoKHR                              = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
-    eDeviceGroupRenderPassBeginInfoKHR                           = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
-    eDeviceGroupSubmitInfoKHR                                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
-    eDeviceImageMemoryRequirementsKHR                            = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
-    eDeviceMemoryOpaqueCaptureAddressInfoKHR                     = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
-    eDevicePrivateDataCreateInfoEXT                              = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
-    eDeviceQueueGlobalPriorityCreateInfoEXT                      = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
-    eExportFenceCreateInfoKHR                                    = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
-    eExportMemoryAllocateInfoKHR                                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
-    eExportSemaphoreCreateInfoKHR                                = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
-    eExternalBufferPropertiesKHR                                 = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
-    eExternalFencePropertiesKHR                                  = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
-    eExternalImageFormatPropertiesKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
-    eExternalMemoryBufferCreateInfoKHR                           = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
-    eExternalMemoryImageCreateInfoKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
-    eExternalSemaphorePropertiesKHR                              = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
-    eFormatProperties2KHR                                        = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
-    eFormatProperties3KHR                                        = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
-    eFramebufferAttachmentsCreateInfoKHR                         = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
-    eFramebufferAttachmentImageInfoKHR                           = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
-    eImageBlit2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
-    eImageCopy2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
-    eImageFormatListCreateInfoKHR                                = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
-    eImageFormatProperties2KHR                                   = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
-    eImageMemoryBarrier2KHR                                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
-    eImageMemoryRequirementsInfo2KHR                             = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
-    eImagePlaneMemoryRequirementsInfoKHR                         = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
-    eImageResolve2KHR                                            = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
-    eImageSparseMemoryRequirementsInfo2KHR                       = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
-    eImageStencilUsageCreateInfoEXT                              = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
-    eImageViewUsageCreateInfoKHR                                 = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
-    eMemoryAllocateFlagsInfoKHR                                  = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
-    eMemoryBarrier2KHR                                           = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
-    eMemoryDedicatedAllocateInfoKHR                              = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
-    eMemoryDedicatedRequirementsKHR                              = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
-    eMemoryOpaqueCaptureAddressAllocateInfoKHR                   = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
-    eMemoryRequirements2KHR                                      = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
-    eMutableDescriptorTypeCreateInfoVALVE                        = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
-    ePhysicalDevice16BitStorageFeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
-    ePhysicalDevice8BitStorageFeaturesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
-    ePhysicalDeviceBufferAddressFeaturesEXT                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
-    ePhysicalDeviceBufferDeviceAddressFeaturesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
-    ePhysicalDeviceDepthStencilResolvePropertiesKHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
-    ePhysicalDeviceDescriptorIndexingFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
-    ePhysicalDeviceDescriptorIndexingPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
-    ePhysicalDeviceDriverPropertiesKHR                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
-    ePhysicalDeviceDynamicRenderingFeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
-    ePhysicalDeviceExternalBufferInfoKHR                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
-    ePhysicalDeviceExternalFenceInfoKHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
-    ePhysicalDeviceExternalImageFormatInfoKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
-    ePhysicalDeviceExternalSemaphoreInfoKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
-    ePhysicalDeviceFeatures2KHR                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
-    ePhysicalDeviceFloat16Int8FeaturesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
-    ePhysicalDeviceFloatControlsPropertiesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
-    ePhysicalDeviceFragmentShaderBarycentricFeaturesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
-    ePhysicalDeviceGlobalPriorityQueryFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
-    ePhysicalDeviceGroupPropertiesKHR                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
-    ePhysicalDeviceHostQueryResetFeaturesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
-    ePhysicalDeviceIdPropertiesKHR                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
-    ePhysicalDeviceImagelessFramebufferFeaturesKHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
-    ePhysicalDeviceImageFormatInfo2KHR                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
-    ePhysicalDeviceImageRobustnessFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
-    ePhysicalDeviceInlineUniformBlockFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
-    ePhysicalDeviceInlineUniformBlockPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
-    ePhysicalDeviceMaintenance3PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
-    ePhysicalDeviceMaintenance4FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
-    ePhysicalDeviceMaintenance4PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
-    ePhysicalDeviceMemoryProperties2KHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
-    ePhysicalDeviceMultiviewFeaturesKHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
-    ePhysicalDeviceMultiviewPropertiesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
-    ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
-    ePhysicalDevicePipelineCreationCacheControlFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
-    ePhysicalDevicePointClippingPropertiesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
-    ePhysicalDevicePrivateDataFeaturesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
-    ePhysicalDeviceProperties2KHR                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
-    ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,
-    ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
-    ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
-    ePhysicalDeviceScalarBlockLayoutFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
-    ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
-    ePhysicalDeviceShaderAtomicInt64FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
-    ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
-    ePhysicalDeviceShaderDrawParameterFeatures                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
-    ePhysicalDeviceShaderFloat16Int8FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
-    ePhysicalDeviceShaderIntegerDotProductFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
-    ePhysicalDeviceShaderIntegerDotProductPropertiesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
-    ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
-    ePhysicalDeviceShaderTerminateInvocationFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
-    ePhysicalDeviceSparseImageFormatInfo2KHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
-    ePhysicalDeviceSubgroupSizeControlFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
-    ePhysicalDeviceSubgroupSizeControlPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
-    ePhysicalDeviceSynchronization2FeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
-    ePhysicalDeviceTexelBufferAlignmentPropertiesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
-    ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
-    ePhysicalDeviceTimelineSemaphoreFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
-    ePhysicalDeviceTimelineSemaphorePropertiesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
-    ePhysicalDeviceToolPropertiesEXT                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
-    ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
-    ePhysicalDeviceVariablePointersFeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
-    ePhysicalDeviceVariablePointerFeatures                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
-    ePhysicalDeviceVariablePointerFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
-    ePhysicalDeviceVulkanMemoryModelFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
-    ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
-    ePipelineCreationFeedbackCreateInfoEXT                       = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
-    ePipelineInfoEXT                                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT,
-    ePipelineRenderingCreateInfoKHR                              = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
-    ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT        = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
-    ePipelineTessellationDomainOriginStateCreateInfoKHR          = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
-    ePrivateDataSlotCreateInfoEXT                                = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
-    eQueryPoolCreateInfoINTEL                                    = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
-    eQueueFamilyGlobalPriorityPropertiesEXT                      = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
-    eQueueFamilyProperties2KHR                                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
-    eRenderingAttachmentInfoKHR                                  = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
-    eRenderingInfoKHR                                            = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
-    eRenderPassAttachmentBeginInfoKHR                            = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
-    eRenderPassCreateInfo2KHR                                    = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
-    eRenderPassInputAttachmentAspectCreateInfoKHR                = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
-    eRenderPassMultiviewCreateInfoKHR                            = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
-    eResolveImageInfo2KHR                                        = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
-    eSamplerReductionModeCreateInfoEXT                           = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
-    eSamplerYcbcrConversionCreateInfoKHR                         = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
-    eSamplerYcbcrConversionImageFormatPropertiesKHR              = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
-    eSamplerYcbcrConversionInfoKHR                               = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
-    eSemaphoreSignalInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
-    eSemaphoreSubmitInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
-    eSemaphoreTypeCreateInfoKHR                                  = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
-    eSemaphoreWaitInfoKHR                                        = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
-    eSparseImageFormatProperties2KHR                             = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
-    eSparseImageMemoryRequirements2KHR                           = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
-    eSubmitInfo2KHR                                              = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
-    eSubpassBeginInfoKHR                                         = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
-    eSubpassDependency2KHR                                       = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
-    eSubpassDescription2KHR                                      = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
-    eSubpassDescriptionDepthStencilResolveKHR                    = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
-    eSubpassEndInfoKHR                                           = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
-    eTimelineSemaphoreSubmitInfoKHR                              = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
-    eWriteDescriptorSetInlineUniformBlockEXT                     = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT
+    ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT,
+    ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT,
+    eLatencySleepModeInfoNV                                      = VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV,
+    eLatencySleepInfoNV                                          = VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV,
+    eSetLatencyMarkerInfoNV                                      = VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV,
+    eGetLatencyMarkerInfoNV                                      = VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV,
+    eLatencyTimingsFrameReportNV                                 = VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV,
+    eLatencySubmissionPresentIdNV                                = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV,
+    eOutOfBandQueueTypeInfoNV                                    = VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV,
+    eSwapchainLatencyCreateInfoNV                                = VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV,
+    eLatencySurfaceCapabilitiesNV                                = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV,
+    ePhysicalDeviceCooperativeMatrixFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,
+    eCooperativeMatrixPropertiesKHR                              = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
+    ePhysicalDeviceCooperativeMatrixPropertiesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
+    ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM,
+    eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM          = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM,
+    ePhysicalDeviceVideoMaintenance1FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR,
+    eVideoInlineQueryInfoKHR                                     = VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR,
+    ePhysicalDevicePerStageDescriptorSetFeaturesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV,
+    ePhysicalDeviceImageProcessing2FeaturesQCOM                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM,
+    ePhysicalDeviceImageProcessing2PropertiesQCOM                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM,
+    eSamplerBlockMatchWindowCreateInfoQCOM                       = VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM,
+    eSamplerCubicWeightsCreateInfoQCOM                           = VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM,
+    ePhysicalDeviceCubicWeightsFeaturesQCOM                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM,
+    eBlitImageCubicWeightsInfoQCOM                               = VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM,
+    ePhysicalDeviceYcbcrDegammaFeaturesQCOM                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM,
+    eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM            = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM,
+    ePhysicalDeviceCubicClampFeaturesQCOM                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM,
+    ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT,
+    ePhysicalDeviceVertexAttributeDivisorPropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR,
+    ePipelineVertexInputDivisorStateCreateInfoKHR                = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
+    ePhysicalDeviceVertexAttributeDivisorFeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    eScreenBufferPropertiesQNX                           = VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX,
+    eScreenBufferFormatPropertiesQNX                     = VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX,
+    eImportScreenBufferInfoQNX                           = VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX,
+    eExternalFormatQNX                                   = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX,
+    ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX,
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+    ePhysicalDeviceLayeredDriverPropertiesMSFT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT,
+    eCalibratedTimestampInfoKHR                           = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
+    ePhysicalDeviceMaintenance6FeaturesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR,
+    ePhysicalDeviceMaintenance6PropertiesKHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR,
+    eBindMemoryStatusKHR                                  = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR,
+    eBindDescriptorSetsInfoKHR                            = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR,
+    ePushConstantsInfoKHR                                 = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR,
+    ePushDescriptorSetInfoKHR                             = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR,
+    ePushDescriptorSetWithTemplateInfoKHR                 = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR,
+    eSetDescriptorBufferOffsetsInfoEXT                    = VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT,
+    eBindDescriptorBufferEmbeddedSamplersInfoEXT          = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT,
+    ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
   };
 
   enum class PipelineCacheHeaderVersion
@@ -1067,61 +1410,64 @@
 
   enum class ObjectType
   {
-    eUnknown                  = VK_OBJECT_TYPE_UNKNOWN,
-    eInstance                 = VK_OBJECT_TYPE_INSTANCE,
-    ePhysicalDevice           = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
-    eDevice                   = VK_OBJECT_TYPE_DEVICE,
-    eQueue                    = VK_OBJECT_TYPE_QUEUE,
-    eSemaphore                = VK_OBJECT_TYPE_SEMAPHORE,
-    eCommandBuffer            = VK_OBJECT_TYPE_COMMAND_BUFFER,
-    eFence                    = VK_OBJECT_TYPE_FENCE,
-    eDeviceMemory             = VK_OBJECT_TYPE_DEVICE_MEMORY,
-    eBuffer                   = VK_OBJECT_TYPE_BUFFER,
-    eImage                    = VK_OBJECT_TYPE_IMAGE,
-    eEvent                    = VK_OBJECT_TYPE_EVENT,
-    eQueryPool                = VK_OBJECT_TYPE_QUERY_POOL,
-    eBufferView               = VK_OBJECT_TYPE_BUFFER_VIEW,
-    eImageView                = VK_OBJECT_TYPE_IMAGE_VIEW,
-    eShaderModule             = VK_OBJECT_TYPE_SHADER_MODULE,
-    ePipelineCache            = VK_OBJECT_TYPE_PIPELINE_CACHE,
-    ePipelineLayout           = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
-    eRenderPass               = VK_OBJECT_TYPE_RENDER_PASS,
-    ePipeline                 = VK_OBJECT_TYPE_PIPELINE,
-    eDescriptorSetLayout      = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
-    eSampler                  = VK_OBJECT_TYPE_SAMPLER,
-    eDescriptorPool           = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
-    eDescriptorSet            = VK_OBJECT_TYPE_DESCRIPTOR_SET,
-    eFramebuffer              = VK_OBJECT_TYPE_FRAMEBUFFER,
-    eCommandPool              = VK_OBJECT_TYPE_COMMAND_POOL,
-    eSamplerYcbcrConversion   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-    eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-    ePrivateDataSlot          = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
-    eSurfaceKHR               = VK_OBJECT_TYPE_SURFACE_KHR,
-    eSwapchainKHR             = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
-    eDisplayKHR               = VK_OBJECT_TYPE_DISPLAY_KHR,
-    eDisplayModeKHR           = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
-    eDebugReportCallbackEXT   = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoSessionKHR           = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
-    eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eUnknown                       = VK_OBJECT_TYPE_UNKNOWN,
+    eInstance                      = VK_OBJECT_TYPE_INSTANCE,
+    ePhysicalDevice                = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
+    eDevice                        = VK_OBJECT_TYPE_DEVICE,
+    eQueue                         = VK_OBJECT_TYPE_QUEUE,
+    eSemaphore                     = VK_OBJECT_TYPE_SEMAPHORE,
+    eCommandBuffer                 = VK_OBJECT_TYPE_COMMAND_BUFFER,
+    eFence                         = VK_OBJECT_TYPE_FENCE,
+    eDeviceMemory                  = VK_OBJECT_TYPE_DEVICE_MEMORY,
+    eBuffer                        = VK_OBJECT_TYPE_BUFFER,
+    eImage                         = VK_OBJECT_TYPE_IMAGE,
+    eEvent                         = VK_OBJECT_TYPE_EVENT,
+    eQueryPool                     = VK_OBJECT_TYPE_QUERY_POOL,
+    eBufferView                    = VK_OBJECT_TYPE_BUFFER_VIEW,
+    eImageView                     = VK_OBJECT_TYPE_IMAGE_VIEW,
+    eShaderModule                  = VK_OBJECT_TYPE_SHADER_MODULE,
+    ePipelineCache                 = VK_OBJECT_TYPE_PIPELINE_CACHE,
+    ePipelineLayout                = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
+    eRenderPass                    = VK_OBJECT_TYPE_RENDER_PASS,
+    ePipeline                      = VK_OBJECT_TYPE_PIPELINE,
+    eDescriptorSetLayout           = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
+    eSampler                       = VK_OBJECT_TYPE_SAMPLER,
+    eDescriptorPool                = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
+    eDescriptorSet                 = VK_OBJECT_TYPE_DESCRIPTOR_SET,
+    eFramebuffer                   = VK_OBJECT_TYPE_FRAMEBUFFER,
+    eCommandPool                   = VK_OBJECT_TYPE_COMMAND_POOL,
+    eSamplerYcbcrConversion        = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+    eDescriptorUpdateTemplate      = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+    ePrivateDataSlot               = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
+    eSurfaceKHR                    = VK_OBJECT_TYPE_SURFACE_KHR,
+    eSwapchainKHR                  = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
+    eDisplayKHR                    = VK_OBJECT_TYPE_DISPLAY_KHR,
+    eDisplayModeKHR                = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
+    eDebugReportCallbackEXT        = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
+    eVideoSessionKHR               = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
+    eVideoSessionParametersKHR     = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
+    eDescriptorUpdateTemplateKHR   = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
+    eSamplerYcbcrConversionKHR     = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR,
     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
+    ePrivateDataSlotEXT            = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eCudaModuleNV   = VK_OBJECT_TYPE_CUDA_MODULE_NV,
+    eCudaFunctionNV = VK_OBJECT_TYPE_CUDA_FUNCTION_NV,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-    eMicromapEXT                 = VK_OBJECT_TYPE_MICROMAP_EXT,
-    eOpticalFlowSessionNV        = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
-    eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
-    ePrivateDataSlotEXT          = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
-    eSamplerYcbcrConversionKHR   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
+    eMicromapEXT          = VK_OBJECT_TYPE_MICROMAP_EXT,
+    eOpticalFlowSessionNV = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
+    eShaderEXT            = VK_OBJECT_TYPE_SHADER_EXT
   };
 
   enum class VendorId
@@ -1131,7 +1477,8 @@
     eKazan    = VK_VENDOR_ID_KAZAN,
     eCodeplay = VK_VENDOR_ID_CODEPLAY,
     eMESA     = VK_VENDOR_ID_MESA,
-    ePocl     = VK_VENDOR_ID_POCL
+    ePocl     = VK_VENDOR_ID_POCL,
+    eMobileye = VK_VENDOR_ID_MOBILEYE
   };
 
   enum class Format
@@ -1383,15 +1730,6 @@
     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
-    eR16G16S105NV                            = VK_FORMAT_R16G16_S10_5_NV,
-    eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
-    eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
-    eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
-    eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
-    eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
-    eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
-    eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
-    eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
@@ -1400,44 +1738,55 @@
     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
-    eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
-    eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
-    eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
+    eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
+    eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
+    eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
+    eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
+    eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
+    eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
+    eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
+    eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
+    eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
+    eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
+    eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
+    eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
+    eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
+    eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
+    eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
-    eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
-    eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
-    eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
+    eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
+    eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
+    eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
+    eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR,
+    eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
+    eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
-    eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
-    eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
-    eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
+    eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
+    eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
+    eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
-    eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
-    eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
-    eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
+    eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
+    eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
+    eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
-    eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
-    eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
-    eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
-    eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
-    eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
-    eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
-    eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
-    eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
-    eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
-    eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
-    eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
-    eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR
+    eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
+    eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
+    eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
+    eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
+    eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
+    eR16G16S105NV                            = VK_FORMAT_R16G16_S10_5_NV,
+    eA1B5G5R5UnormPack16KHR                  = VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR,
+    eA8UnormKHR                              = VK_FORMAT_A8_UNORM_KHR
   };
 
   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
@@ -1463,33 +1812,29 @@
     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-    eDisjoint                 = VK_FORMAT_FEATURE_DISJOINT_BIT,
-    eCositedChromaSamples     = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-    eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
-    eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
-    eSampledImageFilterCubicEXT           = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
-    eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
-    eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
-    eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eCositedChromaSamplesKHR                                    = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
-    eDisjointKHR                                                = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
-    eMidpointChromaSamplesKHR                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
+    eDisjoint                                                   = VK_FORMAT_FEATURE_DISJOINT_BIT,
+    eCositedChromaSamples                                       = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+    eSampledImageFilterMinmax                                   = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
     eSampledImageFilterCubicIMG                                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
+    eVideoDecodeOutputKHR                                       = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
+    eVideoDecodeDpbKHR                                          = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
+    eTransferSrcKHR                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
+    eTransferDstKHR                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
     eSampledImageFilterMinmaxEXT                                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
+    eAccelerationStructureVertexBufferKHR                       = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
+    eMidpointChromaSamplesKHR                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
+    eSampledImageYcbcrConversionLinearFilterKHR                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
+    eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
-    eSampledImageYcbcrConversionLinearFilterKHR                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
-    eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
-    eTransferDstKHR                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
-    eTransferSrcKHR                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
+    eDisjointKHR                      = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
+    eCositedChromaSamplesKHR          = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
+    eSampledImageFilterCubicEXT       = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
+    eFragmentDensityMapEXT            = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
+    eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+    eVideoEncodeInputKHR              = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
+    eVideoEncodeDpbKHR                = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
   };
 
   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
@@ -1508,16 +1853,10 @@
       FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter |
       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit |
       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits::eDisjoint |
-      FormatFeatureFlagBits::eCositedChromaSamples | FormatFeatureFlagBits::eSampledImageFilterMinmax
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | FormatFeatureFlagBits::eVideoDecodeOutputKHR | FormatFeatureFlagBits::eVideoDecodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits::eSampledImageFilterCubicEXT |
-      FormatFeatureFlagBits::eFragmentDensityMapEXT | FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | FormatFeatureFlagBits::eVideoEncodeInputKHR | FormatFeatureFlagBits::eVideoEncodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      ;
+      FormatFeatureFlagBits::eCositedChromaSamples | FormatFeatureFlagBits::eSampledImageFilterMinmax | FormatFeatureFlagBits::eVideoDecodeOutputKHR |
+      FormatFeatureFlagBits::eVideoDecodeDpbKHR | FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR |
+      FormatFeatureFlagBits::eSampledImageFilterCubicEXT | FormatFeatureFlagBits::eFragmentDensityMapEXT |
+      FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR | FormatFeatureFlagBits::eVideoEncodeInputKHR | FormatFeatureFlagBits::eVideoEncodeDpbKHR;
   };
 
   enum class ImageCreateFlagBits : VkImageCreateFlags
@@ -1535,18 +1874,19 @@
     eProtected                            = VK_IMAGE_CREATE_PROTECTED_BIT,
     eDisjoint                             = VK_IMAGE_CREATE_DISJOINT_BIT,
     eCornerSampledNV                      = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
+    eSplitInstanceBindRegionsKHR          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
+    e2DArrayCompatibleKHR                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
+    eBlockTexelViewCompatibleKHR          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
+    eExtendedUsageKHR                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
     eSampleLocationsCompatibleDepthEXT    = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
+    eDisjointKHR                          = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
+    eAliasKHR                             = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
     eSubsampledEXT                        = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
     eDescriptorBufferCaptureReplayEXT     = VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
     eMultisampledRenderToSingleSampledEXT = VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,
     e2DViewCompatibleEXT                  = VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,
     eFragmentDensityMapOffsetQCOM         = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,
-    e2DArrayCompatibleKHR                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
-    eAliasKHR                             = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
-    eBlockTexelViewCompatibleKHR          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
-    eDisjointKHR                          = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
-    eExtendedUsageKHR                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
-    eSplitInstanceBindRegionsKHR          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
+    eVideoProfileIndependentKHR           = VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR
   };
 
   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
@@ -1562,7 +1902,7 @@
       ImageCreateFlagBits::eProtected | ImageCreateFlagBits::eDisjoint | ImageCreateFlagBits::eCornerSampledNV |
       ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT | ImageCreateFlagBits::eSubsampledEXT | ImageCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
       ImageCreateFlagBits::eMultisampledRenderToSingleSampledEXT | ImageCreateFlagBits::e2DViewCompatibleEXT |
-      ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM;
+      ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM | ImageCreateFlagBits::eVideoProfileIndependentKHR;
   };
 
   enum class ImageTiling
@@ -1581,31 +1921,28 @@
 
   enum class ImageUsageFlagBits : VkImageUsageFlags
   {
-    eTransferSrc            = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
-    eTransferDst            = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
-    eSampled                = VK_IMAGE_USAGE_SAMPLED_BIT,
-    eStorage                = VK_IMAGE_USAGE_STORAGE_BIT,
-    eColorAttachment        = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
-    eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
-    eTransientAttachment    = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
-    eInputAttachment        = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
-    eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
-    eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eTransferSrc                      = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
+    eTransferDst                      = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
+    eSampled                          = VK_IMAGE_USAGE_SAMPLED_BIT,
+    eStorage                          = VK_IMAGE_USAGE_STORAGE_BIT,
+    eColorAttachment                  = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
+    eDepthStencilAttachment           = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
+    eTransientAttachment              = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
+    eInputAttachment                  = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
+    eVideoDecodeDstKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
+    eVideoDecodeSrcKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
+    eVideoDecodeDpbKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
+    eShadingRateImageNV               = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
-    eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
-    eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eAttachmentFeedbackLoopEXT = VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
-    eInvocationMaskHUAWEI      = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
-    eSampleWeightQCOM          = VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,
-    eSampleBlockMatchQCOM      = VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,
-    eShadingRateImageNV        = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
+    eHostTransferEXT                  = VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT,
+    eVideoEncodeDstKHR                = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
+    eVideoEncodeSrcKHR                = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
+    eVideoEncodeDpbKHR                = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
+    eAttachmentFeedbackLoopEXT        = VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
+    eInvocationMaskHUAWEI             = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
+    eSampleWeightQCOM                 = VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,
+    eSampleBlockMatchQCOM             = VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
   };
 
   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
@@ -1617,16 +1954,11 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageUsageFlags allFlags =
       ImageUsageFlagBits::eTransferSrc | ImageUsageFlagBits::eTransferDst | ImageUsageFlagBits::eSampled | ImageUsageFlagBits::eStorage |
       ImageUsageFlagBits::eColorAttachment | ImageUsageFlagBits::eDepthStencilAttachment | ImageUsageFlagBits::eTransientAttachment |
-      ImageUsageFlagBits::eInputAttachment
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | ImageUsageFlagBits::eVideoDecodeDstKHR | ImageUsageFlagBits::eVideoDecodeSrcKHR | ImageUsageFlagBits::eVideoDecodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | ImageUsageFlagBits::eFragmentDensityMapEXT | ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | ImageUsageFlagBits::eVideoEncodeDstKHR | ImageUsageFlagBits::eVideoEncodeSrcKHR | ImageUsageFlagBits::eVideoEncodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | ImageUsageFlagBits::eAttachmentFeedbackLoopEXT | ImageUsageFlagBits::eInvocationMaskHUAWEI | ImageUsageFlagBits::eSampleWeightQCOM |
-      ImageUsageFlagBits::eSampleBlockMatchQCOM;
+      ImageUsageFlagBits::eInputAttachment | ImageUsageFlagBits::eVideoDecodeDstKHR | ImageUsageFlagBits::eVideoDecodeSrcKHR |
+      ImageUsageFlagBits::eVideoDecodeDpbKHR | ImageUsageFlagBits::eFragmentDensityMapEXT | ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR |
+      ImageUsageFlagBits::eHostTransferEXT | ImageUsageFlagBits::eVideoEncodeDstKHR | ImageUsageFlagBits::eVideoEncodeSrcKHR |
+      ImageUsageFlagBits::eVideoEncodeDpbKHR | ImageUsageFlagBits::eAttachmentFeedbackLoopEXT | ImageUsageFlagBits::eInvocationMaskHUAWEI |
+      ImageUsageFlagBits::eSampleWeightQCOM | ImageUsageFlagBits::eSampleBlockMatchQCOM;
   };
 
   enum class InstanceCreateFlagBits : VkInstanceCreateFlags
@@ -1700,16 +2032,14 @@
 
   enum class QueueFlagBits : VkQueueFlags
   {
-    eGraphics      = VK_QUEUE_GRAPHICS_BIT,
-    eCompute       = VK_QUEUE_COMPUTE_BIT,
-    eTransfer      = VK_QUEUE_TRANSFER_BIT,
-    eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
-    eProtected     = VK_QUEUE_PROTECTED_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eGraphics       = VK_QUEUE_GRAPHICS_BIT,
+    eCompute        = VK_QUEUE_COMPUTE_BIT,
+    eTransfer       = VK_QUEUE_TRANSFER_BIT,
+    eSparseBinding  = VK_QUEUE_SPARSE_BINDING_BIT,
+    eProtected      = VK_QUEUE_PROTECTED_BIT,
     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eOpticalFlowNV = VK_QUEUE_OPTICAL_FLOW_BIT_NV
+    eOpticalFlowNV  = VK_QUEUE_OPTICAL_FLOW_BIT_NV
   };
 
   using QueueFlags = Flags<QueueFlagBits>;
@@ -1719,11 +2049,8 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool       isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR QueueFlags allFlags  = QueueFlagBits::eGraphics | QueueFlagBits::eCompute | QueueFlagBits::eTransfer |
-                                                               QueueFlagBits::eSparseBinding | QueueFlagBits::eProtected
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-                                                               | QueueFlagBits::eVideoDecodeKHR | QueueFlagBits::eVideoEncodeKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-                                                               | QueueFlagBits::eOpticalFlowNV;
+                                                               QueueFlagBits::eSparseBinding | QueueFlagBits::eProtected | QueueFlagBits::eVideoDecodeKHR |
+                                                               QueueFlagBits::eVideoEncodeKHR | QueueFlagBits::eOpticalFlowNV;
   };
 
   enum class SampleCountFlagBits : VkSampleCountFlags
@@ -1770,6 +2097,20 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceCreateFlags allFlags  = {};
   };
 
+  enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
+  {
+    eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
+  };
+
+  using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
+
+  template <>
+  struct FlagTraits<DeviceQueueCreateFlagBits>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags  = DeviceQueueCreateFlagBits::eProtected;
+  };
+
   enum class PipelineStageFlagBits : VkPipelineStageFlags
   {
     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
@@ -1794,17 +2135,17 @@
     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
+    eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
+    eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
+    eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
+    eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
+    eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
-    eTaskShaderEXT                    = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
-    eMeshShaderEXT                    = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
-    eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
-    eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
-    eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
-    eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
-    eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV
+    eTaskShaderEXT                    = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
+    eMeshShaderEXT                    = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
   };
 
   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
@@ -1838,15 +2179,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryMapFlags allFlags  = {};
   };
 
-  enum class MemoryMapFlagBits : VkMemoryMapFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class ImageAspectFlagBits : VkImageAspectFlags
   {
     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
@@ -1857,14 +2189,14 @@
     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
     eNone            = VK_IMAGE_ASPECT_NONE,
+    ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
+    ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
+    ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,
     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
-    eNoneKHR         = VK_IMAGE_ASPECT_NONE_KHR,
-    ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
-    ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
-    ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
+    eNoneKHR         = VK_IMAGE_ASPECT_NONE_KHR
   };
 
   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
@@ -1938,15 +2270,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreCreateFlags allFlags  = {};
   };
 
-  enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class EventCreateFlagBits : VkEventCreateFlags
   {
     eDeviceOnly    = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
@@ -1976,7 +2299,8 @@
     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
     eComputeShaderInvocations                = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,
     eTaskShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,
-    eMeshShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
+    eMeshShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,
+    eClusterCullingShaderInvocationsHUAWEI   = VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI
   };
 
   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
@@ -1992,7 +2316,7 @@
       QueryPipelineStatisticFlagBits::eClippingPrimitives | QueryPipelineStatisticFlagBits::eFragmentShaderInvocations |
       QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches | QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations |
       QueryPipelineStatisticFlagBits::eComputeShaderInvocations | QueryPipelineStatisticFlagBits::eTaskShaderInvocationsEXT |
-      QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT;
+      QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT | QueryPipelineStatisticFlagBits::eClusterCullingShaderInvocationsHUAWEI;
   };
 
   enum class QueryResultFlagBits : VkQueryResultFlags
@@ -2001,9 +2325,7 @@
     eWait             = VK_QUERY_RESULT_WAIT_BIT,
     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eWithStatusKHR    = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
   };
 
   using QueryResultFlags = Flags<QueryResultFlagBits>;
@@ -2013,30 +2335,23 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryResultFlags allFlags  = QueryResultFlagBits::e64 | QueryResultFlagBits::eWait |
-                                                                     QueryResultFlagBits::eWithAvailability | QueryResultFlagBits::ePartial
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-                                                                     | QueryResultFlagBits::eWithStatusKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      ;
+                                                                     QueryResultFlagBits::eWithAvailability | QueryResultFlagBits::ePartial |
+                                                                     QueryResultFlagBits::eWithStatusKHR;
   };
 
   enum class QueryType
   {
-    eOcclusion          = VK_QUERY_TYPE_OCCLUSION,
-    ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
-    eTimestamp          = VK_QUERY_TYPE_TIMESTAMP,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
-    ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
-    eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
-    eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
-    eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
-    ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eOcclusion                                                = VK_QUERY_TYPE_OCCLUSION,
+    ePipelineStatistics                                       = VK_QUERY_TYPE_PIPELINE_STATISTICS,
+    eTimestamp                                                = VK_QUERY_TYPE_TIMESTAMP,
+    eResultStatusOnlyKHR                                      = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
+    eTransformFeedbackStreamEXT                               = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
+    ePerformanceQueryKHR                                      = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
+    eAccelerationStructureCompactedSizeKHR                    = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
+    eAccelerationStructureSerializationSizeKHR                = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
+    eAccelerationStructureCompactedSizeNV                     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
+    ePerformanceQueryINTEL                                    = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
+    eVideoEncodeFeedbackKHR                                   = VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR,
     eMeshPrimitivesGeneratedEXT                               = VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT,
     ePrimitivesGeneratedEXT                                   = VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT,
     eAccelerationStructureSerializationBottomLevelPointersKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,
@@ -2058,15 +2373,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPoolCreateFlags allFlags  = {};
   };
 
-  enum class QueryPoolCreateFlagBits
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class BufferCreateFlagBits : VkBufferCreateFlags
   {
     eSparseBinding                    = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
@@ -2074,9 +2380,10 @@
     eSparseAliased                    = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
     eProtected                        = VK_BUFFER_CREATE_PROTECTED_BIT,
     eDeviceAddressCaptureReplay       = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
-    eDescriptorBufferCaptureReplayEXT = VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
     eDeviceAddressCaptureReplayEXT    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
-    eDeviceAddressCaptureReplayKHR    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
+    eDeviceAddressCaptureReplayKHR    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
+    eDescriptorBufferCaptureReplayEXT = VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
+    eVideoProfileIndependentKHR       = VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR
   };
 
   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
@@ -2087,43 +2394,43 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferCreateFlags allFlags =
       BufferCreateFlagBits::eSparseBinding | BufferCreateFlagBits::eSparseResidency | BufferCreateFlagBits::eSparseAliased | BufferCreateFlagBits::eProtected |
-      BufferCreateFlagBits::eDeviceAddressCaptureReplay | BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT;
+      BufferCreateFlagBits::eDeviceAddressCaptureReplay | BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
+      BufferCreateFlagBits::eVideoProfileIndependentKHR;
   };
 
   enum class BufferUsageFlagBits : VkBufferUsageFlags
   {
-    eTransferSrc         = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
-    eTransferDst         = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
-    eUniformTexelBuffer  = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
-    eStorageTexelBuffer  = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
-    eUniformBuffer       = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
-    eStorageBuffer       = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
-    eIndexBuffer         = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
-    eVertexBuffer        = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
-    eIndirectBuffer      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
-    eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
+    eTransferSrc                       = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
+    eTransferDst                       = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
+    eUniformTexelBuffer                = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
+    eStorageTexelBuffer                = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
+    eUniformBuffer                     = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
+    eStorageBuffer                     = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
+    eIndexBuffer                       = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
+    eVertexBuffer                      = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
+    eIndirectBuffer                    = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
+    eShaderDeviceAddress               = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
+    eVideoDecodeSrcKHR                 = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
+    eVideoDecodeDstKHR                 = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
+    eTransformFeedbackBufferEXT        = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
+    eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
+    eConditionalRenderingEXT           = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
-    eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
+    eExecutionGraphScratchAMDX = VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eTransformFeedbackBufferEXT                 = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
-    eTransformFeedbackCounterBufferEXT          = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
-    eConditionalRenderingEXT                    = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
-    eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eSamplerDescriptorBufferEXT         = VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
-    eResourceDescriptorBufferEXT        = VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
-    ePushDescriptorsDescriptorBufferEXT = VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
-    eMicromapBuildInputReadOnlyEXT      = VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
-    eMicromapStorageEXT                 = VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,
-    eRayTracingNV                       = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
-    eShaderDeviceAddressEXT             = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
-    eShaderDeviceAddressKHR             = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
+    eRayTracingNV                               = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
+    eShaderDeviceAddressEXT                     = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
+    eShaderDeviceAddressKHR                     = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,
+    eVideoEncodeDstKHR                          = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
+    eVideoEncodeSrcKHR                          = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
+    eSamplerDescriptorBufferEXT                 = VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
+    eResourceDescriptorBufferEXT                = VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
+    ePushDescriptorsDescriptorBufferEXT         = VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
+    eMicromapBuildInputReadOnlyEXT              = VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
+    eMicromapStorageEXT                         = VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
   };
 
   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
@@ -2135,17 +2442,15 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferUsageFlags allFlags =
       BufferUsageFlagBits::eTransferSrc | BufferUsageFlagBits::eTransferDst | BufferUsageFlagBits::eUniformTexelBuffer |
       BufferUsageFlagBits::eStorageTexelBuffer | BufferUsageFlagBits::eUniformBuffer | BufferUsageFlagBits::eStorageBuffer | BufferUsageFlagBits::eIndexBuffer |
-      BufferUsageFlagBits::eVertexBuffer | BufferUsageFlagBits::eIndirectBuffer | BufferUsageFlagBits::eShaderDeviceAddress
+      BufferUsageFlagBits::eVertexBuffer | BufferUsageFlagBits::eIndirectBuffer | BufferUsageFlagBits::eShaderDeviceAddress |
+      BufferUsageFlagBits::eVideoDecodeSrcKHR | BufferUsageFlagBits::eVideoDecodeDstKHR | BufferUsageFlagBits::eTransformFeedbackBufferEXT |
+      BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT | BufferUsageFlagBits::eConditionalRenderingEXT
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | BufferUsageFlagBits::eVideoDecodeSrcKHR | BufferUsageFlagBits::eVideoDecodeDstKHR
+      | BufferUsageFlagBits::eExecutionGraphScratchAMDX
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | BufferUsageFlagBits::eTransformFeedbackBufferEXT | BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT |
-      BufferUsageFlagBits::eConditionalRenderingEXT | BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR |
-      BufferUsageFlagBits::eAccelerationStructureStorageKHR | BufferUsageFlagBits::eShaderBindingTableKHR
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | BufferUsageFlagBits::eVideoEncodeDstKHR | BufferUsageFlagBits::eVideoEncodeSrcKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | BufferUsageFlagBits::eSamplerDescriptorBufferEXT | BufferUsageFlagBits::eResourceDescriptorBufferEXT |
+      | BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR | BufferUsageFlagBits::eAccelerationStructureStorageKHR |
+      BufferUsageFlagBits::eShaderBindingTableKHR | BufferUsageFlagBits::eVideoEncodeDstKHR | BufferUsageFlagBits::eVideoEncodeSrcKHR |
+      BufferUsageFlagBits::eSamplerDescriptorBufferEXT | BufferUsageFlagBits::eResourceDescriptorBufferEXT |
       BufferUsageFlagBits::ePushDescriptorsDescriptorBufferEXT | BufferUsageFlagBits::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits::eMicromapStorageEXT;
   };
 
@@ -2168,58 +2473,45 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferViewCreateFlags allFlags  = {};
   };
 
-  enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class ImageLayout
   {
-    eUndefined                             = VK_IMAGE_LAYOUT_UNDEFINED,
-    eGeneral                               = VK_IMAGE_LAYOUT_GENERAL,
-    eColorAttachmentOptimal                = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-    eDepthStencilAttachmentOptimal         = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
-    eDepthStencilReadOnlyOptimal           = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
-    eShaderReadOnlyOptimal                 = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
-    eTransferSrcOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-    eTransferDstOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-    ePreinitialized                        = VK_IMAGE_LAYOUT_PREINITIALIZED,
-    eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-    eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-    eDepthAttachmentOptimal                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
-    eDepthReadOnlyOptimal                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
-    eStencilAttachmentOptimal              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
-    eStencilReadOnlyOptimal                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
-    eReadOnlyOptimal                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
-    eAttachmentOptimal                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
-    ePresentSrcKHR                         = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
-    eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
-    eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eSharedPresentKHR                        = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
-    eFragmentDensityMapOptimalEXT            = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
-    eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
-    eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
-    eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eAttachmentFeedbackLoopOptimalEXT         = VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT,
-    eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
-    eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
-    eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
-    eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
+    eUndefined                                = VK_IMAGE_LAYOUT_UNDEFINED,
+    eGeneral                                  = VK_IMAGE_LAYOUT_GENERAL,
+    eColorAttachmentOptimal                   = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+    eDepthStencilAttachmentOptimal            = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+    eDepthStencilReadOnlyOptimal              = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
+    eShaderReadOnlyOptimal                    = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+    eTransferSrcOptimal                       = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+    eTransferDstOptimal                       = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
+    ePreinitialized                           = VK_IMAGE_LAYOUT_PREINITIALIZED,
+    eDepthReadOnlyStencilAttachmentOptimal    = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+    eDepthAttachmentStencilReadOnlyOptimal    = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+    eDepthAttachmentOptimal                   = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+    eDepthReadOnlyOptimal                     = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+    eStencilAttachmentOptimal                 = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+    eStencilReadOnlyOptimal                   = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+    eReadOnlyOptimal                          = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
+    eAttachmentOptimal                        = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
+    ePresentSrcKHR                            = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
+    eVideoDecodeDstKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
+    eVideoDecodeSrcKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
+    eVideoDecodeDpbKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
+    eSharedPresentKHR                         = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
-    eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
+    eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
+    eFragmentDensityMapOptimalEXT             = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
+    eFragmentShadingRateAttachmentOptimalKHR  = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
+    eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
+    eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
-    eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
+    eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR,
+    eVideoEncodeDstKHR                        = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
+    eVideoEncodeSrcKHR                        = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
+    eVideoEncodeDpbKHR                        = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
+    eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
+    eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
+    eAttachmentFeedbackLoopOptimalEXT         = VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
   };
 
   enum class ComponentSwizzle
@@ -2275,6 +2567,21 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderModuleCreateFlags allFlags  = {};
   };
 
+  enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
+  {
+    eExternallySynchronized    = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
+    eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
+  };
+
+  using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
+
+  template <>
+  struct FlagTraits<PipelineCacheCreateFlagBits>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags  = PipelineCacheCreateFlagBits::eExternallySynchronized;
+  };
+
   enum class BlendFactor
   {
     eZero                  = VK_BLEND_FACTOR_ZERO,
@@ -2429,16 +2736,34 @@
     ePrimitiveRestartEnable              = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
     eViewportWScalingNV                  = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
     eDiscardRectangleEXT                 = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
+    eDiscardRectangleEnableEXT           = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT,
+    eDiscardRectangleModeEXT             = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT,
     eSampleLocationsEXT                  = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
     eRayTracingPipelineStackSizeKHR      = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
     eViewportShadingRatePaletteNV        = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
     eViewportCoarseSampleOrderNV         = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
+    eExclusiveScissorEnableNV            = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV,
     eExclusiveScissorNV                  = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
     eFragmentShadingRateKHR              = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
     eLineStippleEXT                      = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
+    eCullModeEXT                         = VK_DYNAMIC_STATE_CULL_MODE_EXT,
+    eFrontFaceEXT                        = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
+    ePrimitiveTopologyEXT                = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
+    eViewportWithCountEXT                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
+    eScissorWithCountEXT                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
+    eVertexInputBindingStrideEXT         = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
+    eDepthTestEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
+    eDepthWriteEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
+    eDepthCompareOpEXT                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
+    eDepthBoundsTestEnableEXT            = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
+    eStencilTestEnableEXT                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
+    eStencilOpEXT                        = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
     eVertexInputEXT                      = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
     ePatchControlPointsEXT               = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
+    eRasterizerDiscardEnableEXT          = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
+    eDepthBiasEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
     eLogicOpEXT                          = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
+    ePrimitiveRestartEnableEXT           = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
     eColorWriteEnableEXT                 = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,
     eTessellationDomainOriginEXT         = VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT,
     eDepthClampEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,
@@ -2471,21 +2796,7 @@
     eShadingRateImageEnableNV            = VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV,
     eRepresentativeFragmentTestEnableNV  = VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
     eCoverageReductionModeNV             = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
-    eCullModeEXT                         = VK_DYNAMIC_STATE_CULL_MODE_EXT,
-    eDepthBiasEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
-    eDepthBoundsTestEnableEXT            = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
-    eDepthCompareOpEXT                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
-    eDepthTestEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
-    eDepthWriteEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
-    eFrontFaceEXT                        = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
-    ePrimitiveRestartEnableEXT           = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
-    ePrimitiveTopologyEXT                = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
-    eRasterizerDiscardEnableEXT          = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
-    eScissorWithCountEXT                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
-    eStencilOpEXT                        = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
-    eStencilTestEnableEXT                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
-    eVertexInputBindingStrideEXT         = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
-    eViewportWithCountEXT                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
+    eAttachmentFeedbackLoopEnableEXT     = VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
   };
 
   enum class FrontFace
@@ -2524,7 +2835,11 @@
     eFailOnPipelineCompileRequired                                      = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
     eEarlyReturnOnFailure                                               = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
     eRenderingFragmentShadingRateAttachmentKHR                          = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+    eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
     eRenderingFragmentDensityMapAttachmentEXT                           = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
+    eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT  = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
+    eViewIndexFromDeviceIndexKHR                                        = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
+    eDispatchBaseKHR                                                    = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
     eRayTracingNoNullAnyHitShadersKHR                                   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
     eRayTracingNoNullClosestHitShadersKHR                               = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
     eRayTracingNoNullMissShadersKHR                                     = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
@@ -2537,6 +2852,8 @@
     eCaptureInternalRepresentationsKHR                                  = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
     eIndirectBindableNV                                                 = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
     eLibraryKHR                                                         = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
+    eFailOnPipelineCompileRequiredEXT                                   = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
+    eEarlyReturnOnFailureEXT                                            = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
     eDescriptorBufferEXT                                                = VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
     eRetainLinkTimeOptimizationInfoEXT                                  = VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
     eLinkTimeOptimizationEXT                                            = VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,
@@ -2544,14 +2861,11 @@
     eColorAttachmentFeedbackLoopEXT                                     = VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
     eDepthStencilAttachmentFeedbackLoopEXT                              = VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
     eRayTracingOpacityMicromapEXT                                       = VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
-    eNoProtectedAccessEXT                                               = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,
-    eProtectedAccessOnlyEXT                                             = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,
-    eDispatchBaseKHR                                                    = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
-    eEarlyReturnOnFailureEXT                                            = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
-    eFailOnPipelineCompileRequiredEXT                                   = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
-    eViewIndexFromDeviceIndexKHR                                        = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
-    eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT  = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
-    eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eRayTracingDisplacementMicromapNV = VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eNoProtectedAccessEXT   = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,
+    eProtectedAccessOnlyEXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
   };
 
   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
@@ -2572,8 +2886,11 @@
       PipelineCreateFlagBits::eIndirectBindableNV | PipelineCreateFlagBits::eLibraryKHR | PipelineCreateFlagBits::eDescriptorBufferEXT |
       PipelineCreateFlagBits::eRetainLinkTimeOptimizationInfoEXT | PipelineCreateFlagBits::eLinkTimeOptimizationEXT |
       PipelineCreateFlagBits::eRayTracingAllowMotionNV | PipelineCreateFlagBits::eColorAttachmentFeedbackLoopEXT |
-      PipelineCreateFlagBits::eDepthStencilAttachmentFeedbackLoopEXT | PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT |
-      PipelineCreateFlagBits::eNoProtectedAccessEXT | PipelineCreateFlagBits::eProtectedAccessOnlyEXT;
+      PipelineCreateFlagBits::eDepthStencilAttachmentFeedbackLoopEXT | PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      | PipelineCreateFlagBits::eRayTracingDisplacementMicromapNV
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      | PipelineCreateFlagBits::eNoProtectedAccessEXT | PipelineCreateFlagBits::eProtectedAccessOnlyEXT;
   };
 
   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
@@ -2633,17 +2950,18 @@
     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
+    eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV,
+    eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
+    eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
+    eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
+    eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
+    eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
+    eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV,
+    eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
     eTaskEXT                = VK_SHADER_STAGE_TASK_BIT_EXT,
     eMeshEXT                = VK_SHADER_STAGE_MESH_BIT_EXT,
     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
-    eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
-    eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
-    eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
-    eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
-    eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
-    eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
-    eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV,
-    eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV
+    eClusterCullingHUAWEI   = VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
   };
 
   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
@@ -2657,7 +2975,7 @@
       ShaderStageFlagBits::eFragment | ShaderStageFlagBits::eCompute | ShaderStageFlagBits::eAllGraphics | ShaderStageFlagBits::eAll |
       ShaderStageFlagBits::eRaygenKHR | ShaderStageFlagBits::eAnyHitKHR | ShaderStageFlagBits::eClosestHitKHR | ShaderStageFlagBits::eMissKHR |
       ShaderStageFlagBits::eIntersectionKHR | ShaderStageFlagBits::eCallableKHR | ShaderStageFlagBits::eTaskEXT | ShaderStageFlagBits::eMeshEXT |
-      ShaderStageFlagBits::eSubpassShadingHUAWEI;
+      ShaderStageFlagBits::eSubpassShadingHUAWEI | ShaderStageFlagBits::eClusterCullingHUAWEI;
   };
 
   enum class StencilOp
@@ -2678,6 +2996,41 @@
     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
   };
 
+  enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
+  {
+    eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,
+    eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
+  };
+
+  using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
+
+  template <>
+  struct FlagTraits<PipelineColorBlendStateCreateFlagBits>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags =
+      PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT;
+  };
+
+  enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
+  {
+    eRasterizationOrderAttachmentDepthAccessARM   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
+    eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
+    eRasterizationOrderAttachmentDepthAccessEXT   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
+    eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
+  };
+
+  using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
+
+  template <>
+  struct FlagTraits<PipelineDepthStencilStateCreateFlagBits>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags =
+      PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
+      PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT;
+  };
+
   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
   {
   };
@@ -2704,6 +3057,20 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineInputAssemblyStateCreateFlags allFlags  = {};
   };
 
+  enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
+  {
+    eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
+  };
+
+  using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
+
+  template <>
+  struct FlagTraits<PipelineLayoutCreateFlagBits>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags  = PipelineLayoutCreateFlagBits::eIndependentSetsEXT;
+  };
+
   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
   {
   };
@@ -2769,78 +3136,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineViewportStateCreateFlags allFlags  = {};
   };
 
-  enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class BorderColor
   {
     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
@@ -2857,8 +3152,8 @@
   {
     eNearest  = VK_FILTER_NEAREST,
     eLinear   = VK_FILTER_LINEAR,
-    eCubicEXT = VK_FILTER_CUBIC_EXT,
-    eCubicIMG = VK_FILTER_CUBIC_IMG
+    eCubicIMG = VK_FILTER_CUBIC_IMG,
+    eCubicEXT = VK_FILTER_CUBIC_EXT
   };
 
   enum class SamplerAddressMode
@@ -2899,11 +3194,13 @@
 
   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
   {
-    eFreeDescriptorSet  = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
-    eUpdateAfterBind    = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
-    eHostOnlyEXT        = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
-    eHostOnlyVALVE      = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
-    eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
+    eFreeDescriptorSet          = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
+    eUpdateAfterBind            = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
+    eUpdateAfterBindEXT         = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,
+    eHostOnlyVALVE              = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
+    eHostOnlyEXT                = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
+    eAllowOverallocationSetsNV  = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV,
+    eAllowOverallocationPoolsNV = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV
   };
 
   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
@@ -2913,18 +3210,21 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolCreateFlags allFlags =
-      DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT;
+      DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT |
+      DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV | DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV;
   };
 
   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
   {
     eUpdateAfterBindPool          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
     ePushDescriptorKHR            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
+    eUpdateAfterBindPoolEXT       = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,
     eDescriptorBufferEXT          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
     eEmbeddedImmutableSamplersEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,
-    eHostOnlyPoolEXT              = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
     eHostOnlyPoolVALVE            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
-    eUpdateAfterBindPoolEXT       = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
+    eIndirectBindableNV           = VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV,
+    eHostOnlyPoolEXT              = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
+    ePerStageNV                   = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV
   };
 
   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
@@ -2936,7 +3236,8 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorSetLayoutCreateFlags allFlags =
       DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool | DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR |
       DescriptorSetLayoutCreateFlagBits::eDescriptorBufferEXT | DescriptorSetLayoutCreateFlagBits::eEmbeddedImmutableSamplersEXT |
-      DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT;
+      DescriptorSetLayoutCreateFlagBits::eIndirectBindableNV | DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT |
+      DescriptorSetLayoutCreateFlagBits::ePerStageNV;
   };
 
   enum class DescriptorType
@@ -2953,13 +3254,13 @@
     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
     eInlineUniformBlock       = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
+    eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
+    eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE,
     eSampleWeightImageQCOM    = VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
     eBlockMatchImageQCOM      = VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
-    eMutableEXT               = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
-    eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
-    eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
+    eMutableEXT               = VK_DESCRIPTOR_TYPE_MUTABLE_EXT
   };
 
   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
@@ -2975,15 +3276,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolResetFlags allFlags  = {};
   };
 
-  enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class AccessFlagBits : VkAccessFlags
   {
     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
@@ -3011,14 +3303,14 @@
     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+    eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
+    eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
+    eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
-    eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
-    eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
-    eNoneKHR                              = VK_ACCESS_NONE_KHR,
-    eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
+    eNoneKHR                              = VK_ACCESS_NONE_KHR
   };
 
   using AccessFlags = Flags<AccessFlagBits>;
@@ -3065,9 +3357,9 @@
     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
     eNone     = VK_ATTACHMENT_STORE_OP_NONE,
-    eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT,
     eNoneKHR  = VK_ATTACHMENT_STORE_OP_NONE_KHR,
-    eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
+    eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM,
+    eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT
   };
 
   enum class DependencyFlagBits : VkDependencyFlags
@@ -3075,9 +3367,9 @@
     eByRegion        = VK_DEPENDENCY_BY_REGION_BIT,
     eDeviceGroup     = VK_DEPENDENCY_DEVICE_GROUP_BIT,
     eViewLocal       = VK_DEPENDENCY_VIEW_LOCAL_BIT,
-    eFeedbackLoopEXT = VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,
+    eViewLocalKHR    = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,
     eDeviceGroupKHR  = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
-    eViewLocalKHR    = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
+    eFeedbackLoopEXT = VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT
   };
 
   using DependencyFlags = Flags<DependencyFlagBits>;
@@ -3107,11 +3399,14 @@
 
   enum class PipelineBindPoint
   {
-    eGraphics             = VK_PIPELINE_BIND_POINT_GRAPHICS,
-    eCompute              = VK_PIPELINE_BIND_POINT_COMPUTE,
+    eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
+    eCompute  = VK_PIPELINE_BIND_POINT_COMPUTE,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eExecutionGraphAMDX = VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
-    eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
-    eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
+    eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,
+    eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
   };
 
   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
@@ -3134,13 +3429,13 @@
     ePerViewPositionXOnlyNVX                      = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
     eFragmentRegionQCOM                           = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
     eShaderResolveQCOM                            = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,
+    eRasterizationOrderAttachmentColorAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,
+    eRasterizationOrderAttachmentDepthAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
+    eRasterizationOrderAttachmentStencilAccessARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
     eRasterizationOrderAttachmentColorAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
     eRasterizationOrderAttachmentDepthAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
     eRasterizationOrderAttachmentStencilAccessEXT = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
-    eEnableLegacyDitheringEXT                     = VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,
-    eRasterizationOrderAttachmentColorAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,
-    eRasterizationOrderAttachmentDepthAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
-    eRasterizationOrderAttachmentStencilAccessARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
+    eEnableLegacyDitheringEXT                     = VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT
   };
 
   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
@@ -3243,8 +3538,8 @@
     eUint16   = VK_INDEX_TYPE_UINT16,
     eUint32   = VK_INDEX_TYPE_UINT32,
     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
-    eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
-    eNoneNV   = VK_INDEX_TYPE_NONE_NV
+    eNoneNV   = VK_INDEX_TYPE_NONE_NV,
+    eUint8EXT = VK_INDEX_TYPE_UINT8_EXT
   };
 
   enum class StencilFaceFlagBits : VkStencilFaceFlags
@@ -3267,8 +3562,9 @@
 
   enum class SubpassContents
   {
-    eInline                  = VK_SUBPASS_CONTENTS_INLINE,
-    eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
+    eInline                              = VK_SUBPASS_CONTENTS_INLINE,
+    eSecondaryCommandBuffers             = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
+    eInlineAndSecondaryCommandBuffersEXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
   };
 
   //=== VK_VERSION_1_1 ===
@@ -3351,15 +3647,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolTrimFlags allFlags  = {};
   };
 
-  enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class PointClippingBehavior
   {
     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
@@ -3374,34 +3661,6 @@
   };
   using TessellationDomainOriginKHR = TessellationDomainOrigin;
 
-  enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
-  {
-    eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
-  };
-
-  using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
-
-  template <>
-  struct FlagTraits<DeviceQueueCreateFlagBits>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags  = DeviceQueueCreateFlagBits::eProtected;
-  };
-
-  enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
-  {
-    eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case DeviceQueueCreateFlagBits::eProtected: return "Protected";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   enum class SamplerYcbcrModelConversion
   {
     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
@@ -3447,15 +3706,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorUpdateTemplateCreateFlags allFlags  = {};
   };
 
-  enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
-  {
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
-  {
-    return "(void)";
-  }
-
   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
   {
     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
@@ -3474,7 +3724,10 @@
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-    eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
+    eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    eScreenBufferQNX = VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
   };
   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
 
@@ -3496,7 +3749,11 @@
 #if defined( VK_USE_PLATFORM_FUCHSIA )
       | ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-      | ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV;
+      | ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      | ExternalMemoryHandleTypeFlagBits::eScreenBufferQNX
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      ;
   };
 
   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
@@ -3595,11 +3852,11 @@
     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
+    eD3D11Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,
     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
 #if defined( VK_USE_PLATFORM_FUCHSIA )
-    eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
+    eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-    eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
   };
   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
 
@@ -3641,30 +3898,32 @@
 
   enum class DriverId
   {
-    eAmdProprietary          = VK_DRIVER_ID_AMD_PROPRIETARY,
-    eAmdOpenSource           = VK_DRIVER_ID_AMD_OPEN_SOURCE,
-    eMesaRadv                = VK_DRIVER_ID_MESA_RADV,
-    eNvidiaProprietary       = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
-    eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
-    eIntelOpenSourceMESA     = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
-    eImaginationProprietary  = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
-    eQualcommProprietary     = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
-    eArmProprietary          = VK_DRIVER_ID_ARM_PROPRIETARY,
-    eGoogleSwiftshader       = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
-    eGgpProprietary          = VK_DRIVER_ID_GGP_PROPRIETARY,
-    eBroadcomProprietary     = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-    eMesaLlvmpipe            = VK_DRIVER_ID_MESA_LLVMPIPE,
-    eMoltenvk                = VK_DRIVER_ID_MOLTENVK,
-    eCoreaviProprietary      = VK_DRIVER_ID_COREAVI_PROPRIETARY,
-    eJuiceProprietary        = VK_DRIVER_ID_JUICE_PROPRIETARY,
-    eVerisiliconProprietary  = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
-    eMesaTurnip              = VK_DRIVER_ID_MESA_TURNIP,
-    eMesaV3Dv                = VK_DRIVER_ID_MESA_V3DV,
-    eMesaPanvk               = VK_DRIVER_ID_MESA_PANVK,
-    eSamsungProprietary      = VK_DRIVER_ID_SAMSUNG_PROPRIETARY,
-    eMesaVenus               = VK_DRIVER_ID_MESA_VENUS,
-    eMesaDozen               = VK_DRIVER_ID_MESA_DOZEN,
-    eMesaNvk                 = VK_DRIVER_ID_MESA_NVK
+    eAmdProprietary            = VK_DRIVER_ID_AMD_PROPRIETARY,
+    eAmdOpenSource             = VK_DRIVER_ID_AMD_OPEN_SOURCE,
+    eMesaRadv                  = VK_DRIVER_ID_MESA_RADV,
+    eNvidiaProprietary         = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
+    eIntelProprietaryWindows   = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
+    eIntelOpenSourceMESA       = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
+    eImaginationProprietary    = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
+    eQualcommProprietary       = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
+    eArmProprietary            = VK_DRIVER_ID_ARM_PROPRIETARY,
+    eGoogleSwiftshader         = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
+    eGgpProprietary            = VK_DRIVER_ID_GGP_PROPRIETARY,
+    eBroadcomProprietary       = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
+    eMesaLlvmpipe              = VK_DRIVER_ID_MESA_LLVMPIPE,
+    eMoltenvk                  = VK_DRIVER_ID_MOLTENVK,
+    eCoreaviProprietary        = VK_DRIVER_ID_COREAVI_PROPRIETARY,
+    eJuiceProprietary          = VK_DRIVER_ID_JUICE_PROPRIETARY,
+    eVerisiliconProprietary    = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
+    eMesaTurnip                = VK_DRIVER_ID_MESA_TURNIP,
+    eMesaV3Dv                  = VK_DRIVER_ID_MESA_V3DV,
+    eMesaPanvk                 = VK_DRIVER_ID_MESA_PANVK,
+    eSamsungProprietary        = VK_DRIVER_ID_SAMSUNG_PROPRIETARY,
+    eMesaVenus                 = VK_DRIVER_ID_MESA_VENUS,
+    eMesaDozen                 = VK_DRIVER_ID_MESA_DOZEN,
+    eMesaNvk                   = VK_DRIVER_ID_MESA_NVK,
+    eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA,
+    eMesaAgxv                  = VK_DRIVER_ID_MESA_AGXV
   };
   using DriverIdKHR = DriverId;
 
@@ -3703,7 +3962,10 @@
     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
     eMin        = VK_RESOLVE_MODE_MIN_BIT,
-    eMax        = VK_RESOLVE_MODE_MAX_BIT
+    eMax        = VK_RESOLVE_MODE_MAX_BIT,
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+    eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
   };
   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
 
@@ -3714,15 +3976,20 @@
   struct FlagTraits<ResolveModeFlagBits>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags =
-      ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags  = ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero |
+                                                                     ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+                                                                   | ResolveModeFlagBits::eExternalFormatDownsampleANDROID
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      ;
   };
 
   enum class SamplerReductionMode
   {
-    eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
-    eMin             = VK_SAMPLER_REDUCTION_MODE_MIN,
-    eMax             = VK_SAMPLER_REDUCTION_MODE_MAX
+    eWeightedAverage               = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
+    eMin                           = VK_SAMPLER_REDUCTION_MODE_MIN,
+    eMax                           = VK_SAMPLER_REDUCTION_MODE_MAX,
+    eWeightedAverageRangeclampQCOM = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
   };
   using SamplerReductionModeEXT = SamplerReductionMode;
 
@@ -3812,55 +4079,55 @@
 
   enum class PipelineStageFlagBits2 : VkPipelineStageFlags2
   {
-    eNone                         = VK_PIPELINE_STAGE_2_NONE,
-    eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
-    eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
-    eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
-    eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
-    eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
-    eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
-    eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
-    eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
-    eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
-    eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
-    eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
-    eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
-    eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
-    eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
-    eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT,
-    eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
-    eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
-    eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT,
-    eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
-    eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT,
-    eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT,
-    eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
-    eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
-    ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeKHR = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
-    eVideoEncodeKHR = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eNone                             = VK_PIPELINE_STAGE_2_NONE,
+    eTopOfPipe                        = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
+    eDrawIndirect                     = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
+    eVertexInput                      = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
+    eVertexShader                     = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
+    eTessellationControlShader        = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
+    eTessellationEvaluationShader     = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
+    eGeometryShader                   = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
+    eFragmentShader                   = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
+    eEarlyFragmentTests               = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
+    eLateFragmentTests                = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
+    eColorAttachmentOutput            = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
+    eComputeShader                    = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
+    eAllTransfer                      = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
+    eTransfer                         = VK_PIPELINE_STAGE_2_TRANSFER_BIT,
+    eBottomOfPipe                     = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
+    eHost                             = VK_PIPELINE_STAGE_2_HOST_BIT,
+    eAllGraphics                      = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
+    eAllCommands                      = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
+    eCopy                             = VK_PIPELINE_STAGE_2_COPY_BIT,
+    eResolve                          = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
+    eBlit                             = VK_PIPELINE_STAGE_2_BLIT_BIT,
+    eClear                            = VK_PIPELINE_STAGE_2_CLEAR_BIT,
+    eIndexInput                       = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
+    eVertexAttributeInput             = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
+    ePreRasterizationShaders          = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
+    eVideoDecodeKHR                   = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
+    eVideoEncodeKHR                   = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
     eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+    eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
+    eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
+    eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
+    eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
+    eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
     eTaskShaderEXT                    = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,
     eMeshShaderEXT                    = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,
+    eSubpassShaderHUAWEI              = VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,
     eSubpassShadingHUAWEI             = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
     eInvocationMaskHUAWEI             = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
     eAccelerationStructureCopyKHR     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,
     eMicromapBuildEXT                 = VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,
-    eOpticalFlowNV                    = VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,
-    eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
-    eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
-    eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
-    eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
-    eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
-    eTransfer                         = VK_PIPELINE_STAGE_2_TRANSFER_BIT
+    eClusterCullingShaderHUAWEI       = VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI,
+    eOpticalFlowNV                    = VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
   };
   using PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
 
@@ -3879,46 +4146,42 @@
       PipelineStageFlagBits2::eAllTransfer | PipelineStageFlagBits2::eBottomOfPipe | PipelineStageFlagBits2::eHost | PipelineStageFlagBits2::eAllGraphics |
       PipelineStageFlagBits2::eAllCommands | PipelineStageFlagBits2::eCopy | PipelineStageFlagBits2::eResolve | PipelineStageFlagBits2::eBlit |
       PipelineStageFlagBits2::eClear | PipelineStageFlagBits2::eIndexInput | PipelineStageFlagBits2::eVertexAttributeInput |
-      PipelineStageFlagBits2::ePreRasterizationShaders
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | PipelineStageFlagBits2::eVideoDecodeKHR | PipelineStageFlagBits2::eVideoEncodeKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | PipelineStageFlagBits2::eTransformFeedbackEXT | PipelineStageFlagBits2::eConditionalRenderingEXT | PipelineStageFlagBits2::eCommandPreprocessNV |
+      PipelineStageFlagBits2::ePreRasterizationShaders | PipelineStageFlagBits2::eVideoDecodeKHR | PipelineStageFlagBits2::eVideoEncodeKHR |
+      PipelineStageFlagBits2::eTransformFeedbackEXT | PipelineStageFlagBits2::eConditionalRenderingEXT | PipelineStageFlagBits2::eCommandPreprocessNV |
       PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR | PipelineStageFlagBits2::eAccelerationStructureBuildKHR |
       PipelineStageFlagBits2::eRayTracingShaderKHR | PipelineStageFlagBits2::eFragmentDensityProcessEXT | PipelineStageFlagBits2::eTaskShaderEXT |
-      PipelineStageFlagBits2::eMeshShaderEXT | PipelineStageFlagBits2::eSubpassShadingHUAWEI | PipelineStageFlagBits2::eInvocationMaskHUAWEI |
-      PipelineStageFlagBits2::eAccelerationStructureCopyKHR | PipelineStageFlagBits2::eMicromapBuildEXT | PipelineStageFlagBits2::eOpticalFlowNV;
+      PipelineStageFlagBits2::eMeshShaderEXT | PipelineStageFlagBits2::eSubpassShaderHUAWEI | PipelineStageFlagBits2::eInvocationMaskHUAWEI |
+      PipelineStageFlagBits2::eAccelerationStructureCopyKHR | PipelineStageFlagBits2::eMicromapBuildEXT | PipelineStageFlagBits2::eClusterCullingShaderHUAWEI |
+      PipelineStageFlagBits2::eOpticalFlowNV;
   };
 
   enum class AccessFlagBits2 : VkAccessFlags2
   {
-    eNone                        = VK_ACCESS_2_NONE,
-    eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
-    eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT,
-    eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
-    eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT,
-    eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
-    eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT,
-    eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT,
-    eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
-    eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
-    eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
-    eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
-    eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT,
-    eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT,
-    eHostRead                    = VK_ACCESS_2_HOST_READ_BIT,
-    eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT,
-    eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT,
-    eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT,
-    eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
-    eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
-    eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeReadKHR  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
-    eVideoDecodeWriteKHR = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
-    eVideoEncodeReadKHR  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
-    eVideoEncodeWriteKHR = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eNone                                 = VK_ACCESS_2_NONE,
+    eIndirectCommandRead                  = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
+    eIndexRead                            = VK_ACCESS_2_INDEX_READ_BIT,
+    eVertexAttributeRead                  = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
+    eUniformRead                          = VK_ACCESS_2_UNIFORM_READ_BIT,
+    eInputAttachmentRead                  = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
+    eShaderRead                           = VK_ACCESS_2_SHADER_READ_BIT,
+    eShaderWrite                          = VK_ACCESS_2_SHADER_WRITE_BIT,
+    eColorAttachmentRead                  = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
+    eColorAttachmentWrite                 = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
+    eDepthStencilAttachmentRead           = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
+    eDepthStencilAttachmentWrite          = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+    eTransferRead                         = VK_ACCESS_2_TRANSFER_READ_BIT,
+    eTransferWrite                        = VK_ACCESS_2_TRANSFER_WRITE_BIT,
+    eHostRead                             = VK_ACCESS_2_HOST_READ_BIT,
+    eHostWrite                            = VK_ACCESS_2_HOST_WRITE_BIT,
+    eMemoryRead                           = VK_ACCESS_2_MEMORY_READ_BIT,
+    eMemoryWrite                          = VK_ACCESS_2_MEMORY_WRITE_BIT,
+    eShaderSampledRead                    = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
+    eShaderStorageRead                    = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
+    eShaderStorageWrite                   = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
+    eVideoDecodeReadKHR                   = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
+    eVideoDecodeWriteKHR                  = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
+    eVideoEncodeReadKHR                   = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
+    eVideoEncodeWriteKHR                  = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
     eTransformFeedbackWriteEXT            = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
     eTransformFeedbackCounterReadEXT      = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
@@ -3926,8 +4189,11 @@
     eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
     eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
+    eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,
     eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
     eAccelerationStructureWriteKHR        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+    eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
+    eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
     eFragmentDensityMapReadEXT            = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
     eDescriptorBufferReadEXT              = VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,
@@ -3936,10 +4202,7 @@
     eMicromapReadEXT                      = VK_ACCESS_2_MICROMAP_READ_BIT_EXT,
     eMicromapWriteEXT                     = VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,
     eOpticalFlowReadNV                    = VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,
-    eOpticalFlowWriteNV                   = VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,
-    eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
-    eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
-    eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
+    eOpticalFlowWriteNV                   = VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
   };
   using AccessFlagBits2KHR = AccessFlagBits2;
 
@@ -3956,12 +4219,9 @@
       AccessFlagBits2::eColorAttachmentRead | AccessFlagBits2::eColorAttachmentWrite | AccessFlagBits2::eDepthStencilAttachmentRead |
       AccessFlagBits2::eDepthStencilAttachmentWrite | AccessFlagBits2::eTransferRead | AccessFlagBits2::eTransferWrite | AccessFlagBits2::eHostRead |
       AccessFlagBits2::eHostWrite | AccessFlagBits2::eMemoryRead | AccessFlagBits2::eMemoryWrite | AccessFlagBits2::eShaderSampledRead |
-      AccessFlagBits2::eShaderStorageRead | AccessFlagBits2::eShaderStorageWrite
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | AccessFlagBits2::eVideoDecodeReadKHR | AccessFlagBits2::eVideoDecodeWriteKHR | AccessFlagBits2::eVideoEncodeReadKHR |
-      AccessFlagBits2::eVideoEncodeWriteKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | AccessFlagBits2::eTransformFeedbackWriteEXT | AccessFlagBits2::eTransformFeedbackCounterReadEXT | AccessFlagBits2::eTransformFeedbackCounterWriteEXT |
+      AccessFlagBits2::eShaderStorageRead | AccessFlagBits2::eShaderStorageWrite | AccessFlagBits2::eVideoDecodeReadKHR |
+      AccessFlagBits2::eVideoDecodeWriteKHR | AccessFlagBits2::eVideoEncodeReadKHR | AccessFlagBits2::eVideoEncodeWriteKHR |
+      AccessFlagBits2::eTransformFeedbackWriteEXT | AccessFlagBits2::eTransformFeedbackCounterReadEXT | AccessFlagBits2::eTransformFeedbackCounterWriteEXT |
       AccessFlagBits2::eConditionalRenderingReadEXT | AccessFlagBits2::eCommandPreprocessReadNV | AccessFlagBits2::eCommandPreprocessWriteNV |
       AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR | AccessFlagBits2::eAccelerationStructureReadKHR |
       AccessFlagBits2::eAccelerationStructureWriteKHR | AccessFlagBits2::eFragmentDensityMapReadEXT | AccessFlagBits2::eColorAttachmentReadNoncoherentEXT |
@@ -3990,6 +4250,7 @@
     eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
     eSuspending                      = VK_RENDERING_SUSPENDING_BIT,
     eResuming                        = VK_RENDERING_RESUMING_BIT,
+    eContentsInlineEXT               = VK_RENDERING_CONTENTS_INLINE_BIT_EXT,
     eEnableLegacyDitheringEXT        = VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
   };
   using RenderingFlagBitsKHR = RenderingFlagBits;
@@ -4002,7 +4263,8 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool           isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR RenderingFlags allFlags  = RenderingFlagBits::eContentsSecondaryCommandBuffers | RenderingFlagBits::eSuspending |
-                                                                   RenderingFlagBits::eResuming | RenderingFlagBits::eEnableLegacyDitheringEXT;
+                                                                   RenderingFlagBits::eResuming | RenderingFlagBits::eContentsInlineEXT |
+                                                                   RenderingFlagBits::eEnableLegacyDitheringEXT;
   };
 
   enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2
@@ -4021,6 +4283,7 @@
     eBlitDst                                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT,
     eSampledImageFilterLinear                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
     eSampledImageFilterCubic                                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,
+    eSampledImageFilterCubicEXT                              = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
     eTransferSrc                                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,
     eTransferDst                                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,
     eSampledImageFilterMinmax                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
@@ -4030,31 +4293,27 @@
     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-    eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
-    eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
-    eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
-    eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
-    eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
-    eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eDisjoint                             = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
+    eCositedChromaSamples                 = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
+    eStorageReadWithoutFormat             = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
+    eStorageWriteWithoutFormat            = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
+    eSampledImageDepthComparison          = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
+    eVideoDecodeOutputKHR                 = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
+    eVideoDecodeDpbKHR                    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeInputKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
-    eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eLinearColorAttachmentNV    = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
-    eWeightImageQCOM            = VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,
-    eWeightSampledImageQCOM     = VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,
-    eBlockMatchingQCOM          = VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,
-    eBoxFilterSampledQCOM       = VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,
-    eOpticalFlowImageNV         = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,
-    eOpticalFlowVectorNV        = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,
-    eOpticalFlowCostNV          = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,
-    eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
+    eHostImageTransferEXT                 = VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT,
+    eVideoEncodeInputKHR                  = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
+    eVideoEncodeDpbKHR                    = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
+    eLinearColorAttachmentNV              = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
+    eWeightImageQCOM                      = VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,
+    eWeightSampledImageQCOM               = VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,
+    eBlockMatchingQCOM                    = VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,
+    eBoxFilterSampledQCOM                 = VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,
+    eOpticalFlowImageNV                   = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,
+    eOpticalFlowVectorNV                  = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,
+    eOpticalFlowCostNV                    = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV
   };
   using FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
 
@@ -4076,402 +4335,14 @@
       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicit |
       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits2::eDisjoint |
       FormatFeatureFlagBits2::eCositedChromaSamples | FormatFeatureFlagBits2::eStorageReadWithoutFormat | FormatFeatureFlagBits2::eStorageWriteWithoutFormat |
-      FormatFeatureFlagBits2::eSampledImageDepthComparison
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | FormatFeatureFlagBits2::eVideoDecodeOutputKHR | FormatFeatureFlagBits2::eVideoDecodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits2::eFragmentDensityMapEXT |
-      FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      | FormatFeatureFlagBits2::eVideoEncodeInputKHR | FormatFeatureFlagBits2::eVideoEncodeDpbKHR
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      | FormatFeatureFlagBits2::eLinearColorAttachmentNV | FormatFeatureFlagBits2::eWeightImageQCOM | FormatFeatureFlagBits2::eWeightSampledImageQCOM |
-      FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM | FormatFeatureFlagBits2::eOpticalFlowImageNV |
-      FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV;
+      FormatFeatureFlagBits2::eSampledImageDepthComparison | FormatFeatureFlagBits2::eVideoDecodeOutputKHR | FormatFeatureFlagBits2::eVideoDecodeDpbKHR |
+      FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits2::eFragmentDensityMapEXT |
+      FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR | FormatFeatureFlagBits2::eHostImageTransferEXT | FormatFeatureFlagBits2::eVideoEncodeInputKHR |
+      FormatFeatureFlagBits2::eVideoEncodeDpbKHR | FormatFeatureFlagBits2::eLinearColorAttachmentNV | FormatFeatureFlagBits2::eWeightImageQCOM |
+      FormatFeatureFlagBits2::eWeightSampledImageQCOM | FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM |
+      FormatFeatureFlagBits2::eOpticalFlowImageNV | FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV;
   };
 
-  //=== VK_VERSION_1_3 ===
-
-  enum class PipelineCreationFeedbackFlagBits : VkPipelineCreationFeedbackFlags
-  {
-    eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
-    eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
-    eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT
-  };
-  using PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineCreationFeedbackFlagBits::eValid: return "Valid";
-      case PipelineCreationFeedbackFlagBits::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit";
-      case PipelineCreationFeedbackFlagBits::eBasePipelineAcceleration: return "BasePipelineAcceleration";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class ToolPurposeFlagBits : VkToolPurposeFlags
-  {
-    eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT,
-    eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT,
-    eTracing            = VK_TOOL_PURPOSE_TRACING_BIT,
-    eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
-    eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
-    eDebugReportingEXT  = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
-    eDebugMarkersEXT    = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
-  };
-  using ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
-
-  VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBits value )
-  {
-    switch ( value )
-    {
-      case ToolPurposeFlagBits::eValidation: return "Validation";
-      case ToolPurposeFlagBits::eProfiling: return "Profiling";
-      case ToolPurposeFlagBits::eTracing: return "Tracing";
-      case ToolPurposeFlagBits::eAdditionalFeatures: return "AdditionalFeatures";
-      case ToolPurposeFlagBits::eModifyingFeatures: return "ModifyingFeatures";
-      case ToolPurposeFlagBits::eDebugReportingEXT: return "DebugReportingEXT";
-      case ToolPurposeFlagBits::eDebugMarkersEXT: return "DebugMarkersEXT";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class PrivateDataSlotCreateFlagBits : VkPrivateDataSlotCreateFlags
-  {
-  };
-  using PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
-
-  VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBits )
-  {
-    return "(void)";
-  }
-
-  enum class PipelineStageFlagBits2 : VkPipelineStageFlags2
-  {
-    eNone                         = VK_PIPELINE_STAGE_2_NONE,
-    eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
-    eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
-    eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
-    eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
-    eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
-    eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
-    eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
-    eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
-    eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
-    eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
-    eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
-    eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
-    eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
-    eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
-    eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT,
-    eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
-    eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
-    eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT,
-    eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
-    eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT,
-    eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT,
-    eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
-    eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
-    ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeKHR = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
-    eVideoEncodeKHR = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
-    eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
-    eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
-    eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-    eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
-    eRayTracingShaderKHR              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
-    eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
-    eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
-    eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
-    eSubpassShadingHUAWEI             = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
-    eInvocationMaskHUAWEI             = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
-    eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
-    eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
-    eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
-    eTransfer                         = VK_PIPELINE_STAGE_2_TRANSFER_BIT
-  };
-  using PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2 value )
-  {
-    switch ( value )
-    {
-      case PipelineStageFlagBits2::eNone: return "None";
-      case PipelineStageFlagBits2::eTopOfPipe: return "TopOfPipe";
-      case PipelineStageFlagBits2::eDrawIndirect: return "DrawIndirect";
-      case PipelineStageFlagBits2::eVertexInput: return "VertexInput";
-      case PipelineStageFlagBits2::eVertexShader: return "VertexShader";
-      case PipelineStageFlagBits2::eTessellationControlShader: return "TessellationControlShader";
-      case PipelineStageFlagBits2::eTessellationEvaluationShader: return "TessellationEvaluationShader";
-      case PipelineStageFlagBits2::eGeometryShader: return "GeometryShader";
-      case PipelineStageFlagBits2::eFragmentShader: return "FragmentShader";
-      case PipelineStageFlagBits2::eEarlyFragmentTests: return "EarlyFragmentTests";
-      case PipelineStageFlagBits2::eLateFragmentTests: return "LateFragmentTests";
-      case PipelineStageFlagBits2::eColorAttachmentOutput: return "ColorAttachmentOutput";
-      case PipelineStageFlagBits2::eComputeShader: return "ComputeShader";
-      case PipelineStageFlagBits2::eAllTransfer: return "AllTransfer";
-      case PipelineStageFlagBits2::eBottomOfPipe: return "BottomOfPipe";
-      case PipelineStageFlagBits2::eHost: return "Host";
-      case PipelineStageFlagBits2::eAllGraphics: return "AllGraphics";
-      case PipelineStageFlagBits2::eAllCommands: return "AllCommands";
-      case PipelineStageFlagBits2::eCopy: return "Copy";
-      case PipelineStageFlagBits2::eResolve: return "Resolve";
-      case PipelineStageFlagBits2::eBlit: return "Blit";
-      case PipelineStageFlagBits2::eClear: return "Clear";
-      case PipelineStageFlagBits2::eIndexInput: return "IndexInput";
-      case PipelineStageFlagBits2::eVertexAttributeInput: return "VertexAttributeInput";
-      case PipelineStageFlagBits2::ePreRasterizationShaders: return "PreRasterizationShaders";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case PipelineStageFlagBits2::eVideoDecodeKHR: return "VideoDecodeKHR";
-      case PipelineStageFlagBits2::eVideoEncodeKHR: return "VideoEncodeKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      case PipelineStageFlagBits2::eTransformFeedbackEXT: return "TransformFeedbackEXT";
-      case PipelineStageFlagBits2::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
-      case PipelineStageFlagBits2::eCommandPreprocessNV: return "CommandPreprocessNV";
-      case PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
-      case PipelineStageFlagBits2::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR";
-      case PipelineStageFlagBits2::eRayTracingShaderKHR: return "RayTracingShaderKHR";
-      case PipelineStageFlagBits2::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
-      case PipelineStageFlagBits2::eTaskShaderNV: return "TaskShaderNV";
-      case PipelineStageFlagBits2::eMeshShaderNV: return "MeshShaderNV";
-      case PipelineStageFlagBits2::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
-      case PipelineStageFlagBits2::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class AccessFlagBits2 : VkAccessFlags2
-  {
-    eNone                        = VK_ACCESS_2_NONE,
-    eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
-    eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT,
-    eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
-    eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT,
-    eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
-    eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT,
-    eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT,
-    eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
-    eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
-    eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
-    eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
-    eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT,
-    eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT,
-    eHostRead                    = VK_ACCESS_2_HOST_READ_BIT,
-    eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT,
-    eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT,
-    eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT,
-    eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
-    eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
-    eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeReadKHR  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
-    eVideoDecodeWriteKHR = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
-    eVideoEncodeReadKHR  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
-    eVideoEncodeWriteKHR = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eTransformFeedbackWriteEXT            = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
-    eTransformFeedbackCounterReadEXT      = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
-    eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
-    eConditionalRenderingReadEXT          = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
-    eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
-    eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
-    eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
-    eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
-    eAccelerationStructureWriteKHR        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
-    eFragmentDensityMapReadEXT            = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
-    eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
-    eInvocationMaskReadHUAWEI             = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
-    eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
-    eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
-    eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
-  };
-  using AccessFlagBits2KHR = AccessFlagBits2;
-
-  VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2 value )
-  {
-    switch ( value )
-    {
-      case AccessFlagBits2::eNone: return "None";
-      case AccessFlagBits2::eIndirectCommandRead: return "IndirectCommandRead";
-      case AccessFlagBits2::eIndexRead: return "IndexRead";
-      case AccessFlagBits2::eVertexAttributeRead: return "VertexAttributeRead";
-      case AccessFlagBits2::eUniformRead: return "UniformRead";
-      case AccessFlagBits2::eInputAttachmentRead: return "InputAttachmentRead";
-      case AccessFlagBits2::eShaderRead: return "ShaderRead";
-      case AccessFlagBits2::eShaderWrite: return "ShaderWrite";
-      case AccessFlagBits2::eColorAttachmentRead: return "ColorAttachmentRead";
-      case AccessFlagBits2::eColorAttachmentWrite: return "ColorAttachmentWrite";
-      case AccessFlagBits2::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
-      case AccessFlagBits2::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
-      case AccessFlagBits2::eTransferRead: return "TransferRead";
-      case AccessFlagBits2::eTransferWrite: return "TransferWrite";
-      case AccessFlagBits2::eHostRead: return "HostRead";
-      case AccessFlagBits2::eHostWrite: return "HostWrite";
-      case AccessFlagBits2::eMemoryRead: return "MemoryRead";
-      case AccessFlagBits2::eMemoryWrite: return "MemoryWrite";
-      case AccessFlagBits2::eShaderSampledRead: return "ShaderSampledRead";
-      case AccessFlagBits2::eShaderStorageRead: return "ShaderStorageRead";
-      case AccessFlagBits2::eShaderStorageWrite: return "ShaderStorageWrite";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case AccessFlagBits2::eVideoDecodeReadKHR: return "VideoDecodeReadKHR";
-      case AccessFlagBits2::eVideoDecodeWriteKHR: return "VideoDecodeWriteKHR";
-      case AccessFlagBits2::eVideoEncodeReadKHR: return "VideoEncodeReadKHR";
-      case AccessFlagBits2::eVideoEncodeWriteKHR: return "VideoEncodeWriteKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      case AccessFlagBits2::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
-      case AccessFlagBits2::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
-      case AccessFlagBits2::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
-      case AccessFlagBits2::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
-      case AccessFlagBits2::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
-      case AccessFlagBits2::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
-      case AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR: return "FragmentShadingRateAttachmentReadKHR";
-      case AccessFlagBits2::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR";
-      case AccessFlagBits2::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR";
-      case AccessFlagBits2::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
-      case AccessFlagBits2::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
-      case AccessFlagBits2::eInvocationMaskReadHUAWEI: return "InvocationMaskReadHUAWEI";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class SubmitFlagBits : VkSubmitFlags
-  {
-    eProtected = VK_SUBMIT_PROTECTED_BIT
-  };
-  using SubmitFlagBitsKHR = SubmitFlagBits;
-
-  VULKAN_HPP_INLINE std::string to_string( SubmitFlagBits value )
-  {
-    switch ( value )
-    {
-      case SubmitFlagBits::eProtected: return "Protected";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class RenderingFlagBits : VkRenderingFlags
-  {
-    eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
-    eSuspending                      = VK_RENDERING_SUSPENDING_BIT,
-    eResuming                        = VK_RENDERING_RESUMING_BIT
-  };
-  using RenderingFlagBitsKHR = RenderingFlagBits;
-
-  VULKAN_HPP_INLINE std::string to_string( RenderingFlagBits value )
-  {
-    switch ( value )
-    {
-      case RenderingFlagBits::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers";
-      case RenderingFlagBits::eSuspending: return "Suspending";
-      case RenderingFlagBits::eResuming: return "Resuming";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2
-  {
-    eSampledImage                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,
-    eStorageImage                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,
-    eStorageImageAtomic                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,
-    eUniformTexelBuffer                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,
-    eStorageTexelBuffer                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,
-    eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
-    eVertexBuffer                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,
-    eColorAttachment                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,
-    eColorAttachmentBlend                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,
-    eDepthStencilAttachment                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,
-    eBlitSrc                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,
-    eBlitDst                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT,
-    eSampledImageFilterLinear                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
-    eSampledImageFilterCubic                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,
-    eTransferSrc                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,
-    eTransferDst                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,
-    eSampledImageFilterMinmax                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
-    eMidpointChromaSamples                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,
-    eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
-    eSampledImageYcbcrConversionSeparateReconstructionFilter =
-      VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
-    eSampledImageYcbcrConversionChromaReconstructionExplicit =
-      VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
-    eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
-      VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-    eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
-    eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
-    eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
-    eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
-    eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
-    eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
-    eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
-    eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-    eVideoEncodeInputKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
-    eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-    eLinearColorAttachmentNV    = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
-    eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
-  };
-  using FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
-
-  VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits2 value )
-  {
-    switch ( value )
-    {
-      case FormatFeatureFlagBits2::eSampledImage: return "SampledImage";
-      case FormatFeatureFlagBits2::eStorageImage: return "StorageImage";
-      case FormatFeatureFlagBits2::eStorageImageAtomic: return "StorageImageAtomic";
-      case FormatFeatureFlagBits2::eUniformTexelBuffer: return "UniformTexelBuffer";
-      case FormatFeatureFlagBits2::eStorageTexelBuffer: return "StorageTexelBuffer";
-      case FormatFeatureFlagBits2::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
-      case FormatFeatureFlagBits2::eVertexBuffer: return "VertexBuffer";
-      case FormatFeatureFlagBits2::eColorAttachment: return "ColorAttachment";
-      case FormatFeatureFlagBits2::eColorAttachmentBlend: return "ColorAttachmentBlend";
-      case FormatFeatureFlagBits2::eDepthStencilAttachment: return "DepthStencilAttachment";
-      case FormatFeatureFlagBits2::eBlitSrc: return "BlitSrc";
-      case FormatFeatureFlagBits2::eBlitDst: return "BlitDst";
-      case FormatFeatureFlagBits2::eSampledImageFilterLinear: return "SampledImageFilterLinear";
-      case FormatFeatureFlagBits2::eSampledImageFilterCubic: return "SampledImageFilterCubic";
-      case FormatFeatureFlagBits2::eTransferSrc: return "TransferSrc";
-      case FormatFeatureFlagBits2::eTransferDst: return "TransferDst";
-      case FormatFeatureFlagBits2::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
-      case FormatFeatureFlagBits2::eMidpointChromaSamples: return "MidpointChromaSamples";
-      case FormatFeatureFlagBits2::eSampledImageYcbcrConversionLinearFilter:
-        return "SampledImageYcbcrConversionLinearFilter";
-      case FormatFeatureFlagBits2::eSampledImageYcbcrConversionSeparateReconstructionFilter:
-        return "SampledImageYcbcrConversionSeparateReconstructionFilter";
-      case FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicit:
-        return "SampledImageYcbcrConversionChromaReconstructionExplicit";
-      case FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
-        return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
-      case FormatFeatureFlagBits2::eDisjoint: return "Disjoint";
-      case FormatFeatureFlagBits2::eCositedChromaSamples: return "CositedChromaSamples";
-      case FormatFeatureFlagBits2::eStorageReadWithoutFormat: return "StorageReadWithoutFormat";
-      case FormatFeatureFlagBits2::eStorageWriteWithoutFormat: return "StorageWriteWithoutFormat";
-      case FormatFeatureFlagBits2::eSampledImageDepthComparison: return "SampledImageDepthComparison";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case FormatFeatureFlagBits2::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
-      case FormatFeatureFlagBits2::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      case FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
-      case FormatFeatureFlagBits2::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
-      case FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case FormatFeatureFlagBits2::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
-      case FormatFeatureFlagBits2::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      case FormatFeatureFlagBits2::eLinearColorAttachmentNV: return "LinearColorAttachmentNV";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_KHR_surface ===
 
   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
@@ -4512,6 +4383,7 @@
   enum class ColorSpaceKHR
   {
     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
+    eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
@@ -4526,9 +4398,8 @@
     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
-    eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
-    eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
-    eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
+    eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT,
+    eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
   };
 
   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
@@ -4745,51 +4616,55 @@
 
   enum class DebugReportObjectTypeEXT
   {
-    eUnknown                  = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
-    eInstance                 = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
-    ePhysicalDevice           = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
-    eDevice                   = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
-    eQueue                    = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
-    eSemaphore                = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
-    eCommandBuffer            = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
-    eFence                    = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
-    eDeviceMemory             = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
-    eBuffer                   = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
-    eImage                    = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
-    eEvent                    = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
-    eQueryPool                = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
-    eBufferView               = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
-    eImageView                = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
-    eShaderModule             = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
-    ePipelineCache            = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
-    ePipelineLayout           = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
-    eRenderPass               = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
-    ePipeline                 = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
-    eDescriptorSetLayout      = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
-    eSampler                  = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
-    eDescriptorPool           = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
-    eDescriptorSet            = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
-    eFramebuffer              = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
-    eCommandPool              = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
-    eSurfaceKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
-    eSwapchainKHR             = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
-    eDebugReportCallbackEXT   = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
-    eDisplayKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
-    eDisplayModeKHR           = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
-    eValidationCacheEXT       = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
-    eSamplerYcbcrConversion   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
-    eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
-    eCuModuleNVX              = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
-    eCuFunctionNVX            = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
-    eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
-    eAccelerationStructureNV  = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-    eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
+    eUnknown                     = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
+    eInstance                    = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
+    ePhysicalDevice              = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
+    eDevice                      = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+    eQueue                       = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
+    eSemaphore                   = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
+    eCommandBuffer               = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
+    eFence                       = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
+    eDeviceMemory                = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
+    eBuffer                      = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
+    eImage                       = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
+    eEvent                       = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
+    eQueryPool                   = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
+    eBufferView                  = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
+    eImageView                   = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
+    eShaderModule                = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
+    ePipelineCache               = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
+    ePipelineLayout              = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
+    eRenderPass                  = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
+    ePipeline                    = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
+    eDescriptorSetLayout         = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
+    eSampler                     = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
+    eDescriptorPool              = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
+    eDescriptorSet               = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
+    eFramebuffer                 = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
+    eCommandPool                 = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
+    eSurfaceKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
+    eSwapchainKHR                = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
+    eDebugReportCallbackEXT      = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
+    eDisplayKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
+    eDisplayModeKHR              = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
+    eValidationCacheEXT          = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
+    eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
+    eSamplerYcbcrConversion      = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
+    eDescriptorUpdateTemplate    = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
+    eCuModuleNVX                 = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
+    eCuFunctionNVX               = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
+    eAccelerationStructureKHR    = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
-    eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
+    eAccelerationStructureNV     = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eCudaModuleNV   = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT,
+    eCudaFunctionNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+    eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
   };
 
   //=== VK_AMD_rasterization_order ===
@@ -4800,16 +4675,15 @@
     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
 
   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
   {
-    eNone          = VK_VIDEO_CODEC_OPERATION_NONE_KHR,
-    eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
-    eEncodeH265EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,
-    eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,
-    eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT
+    eNone       = VK_VIDEO_CODEC_OPERATION_NONE_KHR,
+    eEncodeH264 = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR,
+    eEncodeH265 = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR,
+    eDecodeH264 = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
+    eDecodeH265 = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
   };
 
   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
@@ -4819,8 +4693,8 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodecOperationFlagsKHR allFlags =
-      VideoCodecOperationFlagBitsKHR::eNone | VideoCodecOperationFlagBitsKHR::eEncodeH264EXT | VideoCodecOperationFlagBitsKHR::eEncodeH265EXT |
-      VideoCodecOperationFlagBitsKHR::eDecodeH264EXT | VideoCodecOperationFlagBitsKHR::eDecodeH265EXT;
+      VideoCodecOperationFlagBitsKHR::eNone | VideoCodecOperationFlagBitsKHR::eEncodeH264 | VideoCodecOperationFlagBitsKHR::eEncodeH265 |
+      VideoCodecOperationFlagBitsKHR::eDecodeH264 | VideoCodecOperationFlagBitsKHR::eDecodeH265;
   };
 
   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
@@ -4880,7 +4754,9 @@
 
   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
   {
-    eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
+    eProtectedContent                  = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,
+    eAllowEncodeParameterOptimizations = VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR,
+    eInlineQueries                     = VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR
   };
 
   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
@@ -4889,14 +4765,16 @@
   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionCreateFlagsKHR allFlags  = VideoSessionCreateFlagBitsKHR::eProtectedContent;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionCreateFlagsKHR allFlags  = VideoSessionCreateFlagBitsKHR::eProtectedContent |
+                                                                               VideoSessionCreateFlagBitsKHR::eAllowEncodeParameterOptimizations |
+                                                                               VideoSessionCreateFlagBitsKHR::eInlineQueries;
   };
 
   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
   {
-    eReset                  = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,
-    eEncodeRateControl      = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,
-    eEncodeRateControlLayer = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR
+    eReset              = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,
+    eEncodeRateControl  = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,
+    eEncodeQualityLevel = VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR
   };
 
   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
@@ -4906,14 +4784,15 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodingControlFlagsKHR allFlags =
-      VideoCodingControlFlagBitsKHR::eReset | VideoCodingControlFlagBitsKHR::eEncodeRateControl | VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer;
+      VideoCodingControlFlagBitsKHR::eReset | VideoCodingControlFlagBitsKHR::eEncodeRateControl | VideoCodingControlFlagBitsKHR::eEncodeQualityLevel;
   };
 
   enum class QueryResultStatusKHR
   {
-    eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
-    eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
-    eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR
+    eError                            = VK_QUERY_RESULT_STATUS_ERROR_KHR,
+    eNotReady                         = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
+    eComplete                         = VK_QUERY_RESULT_STATUS_COMPLETE_KHR,
+    eInsufficientBitstreamBufferRange = VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR
   };
 
   enum class VideoSessionParametersCreateFlagBitsKHR : VkVideoSessionParametersCreateFlagsKHR
@@ -4954,9 +4833,7 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEndCodingFlagsKHR allFlags  = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
 
   enum class VideoDecodeCapabilityFlagBitsKHR : VkVideoDecodeCapabilityFlagsKHR
@@ -5005,7 +4882,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeFlagsKHR allFlags  = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_EXT_transform_feedback ===
 
@@ -5022,256 +4898,250 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationStateStreamCreateFlagsEXT allFlags  = {};
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h264 ===
+  //=== VK_KHR_video_encode_h264 ===
 
-  enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
+  enum class VideoEncodeH264CapabilityFlagBitsKHR : VkVideoEncodeH264CapabilityFlagsKHR
   {
-    eDirect8X8InferenceEnabled   = VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,
-    eDirect8X8InferenceDisabled  = VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,
-    eSeparateColourPlane         = VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,
-    eQpprimeYZeroTransformBypass = VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,
-    eScalingLists                = VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,
-    eHrdCompliance               = VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
-    eChromaQpOffset              = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
-    eSecondChromaQpOffset        = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
-    ePicInitQpMinus26            = VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,
-    eWeightedPred                = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,
-    eWeightedBipredExplicit      = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,
-    eWeightedBipredImplicit      = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,
-    eWeightedPredNoTable         = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,
-    eTransform8X8                = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
-    eCabac                       = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
-    eCavlc                       = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
-    eDeblockingFilterDisabled    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
-    eDeblockingFilterEnabled     = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
-    eDeblockingFilterPartial     = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
-    eDisableDirectSpatialMvPred  = VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,
-    eMultipleSlicePerFrame       = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
-    eSliceMbCount                = VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,
-    eRowUnalignedSlice           = VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,
-    eDifferentSliceType          = VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,
-    eBFrameInL1List              = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT
+    eHrdCompliance                  = VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,
+    ePredictionWeightTableGenerated = VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,
+    eRowUnalignedSlice              = VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR,
+    eDifferentSliceType             = VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR,
+    eBFrameInL0List                 = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,
+    eBFrameInL1List                 = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,
+    ePerPictureTypeMinMaxQp         = VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,
+    ePerSliceConstantQp             = VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR,
+    eGeneratePrefixNalu             = VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR
   };
 
-  using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
+  using VideoEncodeH264CapabilityFlagsKHR = Flags<VideoEncodeH264CapabilityFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH264CapabilityFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT allFlags =
-      VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceEnabled | VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceDisabled |
-      VideoEncodeH264CapabilityFlagBitsEXT::eSeparateColourPlane | VideoEncodeH264CapabilityFlagBitsEXT::eQpprimeYZeroTransformBypass |
-      VideoEncodeH264CapabilityFlagBitsEXT::eScalingLists | VideoEncodeH264CapabilityFlagBitsEXT::eHrdCompliance |
-      VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset | VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset |
-      VideoEncodeH264CapabilityFlagBitsEXT::ePicInitQpMinus26 | VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPred |
-      VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredExplicit | VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredImplicit |
-      VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPredNoTable | VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 |
-      VideoEncodeH264CapabilityFlagBitsEXT::eCabac | VideoEncodeH264CapabilityFlagBitsEXT::eCavlc |
-      VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled | VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled |
-      VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial | VideoEncodeH264CapabilityFlagBitsEXT::eDisableDirectSpatialMvPred |
-      VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame | VideoEncodeH264CapabilityFlagBitsEXT::eSliceMbCount |
-      VideoEncodeH264CapabilityFlagBitsEXT::eRowUnalignedSlice | VideoEncodeH264CapabilityFlagBitsEXT::eDifferentSliceType |
-      VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL1List;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264CapabilityFlagsKHR allFlags =
+      VideoEncodeH264CapabilityFlagBitsKHR::eHrdCompliance | VideoEncodeH264CapabilityFlagBitsKHR::ePredictionWeightTableGenerated |
+      VideoEncodeH264CapabilityFlagBitsKHR::eRowUnalignedSlice | VideoEncodeH264CapabilityFlagBitsKHR::eDifferentSliceType |
+      VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL0List | VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL1List |
+      VideoEncodeH264CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp | VideoEncodeH264CapabilityFlagBitsKHR::ePerSliceConstantQp |
+      VideoEncodeH264CapabilityFlagBitsKHR::eGeneratePrefixNalu;
   };
 
-  enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT
+  enum class VideoEncodeH264StdFlagBitsKHR : VkVideoEncodeH264StdFlagsKHR
   {
-    eFrame  = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,
-    eSlice  = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,
-    eNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
+    eSeparateColorPlaneFlagSet          = VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,
+    eQpprimeYZeroTransformBypassFlagSet = VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR,
+    eScalingMatrixPresentFlagSet        = VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR,
+    eChromaQpIndexOffset                = VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR,
+    eSecondChromaQpIndexOffset          = VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR,
+    ePicInitQpMinus26                   = VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR,
+    eWeightedPredFlagSet                = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,
+    eWeightedBipredIdcExplicit          = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR,
+    eWeightedBipredIdcImplicit          = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR,
+    eTransform8X8ModeFlagSet            = VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR,
+    eDirectSpatialMvPredFlagUnset       = VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR,
+    eEntropyCodingModeFlagUnset         = VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR,
+    eEntropyCodingModeFlagSet           = VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR,
+    eDirect8X8InferenceFlagUnset        = VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR,
+    eConstrainedIntraPredFlagSet        = VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,
+    eDeblockingFilterDisabled           = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR,
+    eDeblockingFilterEnabled            = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR,
+    eDeblockingFilterPartial            = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR,
+    eSliceQpDelta                       = VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR,
+    eDifferentSliceQpDelta              = VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR
   };
 
-  using VideoEncodeH264InputModeFlagsEXT = Flags<VideoEncodeH264InputModeFlagBitsEXT>;
+  using VideoEncodeH264StdFlagsKHR = Flags<VideoEncodeH264StdFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH264InputModeFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH264StdFlagBitsKHR>
   {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264InputModeFlagsEXT allFlags =
-      VideoEncodeH264InputModeFlagBitsEXT::eFrame | VideoEncodeH264InputModeFlagBitsEXT::eSlice | VideoEncodeH264InputModeFlagBitsEXT::eNonVcl;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264StdFlagsKHR allFlags =
+      VideoEncodeH264StdFlagBitsKHR::eSeparateColorPlaneFlagSet | VideoEncodeH264StdFlagBitsKHR::eQpprimeYZeroTransformBypassFlagSet |
+      VideoEncodeH264StdFlagBitsKHR::eScalingMatrixPresentFlagSet | VideoEncodeH264StdFlagBitsKHR::eChromaQpIndexOffset |
+      VideoEncodeH264StdFlagBitsKHR::eSecondChromaQpIndexOffset | VideoEncodeH264StdFlagBitsKHR::ePicInitQpMinus26 |
+      VideoEncodeH264StdFlagBitsKHR::eWeightedPredFlagSet | VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcExplicit |
+      VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcImplicit | VideoEncodeH264StdFlagBitsKHR::eTransform8X8ModeFlagSet |
+      VideoEncodeH264StdFlagBitsKHR::eDirectSpatialMvPredFlagUnset | VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagUnset |
+      VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagSet | VideoEncodeH264StdFlagBitsKHR::eDirect8X8InferenceFlagUnset |
+      VideoEncodeH264StdFlagBitsKHR::eConstrainedIntraPredFlagSet | VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterDisabled |
+      VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterEnabled | VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterPartial |
+      VideoEncodeH264StdFlagBitsKHR::eSliceQpDelta | VideoEncodeH264StdFlagBitsKHR::eDifferentSliceQpDelta;
   };
 
-  enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT
+  enum class VideoEncodeH264RateControlFlagBitsKHR : VkVideoEncodeH264RateControlFlagsKHR
   {
-    eFrame  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,
-    eSlice  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,
-    eNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT
+    eAttemptHrdCompliance       = VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,
+    eRegularGop                 = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR,
+    eReferencePatternFlat       = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,
+    eReferencePatternDyadic     = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,
+    eTemporalLayerPatternDyadic = VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR
   };
 
-  using VideoEncodeH264OutputModeFlagsEXT = Flags<VideoEncodeH264OutputModeFlagBitsEXT>;
+  using VideoEncodeH264RateControlFlagsKHR = Flags<VideoEncodeH264RateControlFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH264OutputModeFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH264RateControlFlagBitsKHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264RateControlFlagsKHR allFlags =
+      VideoEncodeH264RateControlFlagBitsKHR::eAttemptHrdCompliance | VideoEncodeH264RateControlFlagBitsKHR::eRegularGop |
+      VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternFlat | VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternDyadic |
+      VideoEncodeH264RateControlFlagBitsKHR::eTemporalLayerPatternDyadic;
+  };
+
+  //=== VK_KHR_video_encode_h265 ===
+
+  enum class VideoEncodeH265CapabilityFlagBitsKHR : VkVideoEncodeH265CapabilityFlagsKHR
+  {
+    eHrdCompliance                  = VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,
+    ePredictionWeightTableGenerated = VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,
+    eRowUnalignedSliceSegment       = VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR,
+    eDifferentSliceSegmentType      = VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR,
+    eBFrameInL0List                 = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,
+    eBFrameInL1List                 = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,
+    ePerPictureTypeMinMaxQp         = VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,
+    ePerSliceSegmentConstantQp      = VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR,
+    eMultipleTilesPerSliceSegment   = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR,
+    eMultipleSliceSegmentsPerTile   = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR
+  };
+
+  using VideoEncodeH265CapabilityFlagsKHR = Flags<VideoEncodeH265CapabilityFlagBitsKHR>;
+
+  template <>
+  struct FlagTraits<VideoEncodeH265CapabilityFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT allFlags =
-      VideoEncodeH264OutputModeFlagBitsEXT::eFrame | VideoEncodeH264OutputModeFlagBitsEXT::eSlice | VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CapabilityFlagsKHR allFlags =
+      VideoEncodeH265CapabilityFlagBitsKHR::eHrdCompliance | VideoEncodeH265CapabilityFlagBitsKHR::ePredictionWeightTableGenerated |
+      VideoEncodeH265CapabilityFlagBitsKHR::eRowUnalignedSliceSegment | VideoEncodeH265CapabilityFlagBitsKHR::eDifferentSliceSegmentType |
+      VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL0List | VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL1List |
+      VideoEncodeH265CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp | VideoEncodeH265CapabilityFlagBitsKHR::ePerSliceSegmentConstantQp |
+      VideoEncodeH265CapabilityFlagBitsKHR::eMultipleTilesPerSliceSegment | VideoEncodeH265CapabilityFlagBitsKHR::eMultipleSliceSegmentsPerTile;
   };
 
-  enum class VideoEncodeH264RateControlStructureEXT
+  enum class VideoEncodeH265StdFlagBitsKHR : VkVideoEncodeH265StdFlagsKHR
   {
-    eUnknown = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
-    eFlat    = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT,
-    eDyadic  = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h265 ===
-
-  enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
-  {
-    eSeparateColourPlane             = VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,
-    eScalingLists                    = VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,
-    eSampleAdaptiveOffsetEnabled     = VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,
-    ePcmEnable                       = VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,
-    eSpsTemporalMvpEnabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,
-    eHrdCompliance                   = VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
-    eInitQpMinus26                   = VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,
-    eLog2ParallelMergeLevelMinus2    = VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,
-    eSignDataHidingEnabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,
-    eTransformSkipEnabled            = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,
-    eTransformSkipDisabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,
-    ePpsSliceChromaQpOffsetsPresent  = VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,
-    eWeightedPred                    = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,
-    eWeightedBipred                  = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,
-    eWeightedPredNoTable             = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,
-    eTransquantBypassEnabled         = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,
-    eEntropyCodingSyncEnabled        = VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,
-    eDeblockingFilterOverrideEnabled = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,
-    eMultipleTilePerFrame            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,
-    eMultipleSlicePerTile            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,
-    eMultipleTilePerSlice            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,
-    eSliceSegmentCtbCount            = VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,
-    eRowUnalignedSliceSegment        = VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,
-    eDependentSliceSegment           = VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,
-    eDifferentSliceType              = VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,
-    eBFrameInL1List                  = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT
+    eSeparateColorPlaneFlagSet              = VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,
+    eSampleAdaptiveOffsetEnabledFlagSet     = VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR,
+    eScalingListDataPresentFlagSet          = VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR,
+    ePcmEnabledFlagSet                      = VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR,
+    eSpsTemporalMvpEnabledFlagSet           = VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR,
+    eInitQpMinus26                          = VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR,
+    eWeightedPredFlagSet                    = VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,
+    eWeightedBipredFlagSet                  = VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR,
+    eLog2ParallelMergeLevelMinus2           = VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR,
+    eSignDataHidingEnabledFlagSet           = VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR,
+    eTransformSkipEnabledFlagSet            = VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR,
+    eTransformSkipEnabledFlagUnset          = VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR,
+    ePpsSliceChromaQpOffsetsPresentFlagSet  = VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR,
+    eTransquantBypassEnabledFlagSet         = VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR,
+    eConstrainedIntraPredFlagSet            = VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,
+    eEntropyCodingSyncEnabledFlagSet        = VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR,
+    eDeblockingFilterOverrideEnabledFlagSet = VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR,
+    eDependentSliceSegmentsEnabledFlagSet   = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR,
+    eDependentSliceSegmentFlagSet           = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR,
+    eSliceQpDelta                           = VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR,
+    eDifferentSliceQpDelta                  = VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR
   };
 
-  using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
+  using VideoEncodeH265StdFlagsKHR = Flags<VideoEncodeH265StdFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH265CapabilityFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH265StdFlagBitsKHR>
   {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT allFlags =
-      VideoEncodeH265CapabilityFlagBitsEXT::eSeparateColourPlane | VideoEncodeH265CapabilityFlagBitsEXT::eScalingLists |
-      VideoEncodeH265CapabilityFlagBitsEXT::eSampleAdaptiveOffsetEnabled | VideoEncodeH265CapabilityFlagBitsEXT::ePcmEnable |
-      VideoEncodeH265CapabilityFlagBitsEXT::eSpsTemporalMvpEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eHrdCompliance |
-      VideoEncodeH265CapabilityFlagBitsEXT::eInitQpMinus26 | VideoEncodeH265CapabilityFlagBitsEXT::eLog2ParallelMergeLevelMinus2 |
-      VideoEncodeH265CapabilityFlagBitsEXT::eSignDataHidingEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipEnabled |
-      VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipDisabled | VideoEncodeH265CapabilityFlagBitsEXT::ePpsSliceChromaQpOffsetsPresent |
-      VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPred | VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBipred |
-      VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPredNoTable | VideoEncodeH265CapabilityFlagBitsEXT::eTransquantBypassEnabled |
-      VideoEncodeH265CapabilityFlagBitsEXT::eEntropyCodingSyncEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterOverrideEnabled |
-      VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerFrame | VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerTile |
-      VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerSlice | VideoEncodeH265CapabilityFlagBitsEXT::eSliceSegmentCtbCount |
-      VideoEncodeH265CapabilityFlagBitsEXT::eRowUnalignedSliceSegment | VideoEncodeH265CapabilityFlagBitsEXT::eDependentSliceSegment |
-      VideoEncodeH265CapabilityFlagBitsEXT::eDifferentSliceType | VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL1List;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265StdFlagsKHR allFlags =
+      VideoEncodeH265StdFlagBitsKHR::eSeparateColorPlaneFlagSet | VideoEncodeH265StdFlagBitsKHR::eSampleAdaptiveOffsetEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eScalingListDataPresentFlagSet | VideoEncodeH265StdFlagBitsKHR::ePcmEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eSpsTemporalMvpEnabledFlagSet | VideoEncodeH265StdFlagBitsKHR::eInitQpMinus26 |
+      VideoEncodeH265StdFlagBitsKHR::eWeightedPredFlagSet | VideoEncodeH265StdFlagBitsKHR::eWeightedBipredFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eLog2ParallelMergeLevelMinus2 | VideoEncodeH265StdFlagBitsKHR::eSignDataHidingEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagSet | VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagUnset |
+      VideoEncodeH265StdFlagBitsKHR::ePpsSliceChromaQpOffsetsPresentFlagSet | VideoEncodeH265StdFlagBitsKHR::eTransquantBypassEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eConstrainedIntraPredFlagSet | VideoEncodeH265StdFlagBitsKHR::eEntropyCodingSyncEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eDeblockingFilterOverrideEnabledFlagSet | VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentsEnabledFlagSet |
+      VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentFlagSet | VideoEncodeH265StdFlagBitsKHR::eSliceQpDelta |
+      VideoEncodeH265StdFlagBitsKHR::eDifferentSliceQpDelta;
   };
 
-  enum class VideoEncodeH265InputModeFlagBitsEXT : VkVideoEncodeH265InputModeFlagsEXT
+  enum class VideoEncodeH265CtbSizeFlagBitsKHR : VkVideoEncodeH265CtbSizeFlagsKHR
   {
-    eFrame        = VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,
-    eSliceSegment = VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,
-    eNonVcl       = VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT
+    e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR,
+    e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR,
+    e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR
   };
 
-  using VideoEncodeH265InputModeFlagsEXT = Flags<VideoEncodeH265InputModeFlagBitsEXT>;
+  using VideoEncodeH265CtbSizeFlagsKHR = Flags<VideoEncodeH265CtbSizeFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH265InputModeFlagBitsEXT>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265InputModeFlagsEXT allFlags =
-      VideoEncodeH265InputModeFlagBitsEXT::eFrame | VideoEncodeH265InputModeFlagBitsEXT::eSliceSegment | VideoEncodeH265InputModeFlagBitsEXT::eNonVcl;
-  };
-
-  enum class VideoEncodeH265OutputModeFlagBitsEXT : VkVideoEncodeH265OutputModeFlagsEXT
-  {
-    eFrame        = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,
-    eSliceSegment = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,
-    eNonVcl       = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT
-  };
-
-  using VideoEncodeH265OutputModeFlagsEXT = Flags<VideoEncodeH265OutputModeFlagBitsEXT>;
-
-  template <>
-  struct FlagTraits<VideoEncodeH265OutputModeFlagBitsEXT>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT allFlags =
-      VideoEncodeH265OutputModeFlagBitsEXT::eFrame | VideoEncodeH265OutputModeFlagBitsEXT::eSliceSegment | VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl;
-  };
-
-  enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT
-  {
-    e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,
-    e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,
-    e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT
-  };
-
-  using VideoEncodeH265CtbSizeFlagsEXT = Flags<VideoEncodeH265CtbSizeFlagBitsEXT>;
-
-  template <>
-  struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT allFlags =
-      VideoEncodeH265CtbSizeFlagBitsEXT::e16 | VideoEncodeH265CtbSizeFlagBitsEXT::e32 | VideoEncodeH265CtbSizeFlagBitsEXT::e64;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CtbSizeFlagsKHR allFlags =
+      VideoEncodeH265CtbSizeFlagBitsKHR::e16 | VideoEncodeH265CtbSizeFlagBitsKHR::e32 | VideoEncodeH265CtbSizeFlagBitsKHR::e64;
   };
 
-  enum class VideoEncodeH265TransformBlockSizeFlagBitsEXT : VkVideoEncodeH265TransformBlockSizeFlagsEXT
+  enum class VideoEncodeH265TransformBlockSizeFlagBitsKHR : VkVideoEncodeH265TransformBlockSizeFlagsKHR
   {
-    e4  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,
-    e8  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,
-    e16 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,
-    e32 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT
+    e4  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR,
+    e8  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR,
+    e16 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR,
+    e32 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR
   };
 
-  using VideoEncodeH265TransformBlockSizeFlagsEXT = Flags<VideoEncodeH265TransformBlockSizeFlagBitsEXT>;
+  using VideoEncodeH265TransformBlockSizeFlagsKHR = Flags<VideoEncodeH265TransformBlockSizeFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoEncodeH265TransformBlockSizeFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH265TransformBlockSizeFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265TransformBlockSizeFlagsEXT allFlags =
-      VideoEncodeH265TransformBlockSizeFlagBitsEXT::e4 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e8 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e16 |
-      VideoEncodeH265TransformBlockSizeFlagBitsEXT::e32;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265TransformBlockSizeFlagsKHR allFlags =
+      VideoEncodeH265TransformBlockSizeFlagBitsKHR::e4 | VideoEncodeH265TransformBlockSizeFlagBitsKHR::e8 | VideoEncodeH265TransformBlockSizeFlagBitsKHR::e16 |
+      VideoEncodeH265TransformBlockSizeFlagBitsKHR::e32;
   };
 
-  enum class VideoEncodeH265RateControlStructureEXT
+  enum class VideoEncodeH265RateControlFlagBitsKHR : VkVideoEncodeH265RateControlFlagsKHR
   {
-    eUnknown = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
-    eFlat    = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT,
-    eDyadic  = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h264 ===
-
-  enum class VideoDecodeH264PictureLayoutFlagBitsEXT : VkVideoDecodeH264PictureLayoutFlagsEXT
-  {
-    eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,
-    eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,
-    eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
+    eAttemptHrdCompliance          = VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,
+    eRegularGop                    = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR,
+    eReferencePatternFlat          = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,
+    eReferencePatternDyadic        = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,
+    eTemporalSubLayerPatternDyadic = VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR
   };
 
-  using VideoDecodeH264PictureLayoutFlagsEXT = Flags<VideoDecodeH264PictureLayoutFlagBitsEXT>;
+  using VideoEncodeH265RateControlFlagsKHR = Flags<VideoEncodeH265RateControlFlagBitsKHR>;
 
   template <>
-  struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsEXT>
+  struct FlagTraits<VideoEncodeH265RateControlFlagBitsKHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265RateControlFlagsKHR allFlags =
+      VideoEncodeH265RateControlFlagBitsKHR::eAttemptHrdCompliance | VideoEncodeH265RateControlFlagBitsKHR::eRegularGop |
+      VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternFlat | VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternDyadic |
+      VideoEncodeH265RateControlFlagBitsKHR::eTemporalSubLayerPatternDyadic;
+  };
+
+  //=== VK_KHR_video_decode_h264 ===
+
+  enum class VideoDecodeH264PictureLayoutFlagBitsKHR : VkVideoDecodeH264PictureLayoutFlagsKHR
+  {
+    eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,
+    eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR,
+    eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
+  };
+
+  using VideoDecodeH264PictureLayoutFlagsKHR = Flags<VideoDecodeH264PictureLayoutFlagBitsKHR>;
+
+  template <>
+  struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT allFlags  = VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive |
-                                                                                         VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines |
-                                                                                         VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeH264PictureLayoutFlagsKHR allFlags  = VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive |
+                                                                                         VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedInterleavedLines |
+                                                                                         VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedSeparatePlanes;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_AMD_shader_info ===
 
@@ -5540,8 +5410,8 @@
     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
-    eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR,
-    eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR
+    eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR,
+    eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR
   };
 
   enum class PerformanceCounterStorageKHR
@@ -5746,11 +5616,11 @@
     eTriangleFlipFacing               = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
     eForceOpaque                      = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
     eForceNoOpaque                    = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
-    eForceOpacityMicromap2StateEXT    = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,
-    eDisableOpacityMicromapsEXT       = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,
-    eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
     eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
-    eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
+    eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
+    eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
+    eForceOpacityMicromap2StateEXT    = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,
+    eDisableOpacityMicromapsEXT       = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT
   };
   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
 
@@ -5777,7 +5647,11 @@
     eMotionNV                          = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,
     eAllowOpacityMicromapUpdateEXT     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,
     eAllowDisableOpacityMicromapsEXT   = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,
-    eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT
+    eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eAllowDisplacementMicromapUpdateNV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eAllowDataAccess = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
   };
   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
 
@@ -5793,7 +5667,11 @@
       BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace | BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild |
       BuildAccelerationStructureFlagBitsKHR::eLowMemory | BuildAccelerationStructureFlagBitsKHR::eMotionNV |
       BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapUpdateEXT | BuildAccelerationStructureFlagBitsKHR::eAllowDisableOpacityMicromapsEXT |
-      BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT;
+      BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      | BuildAccelerationStructureFlagBitsKHR::eAllowDisplacementMicromapUpdateNV
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      | BuildAccelerationStructureFlagBitsKHR::eAllowDataAccess;
   };
 
   enum class CopyAccelerationStructureModeKHR
@@ -5843,6 +5721,24 @@
     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
   };
 
+  //=== VK_KHR_ray_tracing_pipeline ===
+
+  enum class RayTracingShaderGroupTypeKHR
+  {
+    eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
+    eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
+    eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
+  };
+  using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
+
+  enum class ShaderGroupShaderKHR
+  {
+    eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
+    eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
+    eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
+    eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
+  };
+
   //=== VK_NV_framebuffer_mixed_samples ===
 
   enum class CoverageModulationModeNV
@@ -5936,16 +5832,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCompilerControlFlagsAMD allFlags  = {};
   };
 
-  //=== VK_EXT_calibrated_timestamps ===
-
-  enum class TimeDomainEXT
-  {
-    eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
-    eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
-    eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
-    eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
-  };
-
   //=== VK_KHR_global_priority ===
 
   enum class QueueGlobalPriorityKHR
@@ -5957,29 +5843,6 @@
   };
   using QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
 
-  //=== VK_KHR_global_priority ===
-
-  enum class QueueGlobalPriorityKHR
-  {
-    eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
-    eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
-    eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
-    eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
-  };
-  using QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
-
-  VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityKHR value )
-  {
-    switch ( value )
-    {
-      case QueueGlobalPriorityKHR::eLow: return "Low";
-      case QueueGlobalPriorityKHR::eMedium: return "Medium";
-      case QueueGlobalPriorityKHR::eHigh: return "High";
-      case QueueGlobalPriorityKHR::eRealtime: return "Realtime";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_AMD_memory_overallocation_behavior ===
 
   enum class MemoryOverallocationBehaviorAMD
@@ -6105,31 +5968,6 @@
     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
   };
 
-  //=== VK_NV_cooperative_matrix ===
-
-  enum class ScopeNV
-  {
-    eDevice      = VK_SCOPE_DEVICE_NV,
-    eWorkgroup   = VK_SCOPE_WORKGROUP_NV,
-    eSubgroup    = VK_SCOPE_SUBGROUP_NV,
-    eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
-  };
-
-  enum class ComponentTypeNV
-  {
-    eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
-    eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
-    eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
-    eSint8   = VK_COMPONENT_TYPE_SINT8_NV,
-    eSint16  = VK_COMPONENT_TYPE_SINT16_NV,
-    eSint32  = VK_COMPONENT_TYPE_SINT32_NV,
-    eSint64  = VK_COMPONENT_TYPE_SINT64_NV,
-    eUint8   = VK_COMPONENT_TYPE_UINT8_NV,
-    eUint16  = VK_COMPONENT_TYPE_UINT16_NV,
-    eUint32  = VK_COMPONENT_TYPE_UINT32_NV,
-    eUint64  = VK_COMPONENT_TYPE_UINT64_NV
-  };
-
   //=== VK_NV_coverage_reduction_mode ===
 
   enum class CoverageReductionModeNV
@@ -6206,6 +6044,37 @@
     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
   };
 
+  //=== VK_EXT_host_image_copy ===
+
+  enum class HostImageCopyFlagBitsEXT : VkHostImageCopyFlagsEXT
+  {
+    eMemcpy = VK_HOST_IMAGE_COPY_MEMCPY_EXT
+  };
+
+  using HostImageCopyFlagsEXT = Flags<HostImageCopyFlagBitsEXT>;
+
+  template <>
+  struct FlagTraits<HostImageCopyFlagBitsEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR HostImageCopyFlagsEXT allFlags  = HostImageCopyFlagBitsEXT::eMemcpy;
+  };
+
+  //=== VK_KHR_map_memory2 ===
+
+  enum class MemoryUnmapFlagBitsKHR : VkMemoryUnmapFlagsKHR
+  {
+  };
+
+  using MemoryUnmapFlagsKHR = Flags<MemoryUnmapFlagBitsKHR>;
+
+  template <>
+  struct FlagTraits<MemoryUnmapFlagBitsKHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryUnmapFlagsKHR allFlags  = {};
+  };
+
   //=== VK_EXT_surface_maintenance1 ===
 
   enum class PresentScalingFlagBitsEXT : VkPresentScalingFlagsEXT
@@ -6268,7 +6137,9 @@
     eDrawIndexed   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
     eDraw          = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
     eDrawTasks     = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,
-    eDrawMeshTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV
+    eDrawMeshTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV,
+    ePipeline      = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV,
+    eDispatch      = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV
   };
 
   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
@@ -6289,6 +6160,15 @@
                                                                                        IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences;
   };
 
+  //=== VK_EXT_depth_bias_control ===
+
+  enum class DepthBiasRepresentationEXT
+  {
+    eLeastRepresentableValueFormat     = VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT,
+    eLeastRepresentableValueForceUnorm = VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT,
+    eFloat                             = VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
+  };
+
   //=== VK_EXT_device_memory_report ===
 
   enum class DeviceMemoryReportEventTypeEXT
@@ -6313,29 +6193,12 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceMemoryReportFlagsEXT allFlags  = {};
   };
 
-  //=== VK_EXT_pipeline_creation_cache_control ===
-
-  enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
-  {
-    eExternallySynchronized    = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
-    eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
-  };
-
-  using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
-
-  template <>
-  struct FlagTraits<PipelineCacheCreateFlagBits>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags  = PipelineCacheCreateFlagBits::eExternallySynchronized;
-  };
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
 
   enum class VideoEncodeCapabilityFlagBitsKHR : VkVideoEncodeCapabilityFlagsKHR
   {
-    ePrecedingExternallyEncodedBytes = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR
+    ePrecedingExternallyEncodedBytes           = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,
+    eInsufficientstreamBufferRangeDetectionBit = VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR
   };
 
   using VideoEncodeCapabilityFlagsKHR = Flags<VideoEncodeCapabilityFlagBitsKHR>;
@@ -6344,7 +6207,26 @@
   struct FlagTraits<VideoEncodeCapabilityFlagBitsKHR>
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags  = VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags =
+      VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes | VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit;
+  };
+
+  enum class VideoEncodeFeedbackFlagBitsKHR : VkVideoEncodeFeedbackFlagsKHR
+  {
+    estreamBufferOffsetBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR,
+    estreamBytesWrittenBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR,
+    estreamHasOverridesBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR
+  };
+
+  using VideoEncodeFeedbackFlagsKHR = Flags<VideoEncodeFeedbackFlagBitsKHR>;
+
+  template <>
+  struct FlagTraits<VideoEncodeFeedbackFlagBitsKHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeFeedbackFlagsKHR allFlags  = VideoEncodeFeedbackFlagBitsKHR::estreamBufferOffsetBit |
+                                                                                VideoEncodeFeedbackFlagBitsKHR::estreamBytesWrittenBit |
+                                                                                VideoEncodeFeedbackFlagBitsKHR::estreamHasOverridesBit;
   };
 
   enum class VideoEncodeUsageFlagBitsKHR : VkVideoEncodeUsageFlagsKHR
@@ -6397,9 +6279,10 @@
 
   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
   {
-    eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,
-    eCbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
-    eVbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
+    eDefault  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR,
+    eDisabled = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR,
+    eCbr      = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
+    eVbr      = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
   };
 
   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
@@ -6409,7 +6292,8 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlModeFlagsKHR allFlags =
-      VideoEncodeRateControlModeFlagBitsKHR::eNone | VideoEncodeRateControlModeFlagBitsKHR::eCbr | VideoEncodeRateControlModeFlagBitsKHR::eVbr;
+      VideoEncodeRateControlModeFlagBitsKHR::eDefault | VideoEncodeRateControlModeFlagBitsKHR::eDisabled | VideoEncodeRateControlModeFlagBitsKHR::eCbr |
+      VideoEncodeRateControlModeFlagBitsKHR::eVbr;
   };
 
   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
@@ -6437,7 +6321,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlFlagsKHR allFlags  = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NV_device_diagnostics_config ===
 
@@ -6506,20 +6389,6 @@
       GraphicsPipelineLibraryFlagBitsEXT::eFragmentShader | GraphicsPipelineLibraryFlagBitsEXT::eFragmentOutputInterface;
   };
 
-  enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
-  {
-    eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
-  };
-
-  using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
-
-  template <>
-  struct FlagTraits<PipelineLayoutCreateFlagBits>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags  = PipelineLayoutCreateFlagBits::eIndependentSetsEXT;
-  };
-
   //=== VK_NV_fragment_shading_rate_enums ===
 
   enum class FragmentShadingRateNV
@@ -6665,44 +6534,6 @@
     eOne = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
   };
 
-  //=== VK_ARM_rasterization_order_attachment_access ===
-
-  enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
-  {
-    eRasterizationOrderAttachmentAccessARM =
-      VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessARM:
-        return "RasterizationOrderAttachmentAccessARM";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
-  {
-    eRasterizationOrderAttachmentDepthAccessARM =
-      VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
-    eRasterizationOrderAttachmentStencilAccessARM =
-      VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
-  };
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessARM:
-        return "RasterizationOrderAttachmentDepthAccessARM";
-      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessARM:
-        return "RasterizationOrderAttachmentStencilAccessARM";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
   //=== VK_EXT_directfb_surface ===
 
@@ -6720,24 +6551,6 @@
   };
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-  //=== VK_KHR_ray_tracing_pipeline ===
-
-  enum class RayTracingShaderGroupTypeKHR
-  {
-    eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
-    eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
-    eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
-  };
-  using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
-
-  enum class ShaderGroupShaderKHR
-  {
-    eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
-    eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
-    eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
-    eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
-  };
-
   //=== VK_EXT_device_address_binding_report ===
 
   enum class DeviceAddressBindingFlagBitsEXT : VkDeviceAddressBindingFlagsEXT
@@ -6798,41 +6611,22 @@
   };
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
 
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  //=== VK_FUCHSIA_buffer_collection ===
+  //=== VK_EXT_frame_boundary ===
 
-  enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
+  enum class FrameBoundaryFlagBitsEXT : VkFrameBoundaryFlagsEXT
   {
-    eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
-    eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
-    eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
-    eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
-    eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
+    eFrameEnd = VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT
   };
 
-  VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagBitsFUCHSIA value )
-  {
-    switch ( value )
-    {
-      case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely: return "CpuReadRarely";
-      case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften: return "CpuReadOften";
-      case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely: return "CpuWriteRarely";
-      case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften: return "CpuWriteOften";
-      case ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional: return "ProtectedOptional";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
+  using FrameBoundaryFlagsEXT = Flags<FrameBoundaryFlagBitsEXT>;
 
-  enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
+  template <>
+  struct FlagTraits<FrameBoundaryFlagBitsEXT>
   {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR FrameBoundaryFlagsEXT allFlags  = FrameBoundaryFlagBitsEXT::eFrameEnd;
   };
 
-  VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagBitsFUCHSIA )
-  {
-    return "(void)";
-  }
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
   //=== VK_QNX_screen_surface ===
 
@@ -6854,7 +6648,10 @@
 
   enum class MicromapTypeEXT
   {
-    eOpacityMicromap = VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT
+    eOpacityMicromap = VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eDisplacementMicromapNV = VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
   };
 
   enum class BuildMicromapFlagBitsEXT : VkBuildMicromapFlagsEXT
@@ -6915,6 +6712,33 @@
     eFullyUnknownOpaque      = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+
+  enum class DisplacementMicromapFormatNV
+  {
+    e64Triangles64Bytes    = VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV,
+    e256Triangles128Bytes  = VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV,
+    e1024Triangles128Bytes = VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_ARM_scheduling_controls ===
+
+  enum class PhysicalDeviceSchedulingControlsFlagBitsARM : VkPhysicalDeviceSchedulingControlsFlagsARM
+  {
+    eShaderCoreCount = VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM
+  };
+
+  using PhysicalDeviceSchedulingControlsFlagsARM = Flags<PhysicalDeviceSchedulingControlsFlagBitsARM>;
+
+  template <>
+  struct FlagTraits<PhysicalDeviceSchedulingControlsFlagBitsARM>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                     isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PhysicalDeviceSchedulingControlsFlagsARM allFlags  = PhysicalDeviceSchedulingControlsFlagBitsARM::eShaderCoreCount;
+  };
+
   //=== VK_NV_memory_decompression ===
 
   enum class MemoryDecompressionMethodFlagBitsNV : VkMemoryDecompressionMethodFlagsNV
@@ -6972,43 +6796,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR DirectDriverLoadingFlagsLUNARG allFlags  = {};
   };
 
-  //=== VK_EXT_rasterization_order_attachment_access ===
-
-  enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
-  {
-    eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
-    eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM
-  };
-
-  using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
-
-  template <>
-  struct FlagTraits<PipelineColorBlendStateCreateFlagBits>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags =
-      PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT;
-  };
-
-  enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
-  {
-    eRasterizationOrderAttachmentDepthAccessEXT   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
-    eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
-    eRasterizationOrderAttachmentDepthAccessARM   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
-    eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
-  };
-
-  using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
-
-  template <>
-  struct FlagTraits<PipelineDepthStencilStateCreateFlagBits>
-  {
-    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags =
-      PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
-      PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT;
-  };
-
   //=== VK_NV_optical_flow ===
 
   enum class OpticalFlowUsageFlagBitsNV : VkOpticalFlowUsageFlagsNV
@@ -7108,6 +6895,157 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowExecuteFlagsNV allFlags  = OpticalFlowExecuteFlagBitsNV::eDisableTemporalHints;
   };
 
+  //=== VK_KHR_maintenance5 ===
+
+  enum class PipelineCreateFlagBits2KHR : VkPipelineCreateFlags2KHR
+  {
+    eDisableOptimization                      = VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR,
+    eAllowDerivatives                         = VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR,
+    eDerivative                               = VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR,
+    eViewIndexFromDeviceIndex                 = VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
+    eDispatchBase                             = VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR,
+    eDeferCompileNV                           = VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV,
+    eCaptureStatistics                        = VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR,
+    eCaptureInternalRepresentations           = VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
+    eFailOnPipelineCompileRequired            = VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR,
+    eEarlyReturnOnFailure                     = VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR,
+    eLinkTimeOptimizationEXT                  = VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT,
+    eRetainLinkTimeOptimizationInfoEXT        = VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
+    eLibrary                                  = VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR,
+    eRayTracingSkipTriangles                  = VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
+    eRayTracingSkipAabbs                      = VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR,
+    eRayTracingNoNullAnyHitShaders            = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
+    eRayTracingNoNullClosestHitShaders        = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
+    eRayTracingNoNullMissShaders              = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
+    eRayTracingNoNullIntersectionShaders      = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
+    eRayTracingShaderGroupHandleCaptureReplay = VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
+    eIndirectBindableNV                       = VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV,
+    eRayTracingAllowMotionNV                  = VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV,
+    eRenderingFragmentShadingRateAttachment   = VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+    eRenderingFragmentDensityMapAttachmentEXT = VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
+    eRayTracingOpacityMicromapEXT             = VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
+    eColorAttachmentFeedbackLoopEXT           = VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
+    eDepthStencilAttachmentFeedbackLoopEXT    = VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
+    eNoProtectedAccessEXT                     = VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT,
+    eProtectedAccessOnlyEXT                   = VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT,
+    eRayTracingDisplacementMicromapNV         = VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,
+    eDescriptorBufferEXT                      = VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
+  };
+
+  using PipelineCreateFlags2KHR = Flags<PipelineCreateFlagBits2KHR>;
+
+  template <>
+  struct FlagTraits<PipelineCreateFlagBits2KHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreateFlags2KHR allFlags =
+      PipelineCreateFlagBits2KHR::eDisableOptimization | PipelineCreateFlagBits2KHR::eAllowDerivatives | PipelineCreateFlagBits2KHR::eDerivative |
+      PipelineCreateFlagBits2KHR::eViewIndexFromDeviceIndex | PipelineCreateFlagBits2KHR::eDispatchBase | PipelineCreateFlagBits2KHR::eDeferCompileNV |
+      PipelineCreateFlagBits2KHR::eCaptureStatistics | PipelineCreateFlagBits2KHR::eCaptureInternalRepresentations |
+      PipelineCreateFlagBits2KHR::eFailOnPipelineCompileRequired | PipelineCreateFlagBits2KHR::eEarlyReturnOnFailure |
+      PipelineCreateFlagBits2KHR::eLinkTimeOptimizationEXT | PipelineCreateFlagBits2KHR::eRetainLinkTimeOptimizationInfoEXT |
+      PipelineCreateFlagBits2KHR::eLibrary | PipelineCreateFlagBits2KHR::eRayTracingSkipTriangles | PipelineCreateFlagBits2KHR::eRayTracingSkipAabbs |
+      PipelineCreateFlagBits2KHR::eRayTracingNoNullAnyHitShaders | PipelineCreateFlagBits2KHR::eRayTracingNoNullClosestHitShaders |
+      PipelineCreateFlagBits2KHR::eRayTracingNoNullMissShaders | PipelineCreateFlagBits2KHR::eRayTracingNoNullIntersectionShaders |
+      PipelineCreateFlagBits2KHR::eRayTracingShaderGroupHandleCaptureReplay | PipelineCreateFlagBits2KHR::eIndirectBindableNV |
+      PipelineCreateFlagBits2KHR::eRayTracingAllowMotionNV | PipelineCreateFlagBits2KHR::eRenderingFragmentShadingRateAttachment |
+      PipelineCreateFlagBits2KHR::eRenderingFragmentDensityMapAttachmentEXT | PipelineCreateFlagBits2KHR::eRayTracingOpacityMicromapEXT |
+      PipelineCreateFlagBits2KHR::eColorAttachmentFeedbackLoopEXT | PipelineCreateFlagBits2KHR::eDepthStencilAttachmentFeedbackLoopEXT |
+      PipelineCreateFlagBits2KHR::eNoProtectedAccessEXT | PipelineCreateFlagBits2KHR::eProtectedAccessOnlyEXT |
+      PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV | PipelineCreateFlagBits2KHR::eDescriptorBufferEXT;
+  };
+
+  enum class BufferUsageFlagBits2KHR : VkBufferUsageFlags2KHR
+  {
+    eTransferSrc        = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR,
+    eTransferDst        = VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR,
+    eUniformTexelBuffer = VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR,
+    eStorageTexelBuffer = VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,
+    eUniformBuffer      = VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR,
+    eStorageBuffer      = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR,
+    eIndexBuffer        = VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR,
+    eVertexBuffer       = VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR,
+    eIndirectBuffer     = VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eExecutionGraphScratchAMDX = VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eConditionalRenderingEXT           = VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
+    eShaderBindingTable                = VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR,
+    eRayTracingNV                      = VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV,
+    eTransformFeedbackBufferEXT        = VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
+    eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
+    eVideoDecodeSrc                    = VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR,
+    eVideoDecodeDst                    = VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR,
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    eVideoEncodeDst = VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR,
+    eVideoEncodeSrc = VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR,
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    eShaderDeviceAddress                     = VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR,
+    eAccelerationStructureBuildInputReadOnly = VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
+    eAccelerationStructureStorage            = VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
+    eSamplerDescriptorBufferEXT              = VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
+    eResourceDescriptorBufferEXT             = VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
+    ePushDescriptorsDescriptorBufferEXT      = VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
+    eMicromapBuildInputReadOnlyEXT           = VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
+    eMicromapStorageEXT                      = VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
+  };
+
+  using BufferUsageFlags2KHR = Flags<BufferUsageFlagBits2KHR>;
+
+  template <>
+  struct FlagTraits<BufferUsageFlagBits2KHR>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR BufferUsageFlags2KHR allFlags =
+      BufferUsageFlagBits2KHR::eTransferSrc | BufferUsageFlagBits2KHR::eTransferDst | BufferUsageFlagBits2KHR::eUniformTexelBuffer |
+      BufferUsageFlagBits2KHR::eStorageTexelBuffer | BufferUsageFlagBits2KHR::eUniformBuffer | BufferUsageFlagBits2KHR::eStorageBuffer |
+      BufferUsageFlagBits2KHR::eIndexBuffer | BufferUsageFlagBits2KHR::eVertexBuffer | BufferUsageFlagBits2KHR::eIndirectBuffer
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      | BufferUsageFlagBits2KHR::eExecutionGraphScratchAMDX
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      | BufferUsageFlagBits2KHR::eConditionalRenderingEXT | BufferUsageFlagBits2KHR::eShaderBindingTable |
+      BufferUsageFlagBits2KHR::eTransformFeedbackBufferEXT | BufferUsageFlagBits2KHR::eTransformFeedbackCounterBufferEXT |
+      BufferUsageFlagBits2KHR::eVideoDecodeSrc | BufferUsageFlagBits2KHR::eVideoDecodeDst
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      | BufferUsageFlagBits2KHR::eVideoEncodeDst | BufferUsageFlagBits2KHR::eVideoEncodeSrc
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      | BufferUsageFlagBits2KHR::eShaderDeviceAddress | BufferUsageFlagBits2KHR::eAccelerationStructureBuildInputReadOnly |
+      BufferUsageFlagBits2KHR::eAccelerationStructureStorage | BufferUsageFlagBits2KHR::eSamplerDescriptorBufferEXT |
+      BufferUsageFlagBits2KHR::eResourceDescriptorBufferEXT | BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT |
+      BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits2KHR::eMicromapStorageEXT;
+  };
+
+  //=== VK_EXT_shader_object ===
+
+  enum class ShaderCreateFlagBitsEXT : VkShaderCreateFlagsEXT
+  {
+    eLinkStage                     = VK_SHADER_CREATE_LINK_STAGE_BIT_EXT,
+    eAllowVaryingSubgroupSize      = VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
+    eRequireFullSubgroups          = VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,
+    eNoTaskShader                  = VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,
+    eDispatchBase                  = VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,
+    eFragmentShadingRateAttachment = VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,
+    eFragmentDensityMapAttachment  = VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+  };
+
+  using ShaderCreateFlagsEXT = Flags<ShaderCreateFlagBitsEXT>;
+
+  template <>
+  struct FlagTraits<ShaderCreateFlagBitsEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderCreateFlagsEXT allFlags =
+      ShaderCreateFlagBitsEXT::eLinkStage | ShaderCreateFlagBitsEXT::eAllowVaryingSubgroupSize | ShaderCreateFlagBitsEXT::eRequireFullSubgroups |
+      ShaderCreateFlagBitsEXT::eNoTaskShader | ShaderCreateFlagBitsEXT::eDispatchBase | ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment |
+      ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment;
+  };
+
+  enum class ShaderCodeTypeEXT
+  {
+    eBinary = VK_SHADER_CODE_TYPE_BINARY_EXT,
+    eSpirv  = VK_SHADER_CODE_TYPE_SPIRV_EXT
+  };
+
   //=== VK_NV_ray_tracing_invocation_reorder ===
 
   enum class RayTracingInvocationReorderModeNV
@@ -7116,3306 +7054,112 @@
     eReorder = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV
   };
 
+  //=== VK_EXT_layer_settings ===
+
+  enum class LayerSettingTypeEXT
+  {
+    eBool32  = VK_LAYER_SETTING_TYPE_BOOL32_EXT,
+    eInt32   = VK_LAYER_SETTING_TYPE_INT32_EXT,
+    eInt64   = VK_LAYER_SETTING_TYPE_INT64_EXT,
+    eUint32  = VK_LAYER_SETTING_TYPE_UINT32_EXT,
+    eUint64  = VK_LAYER_SETTING_TYPE_UINT64_EXT,
+    eFloat32 = VK_LAYER_SETTING_TYPE_FLOAT32_EXT,
+    eFloat64 = VK_LAYER_SETTING_TYPE_FLOAT64_EXT,
+    eString  = VK_LAYER_SETTING_TYPE_STRING_EXT
+  };
+
+  //=== VK_NV_low_latency2 ===
+
+  enum class LatencyMarkerNV
+  {
+    eSimulationStart            = VK_LATENCY_MARKER_SIMULATION_START_NV,
+    eSimulationEnd              = VK_LATENCY_MARKER_SIMULATION_END_NV,
+    eRendersubmitStart          = VK_LATENCY_MARKER_RENDERSUBMIT_START_NV,
+    eRendersubmitEnd            = VK_LATENCY_MARKER_RENDERSUBMIT_END_NV,
+    ePresentStart               = VK_LATENCY_MARKER_PRESENT_START_NV,
+    ePresentEnd                 = VK_LATENCY_MARKER_PRESENT_END_NV,
+    eInputSample                = VK_LATENCY_MARKER_INPUT_SAMPLE_NV,
+    eTriggerFlash               = VK_LATENCY_MARKER_TRIGGER_FLASH_NV,
+    eOutOfBandRendersubmitStart = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV,
+    eOutOfBandRendersubmitEnd   = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV,
+    eOutOfBandPresentStart      = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV,
+    eOutOfBandPresentEnd        = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV
+  };
+
+  enum class OutOfBandQueueTypeNV
+  {
+    eRender  = VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV,
+    ePresent = VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV
+  };
+
+  //=== VK_KHR_cooperative_matrix ===
+
+  enum class ScopeKHR
+  {
+    eDevice      = VK_SCOPE_DEVICE_KHR,
+    eWorkgroup   = VK_SCOPE_WORKGROUP_KHR,
+    eSubgroup    = VK_SCOPE_SUBGROUP_KHR,
+    eQueueFamily = VK_SCOPE_QUEUE_FAMILY_KHR
+  };
+  using ScopeNV = ScopeKHR;
+
+  enum class ComponentTypeKHR
+  {
+    eFloat16 = VK_COMPONENT_TYPE_FLOAT16_KHR,
+    eFloat32 = VK_COMPONENT_TYPE_FLOAT32_KHR,
+    eFloat64 = VK_COMPONENT_TYPE_FLOAT64_KHR,
+    eSint8   = VK_COMPONENT_TYPE_SINT8_KHR,
+    eSint16  = VK_COMPONENT_TYPE_SINT16_KHR,
+    eSint32  = VK_COMPONENT_TYPE_SINT32_KHR,
+    eSint64  = VK_COMPONENT_TYPE_SINT64_KHR,
+    eUint8   = VK_COMPONENT_TYPE_UINT8_KHR,
+    eUint16  = VK_COMPONENT_TYPE_UINT16_KHR,
+    eUint32  = VK_COMPONENT_TYPE_UINT32_KHR,
+    eUint64  = VK_COMPONENT_TYPE_UINT64_KHR
+  };
+  using ComponentTypeNV = ComponentTypeKHR;
+
+  //=== VK_QCOM_image_processing2 ===
+
+  enum class BlockMatchWindowCompareModeQCOM
+  {
+    eMin = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM,
+    eMax = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM
+  };
+
+  //=== VK_QCOM_filter_cubic_weights ===
+
+  enum class CubicFilterWeightsQCOM
+  {
+    eCatmullRom          = VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM,
+    eZeroTangentCardinal = VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM,
+    eBSpline             = VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM,
+    eMitchellNetravali   = VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM
+  };
+
+  //=== VK_MSFT_layered_driver ===
+
+  enum class LayeredDriverUnderlyingApiMSFT
+  {
+    eNone  = VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT,
+    eD3D12 = VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT
+  };
+
+  //=== VK_KHR_calibrated_timestamps ===
+
+  enum class TimeDomainKHR
+  {
+    eDevice                  = VK_TIME_DOMAIN_DEVICE_KHR,
+    eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
+    eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
+    eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR
+  };
+  using TimeDomainEXT = TimeDomainKHR;
+
   //=========================
   //=== Index Type Traits ===
   //=========================
 
-  //=====================
-  //=== Format Traits ===
-  //=====================
-
-  // The texel block size in bytes.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 12;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 12;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 12;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 24;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 24;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 24;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 5;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 6;
-      case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8;
-
-      default: VULKAN_HPP_ASSERT( false ); return 0;
-    }
-  }
-
-  // The number of texels in a texel block.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 20;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 20;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 25;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 25;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 30;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 30;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 36;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 36;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 40;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 40;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 48;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 48;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 64;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 64;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 50;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 50;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 60;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 60;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 80;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 80;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 100;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 100;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 120;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 120;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 144;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 144;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 20;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 25;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 30;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 36;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 40;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 48;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 64;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 50;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 60;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 80;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 100;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 120;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 144;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1;
-
-      default: VULKAN_HPP_ASSERT( false ); return 0;
-    }
-  }
-
-  // The three-dimensional extent of a texel block.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 std::array<uint8_t, 3> blockExtent( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return { 5, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return { 5, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return { 5, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return { 5, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return { 6, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return { 6, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return { 6, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return { 6, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return { 8, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return { 8, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return { 8, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return { 8, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return { 8, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return { 8, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return { 10, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return { 10, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return { 10, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return { 10, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return { 10, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return { 10, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return { 10, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return { 10, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return { 12, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return { 12, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return { 12, 12, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return { 12, 12, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return { 2, 1, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return { 5, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return { 5, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return { 6, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return { 6, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return { 8, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return { 8, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return { 8, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return { 10, 5, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return { 10, 6, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return { 10, 8, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return { 10, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return { 12, 10, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return { 12, 12, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return { 8, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return { 8, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return { 8, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return { 4, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return { 8, 4, 1 };
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return { 4, 4, 1 };
-
-      default: return { 1, 1, 1 };
-    }
-  }
-
-  // A textual description of the compression scheme, or an empty string if it is not compressed
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return "BC";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return "ETC2";
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return "EAC";
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return "EAC";
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return "EAC";
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return "EAC";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return "ASTC LDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return "ASTC HDR";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return "PVRTC";
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return "PVRTC";
-
-      default: return "";
-    }
-  }
-
-  // True, if this format is a compressed one.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool isCompressed( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    return ( *VULKAN_HPP_NAMESPACE::compressionScheme( format ) != 0 );
-  }
-
-  // The number of bits into which the format is packed. A single image element in this format
-  // can be stored in the same space as a scalar type of this bit width.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t packed( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 8;
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 32;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 16;
-      case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 16;
-
-      default: return 0;
-    }
-  }
-
-  // The number of components of this format.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4;
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4;
-
-      default: return 0;
-    }
-  }
-
-  // True, if the components of this format are compressed, otherwise false.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG:
-      case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return true;
-      default: return false;
-    }
-  }
-
-  // The number of bits in this component, if not compressed, otherwise 0.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( VULKAN_HPP_NAMESPACE::Format format,
-                                                                   uint8_t                      component )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8:
-        switch ( component )
-        {
-          case 0: return 4;
-          case 1: return 4;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16:
-        switch ( component )
-        {
-          case 0: return 4;
-          case 1: return 4;
-          case 2: return 4;
-          case 3: return 4;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16:
-        switch ( component )
-        {
-          case 0: return 4;
-          case 1: return 4;
-          case 2: return 4;
-          case 3: return 4;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16:
-        switch ( component )
-        {
-          case 0: return 5;
-          case 1: return 6;
-          case 2: return 5;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16:
-        switch ( component )
-        {
-          case 0: return 5;
-          case 1: return 6;
-          case 2: return 5;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16:
-        switch ( component )
-        {
-          case 0: return 5;
-          case 1: return 5;
-          case 2: return 5;
-          case 3: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16:
-        switch ( component )
-        {
-          case 0: return 5;
-          case 1: return 5;
-          case 2: return 5;
-          case 3: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16:
-        switch ( component )
-        {
-          case 0: return 1;
-          case 1: return 5;
-          case 2: return 5;
-          case 3: return 5;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32:
-        switch ( component )
-        {
-          case 0: return 2;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Snorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Uint:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sint:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32Uint:
-        switch ( component )
-        {
-          case 0: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sint:
-        switch ( component )
-        {
-          case 0: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat:
-        switch ( component )
-        {
-          case 0: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          case 3: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          case 3: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 32;
-          case 2: return 32;
-          case 3: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64Uint:
-        switch ( component )
-        {
-          case 0: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sint:
-        switch ( component )
-        {
-          case 0: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat:
-        switch ( component )
-        {
-          case 0: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          case 3: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          case 3: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat:
-        switch ( component )
-        {
-          case 0: return 64;
-          case 1: return 64;
-          case 2: return 64;
-          case 3: return 64;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 11;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32:
-        switch ( component )
-        {
-          case 0: return 9;
-          case 1: return 9;
-          case 2: return 9;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eD16Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32:
-        switch ( component )
-        {
-          case 0: return 24;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat:
-        switch ( component )
-        {
-          case 0: return 32;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eS8Uint:
-        switch ( component )
-        {
-          case 0: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint:
-        switch ( component )
-        {
-          case 0: return 24;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint:
-        switch ( component )
-        {
-          case 0: return 32;
-          case 1: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock:
-        switch ( component )
-        {
-          case 0: return 11;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock:
-        switch ( component )
-        {
-          case 0: return 11;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock:
-        switch ( component )
-        {
-          case 0: return 11;
-          case 1: return 11;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock:
-        switch ( component )
-        {
-          case 0: return 11;
-          case 1: return 11;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          case 3: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          case 3: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          case 3: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          case 3: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          case 3: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          case 3: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 8;
-          case 1: return 8;
-          case 2: return 8;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 10;
-          case 1: return 10;
-          case 2: return 10;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 12;
-          case 1: return 12;
-          case 2: return 12;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 16;
-          case 1: return 16;
-          case 2: return 16;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16:
-        switch ( component )
-        {
-          case 0: return 4;
-          case 1: return 4;
-          case 2: return 4;
-          case 3: return 4;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16:
-        switch ( component )
-        {
-          case 0: return 4;
-          case 1: return 4;
-          case 2: return 4;
-          case 3: return 4;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-
-      default: return 0;
-    }
-  }
-
-  // The plane this component lies in.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( VULKAN_HPP_NAMESPACE::Format format,
-                                                                         uint8_t                      component )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
-        switch ( component )
-        {
-          case 0: return 0;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 0;
-        }
-
-      default: return 0;
-    }
-  }
-
-  // The number of image planes of this format.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( VULKAN_HPP_NAMESPACE::Format format )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 2;
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 2;
-
-      default: return 1;
-    }
-  }
-
-  // The single-plane format that this plane is compatible with.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_NAMESPACE::Format
-                                            planeCompatibleFormat( VULKAN_HPP_NAMESPACE::Format format, uint8_t plane )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
-          case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
-          default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
-        }
-
-      default: VULKAN_HPP_ASSERT( plane == 0 ); return format;
-    }
-  }
-
-  // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( VULKAN_HPP_NAMESPACE::Format format,
-                                                                        uint8_t                      plane )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-
-      default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
-    }
-  }
-
-  // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format.
-  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( VULKAN_HPP_NAMESPACE::Format format,
-                                                                       uint8_t                      plane )
-  {
-    switch ( format )
-    {
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          case 2: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 2;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          case 2: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-      case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
-        switch ( plane )
-        {
-          case 0: return 1;
-          case 1: return 1;
-          default: VULKAN_HPP_ASSERT( false ); return 1;
-        }
-
-      default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
-    }
-  }
-
   template <typename T>
   struct IndexTypeValue
   {
@@ -10457,5 +7201,130 @@
     using Type = uint8_t;
   };
 
+  //===========================================================
+  //=== Mapping from ObjectType to DebugReportObjectTypeEXT ===
+  //===========================================================
+
+  VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType )
+  {
+    switch ( objectType )
+    {
+        //=== VK_VERSION_1_0 ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eInstance: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eQueue: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eFence: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eEvent: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eBuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eBufferView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eImage: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eImageView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePipeline: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eSampler: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
+
+        //=== VK_VERSION_1_1 ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
+
+        //=== VK_VERSION_1_3 ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_KHR_surface ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
+
+        //=== VK_KHR_swapchain ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
+
+        //=== VK_KHR_display ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
+
+        //=== VK_EXT_debug_report ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
+
+        //=== VK_KHR_video_queue ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_NVX_binary_import ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
+
+        //=== VK_EXT_debug_utils ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_KHR_acceleration_structure ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
+
+        //=== VK_EXT_validation_cache ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
+
+        //=== VK_NV_ray_tracing ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
+
+        //=== VK_INTEL_performance_query ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_KHR_deferred_host_operations ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_NV_device_generated_commands ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+        //=== VK_NV_cuda_kernel_launch ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+        //=== VK_FUCHSIA_buffer_collection ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+        //=== VK_EXT_opacity_micromap ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_NV_optical_flow ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_EXT_shader_object ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+      default: VULKAN_HPP_ASSERT( false && "unknown ObjectType" ); return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+    }
+  }
+
 }  // namespace VULKAN_HPP_NAMESPACE
 #endif
diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp
new file mode 100644
index 0000000..80cadba
--- /dev/null
+++ b/include/vulkan/vulkan_extension_inspection.hpp
@@ -0,0 +1,2911 @@
+// Copyright 2015-2024 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+//
+
+// This header is generated from the Khronos Vulkan XML API Registry.
+
+#ifndef VULKAN_EXTENSION_INSPECTION_HPP
+#define VULKAN_EXTENSION_INSPECTION_HPP
+
+#include <map>
+#include <set>
+#include <string>
+#include <vector>
+#include <vulkan/vulkan.hpp>
+
+namespace VULKAN_HPP_NAMESPACE
+{
+  //======================================
+  //=== Extension inspection functions ===
+  //======================================
+
+  std::set<std::string> const &                                        getDeviceExtensions();
+  std::set<std::string> const &                                        getInstanceExtensions();
+  std::map<std::string, std::string> const &                           getDeprecatedExtensions();
+  std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );
+  std::pair<bool, std::vector<std::vector<std::string>> const &>       getExtensionDepends( std::string const & version, std::string const & extension );
+  std::map<std::string, std::string> const &                           getObsoletedExtensions();
+  std::map<std::string, std::string> const &                           getPromotedExtensions();
+  VULKAN_HPP_CONSTEXPR_20 std::string getExtensionDeprecatedBy( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 std::string getExtensionObsoletedBy( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 std::string getExtensionPromotedTo( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 bool        isDeprecatedExtension( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 bool        isDeviceExtension( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 bool        isInstanceExtension( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 bool        isObsoletedExtension( std::string const & extension );
+  VULKAN_HPP_CONSTEXPR_20 bool        isPromotedExtension( std::string const & extension );
+
+  //=====================================================
+  //=== Extension inspection function implementations ===
+  //=====================================================
+
+  VULKAN_HPP_INLINE std::map<std::string, std::string> const & getDeprecatedExtensions()
+  {
+    static std::map<std::string, std::string> deprecatedExtensions = {
+      { "VK_EXT_debug_report", "VK_EXT_debug_utils" },
+      { "VK_NV_glsl_shader", "" },
+      { "VK_NV_dedicated_allocation", "VK_KHR_dedicated_allocation" },
+      { "VK_AMD_gpu_shader_half_float", "VK_KHR_shader_float16_int8" },
+      { "VK_IMG_format_pvrtc", "" },
+      { "VK_NV_external_memory_capabilities", "VK_KHR_external_memory_capabilities" },
+      { "VK_NV_external_memory", "VK_KHR_external_memory" },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_NV_external_memory_win32", "VK_KHR_external_memory_win32" },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_EXT_validation_flags", "VK_EXT_layer_settings" },
+      { "VK_EXT_shader_subgroup_ballot", "VK_VERSION_1_2" },
+      { "VK_EXT_shader_subgroup_vote", "VK_VERSION_1_1" },
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+      { "VK_MVK_ios_surface", "VK_EXT_metal_surface" },
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+      { "VK_MVK_macos_surface", "VK_EXT_metal_surface" },
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+      { "VK_AMD_gpu_shader_int16", "VK_KHR_shader_float16_int8" },
+      { "VK_EXT_buffer_device_address", "VK_KHR_buffer_device_address" },
+      { "VK_EXT_validation_features", "VK_EXT_layer_settings" }
+    };
+    return deprecatedExtensions;
+  }
+
+  VULKAN_HPP_INLINE std::set<std::string> const & getDeviceExtensions()
+  {
+    static std::set<std::string> deviceExtensions = {
+      "VK_KHR_swapchain",
+      "VK_KHR_display_swapchain",
+      "VK_NV_glsl_shader",
+      "VK_EXT_depth_range_unrestricted",
+      "VK_KHR_sampler_mirror_clamp_to_edge",
+      "VK_IMG_filter_cubic",
+      "VK_AMD_rasterization_order",
+      "VK_AMD_shader_trinary_minmax",
+      "VK_AMD_shader_explicit_vertex_parameter",
+      "VK_EXT_debug_marker",
+      "VK_KHR_video_queue",
+      "VK_KHR_video_decode_queue",
+      "VK_AMD_gcn_shader",
+      "VK_NV_dedicated_allocation",
+      "VK_EXT_transform_feedback",
+      "VK_NVX_binary_import",
+      "VK_NVX_image_view_handle",
+      "VK_AMD_draw_indirect_count",
+      "VK_AMD_negative_viewport_height",
+      "VK_AMD_gpu_shader_half_float",
+      "VK_AMD_shader_ballot",
+      "VK_KHR_video_encode_h264",
+      "VK_KHR_video_encode_h265",
+      "VK_KHR_video_decode_h264",
+      "VK_AMD_texture_gather_bias_lod",
+      "VK_AMD_shader_info",
+      "VK_KHR_dynamic_rendering",
+      "VK_AMD_shader_image_load_store_lod",
+      "VK_NV_corner_sampled_image",
+      "VK_KHR_multiview",
+      "VK_IMG_format_pvrtc",
+      "VK_NV_external_memory",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_NV_external_memory_win32",
+      "VK_NV_win32_keyed_mutex",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_device_group",
+      "VK_KHR_shader_draw_parameters",
+      "VK_EXT_shader_subgroup_ballot",
+      "VK_EXT_shader_subgroup_vote",
+      "VK_EXT_texture_compression_astc_hdr",
+      "VK_EXT_astc_decode_mode",
+      "VK_EXT_pipeline_robustness",
+      "VK_KHR_maintenance1",
+      "VK_KHR_external_memory",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_KHR_external_memory_win32",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_external_memory_fd",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_KHR_win32_keyed_mutex",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_external_semaphore",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_KHR_external_semaphore_win32",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_external_semaphore_fd",
+      "VK_KHR_push_descriptor",
+      "VK_EXT_conditional_rendering",
+      "VK_KHR_shader_float16_int8",
+      "VK_KHR_16bit_storage",
+      "VK_KHR_incremental_present",
+      "VK_KHR_descriptor_update_template",
+      "VK_NV_clip_space_w_scaling",
+      "VK_EXT_display_control",
+      "VK_GOOGLE_display_timing",
+      "VK_NV_sample_mask_override_coverage",
+      "VK_NV_geometry_shader_passthrough",
+      "VK_NV_viewport_array2",
+      "VK_NVX_multiview_per_view_attributes",
+      "VK_NV_viewport_swizzle",
+      "VK_EXT_discard_rectangles",
+      "VK_EXT_conservative_rasterization",
+      "VK_EXT_depth_clip_enable",
+      "VK_EXT_hdr_metadata",
+      "VK_KHR_imageless_framebuffer",
+      "VK_KHR_create_renderpass2",
+      "VK_IMG_relaxed_line_rasterization",
+      "VK_KHR_shared_presentable_image",
+      "VK_KHR_external_fence",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_KHR_external_fence_win32",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_external_fence_fd",
+      "VK_KHR_performance_query",
+      "VK_KHR_maintenance2",
+      "VK_KHR_variable_pointers",
+      "VK_EXT_external_memory_dma_buf",
+      "VK_EXT_queue_family_foreign",
+      "VK_KHR_dedicated_allocation",
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      "VK_ANDROID_external_memory_android_hardware_buffer",
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      "VK_EXT_sampler_filter_minmax",
+      "VK_KHR_storage_buffer_storage_class",
+      "VK_AMD_gpu_shader_int16",
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      "VK_AMDX_shader_enqueue",
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      "VK_AMD_mixed_attachment_samples",
+      "VK_AMD_shader_fragment_mask",
+      "VK_EXT_inline_uniform_block",
+      "VK_EXT_shader_stencil_export",
+      "VK_EXT_sample_locations",
+      "VK_KHR_relaxed_block_layout",
+      "VK_KHR_get_memory_requirements2",
+      "VK_KHR_image_format_list",
+      "VK_EXT_blend_operation_advanced",
+      "VK_NV_fragment_coverage_to_color",
+      "VK_KHR_acceleration_structure",
+      "VK_KHR_ray_tracing_pipeline",
+      "VK_KHR_ray_query",
+      "VK_NV_framebuffer_mixed_samples",
+      "VK_NV_fill_rectangle",
+      "VK_NV_shader_sm_builtins",
+      "VK_EXT_post_depth_coverage",
+      "VK_KHR_sampler_ycbcr_conversion",
+      "VK_KHR_bind_memory2",
+      "VK_EXT_image_drm_format_modifier",
+      "VK_EXT_validation_cache",
+      "VK_EXT_descriptor_indexing",
+      "VK_EXT_shader_viewport_index_layer",
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      "VK_KHR_portability_subset",
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      "VK_NV_shading_rate_image",
+      "VK_NV_ray_tracing",
+      "VK_NV_representative_fragment_test",
+      "VK_KHR_maintenance3",
+      "VK_KHR_draw_indirect_count",
+      "VK_EXT_filter_cubic",
+      "VK_QCOM_render_pass_shader_resolve",
+      "VK_EXT_global_priority",
+      "VK_KHR_shader_subgroup_extended_types",
+      "VK_KHR_8bit_storage",
+      "VK_EXT_external_memory_host",
+      "VK_AMD_buffer_marker",
+      "VK_KHR_shader_atomic_int64",
+      "VK_KHR_shader_clock",
+      "VK_AMD_pipeline_compiler_control",
+      "VK_EXT_calibrated_timestamps",
+      "VK_AMD_shader_core_properties",
+      "VK_KHR_video_decode_h265",
+      "VK_KHR_global_priority",
+      "VK_AMD_memory_overallocation_behavior",
+      "VK_EXT_vertex_attribute_divisor",
+#if defined( VK_USE_PLATFORM_GGP )
+      "VK_GGP_frame_token",
+#endif /*VK_USE_PLATFORM_GGP*/
+      "VK_EXT_pipeline_creation_feedback",
+      "VK_KHR_driver_properties",
+      "VK_KHR_shader_float_controls",
+      "VK_NV_shader_subgroup_partitioned",
+      "VK_KHR_depth_stencil_resolve",
+      "VK_KHR_swapchain_mutable_format",
+      "VK_NV_compute_shader_derivatives",
+      "VK_NV_mesh_shader",
+      "VK_NV_fragment_shader_barycentric",
+      "VK_NV_shader_image_footprint",
+      "VK_NV_scissor_exclusive",
+      "VK_NV_device_diagnostic_checkpoints",
+      "VK_KHR_timeline_semaphore",
+      "VK_INTEL_shader_integer_functions2",
+      "VK_INTEL_performance_query",
+      "VK_KHR_vulkan_memory_model",
+      "VK_EXT_pci_bus_info",
+      "VK_AMD_display_native_hdr",
+      "VK_KHR_shader_terminate_invocation",
+      "VK_EXT_fragment_density_map",
+      "VK_EXT_scalar_block_layout",
+      "VK_GOOGLE_hlsl_functionality1",
+      "VK_GOOGLE_decorate_string",
+      "VK_EXT_subgroup_size_control",
+      "VK_KHR_fragment_shading_rate",
+      "VK_AMD_shader_core_properties2",
+      "VK_AMD_device_coherent_memory",
+      "VK_EXT_shader_image_atomic_int64",
+      "VK_KHR_spirv_1_4",
+      "VK_EXT_memory_budget",
+      "VK_EXT_memory_priority",
+      "VK_NV_dedicated_allocation_image_aliasing",
+      "VK_KHR_separate_depth_stencil_layouts",
+      "VK_EXT_buffer_device_address",
+      "VK_EXT_tooling_info",
+      "VK_EXT_separate_stencil_usage",
+      "VK_KHR_present_wait",
+      "VK_NV_cooperative_matrix",
+      "VK_NV_coverage_reduction_mode",
+      "VK_EXT_fragment_shader_interlock",
+      "VK_EXT_ycbcr_image_arrays",
+      "VK_KHR_uniform_buffer_standard_layout",
+      "VK_EXT_provoking_vertex",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_EXT_full_screen_exclusive",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_KHR_buffer_device_address",
+      "VK_EXT_line_rasterization",
+      "VK_EXT_shader_atomic_float",
+      "VK_EXT_host_query_reset",
+      "VK_EXT_index_type_uint8",
+      "VK_EXT_extended_dynamic_state",
+      "VK_KHR_deferred_host_operations",
+      "VK_KHR_pipeline_executable_properties",
+      "VK_EXT_host_image_copy",
+      "VK_KHR_map_memory2",
+      "VK_EXT_shader_atomic_float2",
+      "VK_EXT_swapchain_maintenance1",
+      "VK_EXT_shader_demote_to_helper_invocation",
+      "VK_NV_device_generated_commands",
+      "VK_NV_inherited_viewport_scissor",
+      "VK_KHR_shader_integer_dot_product",
+      "VK_EXT_texel_buffer_alignment",
+      "VK_QCOM_render_pass_transform",
+      "VK_EXT_depth_bias_control",
+      "VK_EXT_device_memory_report",
+      "VK_EXT_robustness2",
+      "VK_EXT_custom_border_color",
+      "VK_GOOGLE_user_type",
+      "VK_KHR_pipeline_library",
+      "VK_NV_present_barrier",
+      "VK_KHR_shader_non_semantic_info",
+      "VK_KHR_present_id",
+      "VK_EXT_private_data",
+      "VK_EXT_pipeline_creation_cache_control",
+      "VK_KHR_video_encode_queue",
+      "VK_NV_device_diagnostics_config",
+      "VK_QCOM_render_pass_store_ops",
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      "VK_NV_cuda_kernel_launch",
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      "VK_NV_low_latency",
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+      "VK_EXT_metal_objects",
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+      "VK_KHR_synchronization2",
+      "VK_EXT_descriptor_buffer",
+      "VK_EXT_graphics_pipeline_library",
+      "VK_AMD_shader_early_and_late_fragment_tests",
+      "VK_KHR_fragment_shader_barycentric",
+      "VK_KHR_shader_subgroup_uniform_control_flow",
+      "VK_KHR_zero_initialize_workgroup_memory",
+      "VK_NV_fragment_shading_rate_enums",
+      "VK_NV_ray_tracing_motion_blur",
+      "VK_EXT_mesh_shader",
+      "VK_EXT_ycbcr_2plane_444_formats",
+      "VK_EXT_fragment_density_map2",
+      "VK_QCOM_rotated_copy_commands",
+      "VK_EXT_image_robustness",
+      "VK_KHR_workgroup_memory_explicit_layout",
+      "VK_KHR_copy_commands2",
+      "VK_EXT_image_compression_control",
+      "VK_EXT_attachment_feedback_loop_layout",
+      "VK_EXT_4444_formats",
+      "VK_EXT_device_fault",
+      "VK_ARM_rasterization_order_attachment_access",
+      "VK_EXT_rgba10x6_formats",
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_NV_acquire_winrt_display",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_VALVE_mutable_descriptor_type",
+      "VK_EXT_vertex_input_dynamic_state",
+      "VK_EXT_physical_device_drm",
+      "VK_EXT_device_address_binding_report",
+      "VK_EXT_depth_clip_control",
+      "VK_EXT_primitive_topology_list_restart",
+      "VK_KHR_format_feature_flags2",
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+      "VK_FUCHSIA_external_memory",
+      "VK_FUCHSIA_external_semaphore",
+      "VK_FUCHSIA_buffer_collection",
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+      "VK_HUAWEI_subpass_shading",
+      "VK_HUAWEI_invocation_mask",
+      "VK_NV_external_memory_rdma",
+      "VK_EXT_pipeline_properties",
+      "VK_EXT_frame_boundary",
+      "VK_EXT_multisampled_render_to_single_sampled",
+      "VK_EXT_extended_dynamic_state2",
+      "VK_EXT_color_write_enable",
+      "VK_EXT_primitives_generated_query",
+      "VK_KHR_ray_tracing_maintenance1",
+      "VK_EXT_global_priority_query",
+      "VK_EXT_image_view_min_lod",
+      "VK_EXT_multi_draw",
+      "VK_EXT_image_2d_view_of_3d",
+      "VK_EXT_shader_tile_image",
+      "VK_EXT_opacity_micromap",
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      "VK_NV_displacement_micromap",
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      "VK_EXT_load_store_op_none",
+      "VK_HUAWEI_cluster_culling_shader",
+      "VK_EXT_border_color_swizzle",
+      "VK_EXT_pageable_device_local_memory",
+      "VK_KHR_maintenance4",
+      "VK_ARM_shader_core_properties",
+      "VK_ARM_scheduling_controls",
+      "VK_EXT_image_sliced_view_of_3d",
+      "VK_VALVE_descriptor_set_host_mapping",
+      "VK_EXT_depth_clamp_zero_one",
+      "VK_EXT_non_seamless_cube_map",
+      "VK_ARM_render_pass_striped",
+      "VK_QCOM_fragment_density_map_offset",
+      "VK_NV_copy_memory_indirect",
+      "VK_NV_memory_decompression",
+      "VK_NV_device_generated_commands_compute",
+      "VK_NV_linear_color_attachment",
+      "VK_EXT_image_compression_control_swapchain",
+      "VK_QCOM_image_processing",
+      "VK_EXT_nested_command_buffer",
+      "VK_EXT_external_memory_acquire_unmodified",
+      "VK_EXT_extended_dynamic_state3",
+      "VK_EXT_subpass_merge_feedback",
+      "VK_EXT_shader_module_identifier",
+      "VK_EXT_rasterization_order_attachment_access",
+      "VK_NV_optical_flow",
+      "VK_EXT_legacy_dithering",
+      "VK_EXT_pipeline_protected_access",
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      "VK_ANDROID_external_format_resolve",
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      "VK_KHR_maintenance5",
+      "VK_KHR_ray_tracing_position_fetch",
+      "VK_EXT_shader_object",
+      "VK_QCOM_tile_properties",
+      "VK_SEC_amigo_profiling",
+      "VK_QCOM_multiview_per_view_viewports",
+      "VK_NV_ray_tracing_invocation_reorder",
+      "VK_NV_extended_sparse_address_space",
+      "VK_EXT_mutable_descriptor_type",
+      "VK_ARM_shader_core_builtins",
+      "VK_EXT_pipeline_library_group_handles",
+      "VK_EXT_dynamic_rendering_unused_attachments",
+      "VK_NV_low_latency2",
+      "VK_KHR_cooperative_matrix",
+      "VK_QCOM_multiview_per_view_render_areas",
+      "VK_KHR_video_maintenance1",
+      "VK_NV_per_stage_descriptor_set",
+      "VK_QCOM_image_processing2",
+      "VK_QCOM_filter_cubic_weights",
+      "VK_QCOM_ycbcr_degamma",
+      "VK_QCOM_filter_cubic_clamp",
+      "VK_EXT_attachment_feedback_loop_dynamic_state",
+      "VK_KHR_vertex_attribute_divisor",
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      "VK_QNX_external_memory_screen_buffer",
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      "VK_MSFT_layered_driver",
+      "VK_KHR_calibrated_timestamps",
+      "VK_KHR_maintenance6",
+      "VK_NV_descriptor_pool_overallocation"
+    };
+    return deviceExtensions;
+  }
+
+  VULKAN_HPP_INLINE std::set<std::string> const & getInstanceExtensions()
+  {
+    static std::set<std::string> instanceExtensions = {
+      "VK_KHR_surface",
+      "VK_KHR_display",
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+      "VK_KHR_xlib_surface",
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+      "VK_KHR_xcb_surface",
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+      "VK_KHR_wayland_surface",
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      "VK_KHR_android_surface",
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      "VK_KHR_win32_surface",
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      "VK_EXT_debug_report",
+#if defined( VK_USE_PLATFORM_GGP )
+      "VK_GGP_stream_descriptor_surface",
+#endif /*VK_USE_PLATFORM_GGP*/
+      "VK_NV_external_memory_capabilities",
+      "VK_KHR_get_physical_device_properties2",
+      "VK_EXT_validation_flags",
+#if defined( VK_USE_PLATFORM_VI_NN )
+      "VK_NN_vi_surface",
+#endif /*VK_USE_PLATFORM_VI_NN*/
+      "VK_KHR_device_group_creation",
+      "VK_KHR_external_memory_capabilities",
+      "VK_KHR_external_semaphore_capabilities",
+      "VK_EXT_direct_mode_display",
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+      "VK_EXT_acquire_xlib_display",
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+      "VK_EXT_display_surface_counter",
+      "VK_EXT_swapchain_colorspace",
+      "VK_KHR_external_fence_capabilities",
+      "VK_KHR_get_surface_capabilities2",
+      "VK_KHR_get_display_properties2",
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+      "VK_MVK_ios_surface",
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+      "VK_MVK_macos_surface",
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+      "VK_EXT_debug_utils",
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+      "VK_FUCHSIA_imagepipe_surface",
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+      "VK_EXT_metal_surface",
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+      "VK_KHR_surface_protected_capabilities",
+      "VK_EXT_validation_features",
+      "VK_EXT_headless_surface",
+      "VK_EXT_surface_maintenance1",
+      "VK_EXT_acquire_drm_display",
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+      "VK_EXT_directfb_surface",
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      "VK_QNX_screen_surface",
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      "VK_KHR_portability_enumeration",
+      "VK_GOOGLE_surfaceless_query",
+      "VK_LUNARG_direct_driver_loading",
+      "VK_EXT_layer_settings"
+    };
+    return instanceExtensions;
+  }
+
+  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
+  {
+    static std::map<std::string, std::vector<std::vector<std::string>>>                        noDependencies;
+    static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = {
+      { "VK_KHR_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_display",
+            } } } } },
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+      { "VK_KHR_xlib_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+      { "VK_KHR_xcb_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+      { "VK_KHR_wayland_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      { "VK_KHR_android_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_KHR_win32_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_EXT_debug_marker",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_debug_report",
+            } } } } },
+      { "VK_KHR_video_queue",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_KHR_video_decode_queue",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_queue",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_EXT_transform_feedback",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_video_encode_h264",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_encode_queue",
+            } } } } },
+      { "VK_KHR_video_encode_h265",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_encode_queue",
+            } } } } },
+      { "VK_KHR_video_decode_h264",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_decode_queue",
+            } } } } },
+      { "VK_AMD_texture_gather_bias_lod",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_dynamic_rendering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_depth_stencil_resolve",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#if defined( VK_USE_PLATFORM_GGP )
+      { "VK_GGP_stream_descriptor_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_GGP*/
+      { "VK_NV_corner_sampled_image",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_multiview",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory_capabilities",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_NV_external_memory_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory",
+            } } } } },
+      { "VK_NV_win32_keyed_mutex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory_win32",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_device_group",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_device_group_creation",
+            } } } } },
+#if defined( VK_USE_PLATFORM_VI_NN )
+      { "VK_NN_vi_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_VI_NN*/
+      { "VK_EXT_texture_compression_astc_hdr",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_astc_decode_mode",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_pipeline_robustness",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_memory_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_capabilities",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_KHR_external_memory_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_external_memory_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_KHR_win32_keyed_mutex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_win32",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_external_semaphore_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore_capabilities",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_KHR_external_semaphore_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_external_semaphore_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_push_descriptor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_conditional_rendering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_float16_int8",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_16bit_storage",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_KHR_incremental_present",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_EXT_direct_mode_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+      { "VK_EXT_acquire_xlib_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+      { "VK_EXT_display_surface_counter",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_display_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_display_surface_counter",
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_GOOGLE_display_timing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_NVX_multiview_per_view_attributes",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_multiview",
+            } } } } },
+      { "VK_EXT_discard_rectangles",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_conservative_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_depth_clip_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_swapchain_colorspace",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_hdr_metadata",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_KHR_imageless_framebuffer",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance2",
+              "VK_KHR_image_format_list",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_create_renderpass2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_multiview",
+              "VK_KHR_maintenance2",
+            } } } } },
+      { "VK_IMG_relaxed_line_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_shared_presentable_image",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_KHR_external_fence_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_fence",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence_capabilities",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_KHR_external_fence_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_external_fence_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_performance_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_get_surface_capabilities2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_variable_pointers",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_KHR_get_display_properties2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+      { "VK_MVK_ios_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+      { "VK_MVK_macos_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+      { "VK_EXT_external_memory_dma_buf",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_fd",
+            } } } } },
+      { "VK_EXT_queue_family_foreign",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_dedicated_allocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_memory_requirements2",
+            } } } } },
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      { "VK_ANDROID_external_memory_android_hardware_buffer",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_external_memory",
+              "VK_EXT_queue_family_foreign",
+              "VK_KHR_dedicated_allocation",
+            } } } } },
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      { "VK_EXT_sampler_filter_minmax",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      { "VK_AMDX_shader_enqueue",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_synchronization2",
+              "VK_KHR_pipeline_library",
+              "VK_KHR_spirv_1_4",
+            } } } } },
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      { "VK_EXT_inline_uniform_block",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_maintenance1",
+            } } } } },
+      { "VK_EXT_sample_locations",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_blend_operation_advanced",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_acceleration_structure",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_EXT_descriptor_indexing",
+              "VK_KHR_buffer_device_address",
+              "VK_KHR_deferred_host_operations",
+            } } } } },
+      { "VK_KHR_ray_tracing_pipeline",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_KHR_ray_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_NV_shader_sm_builtins", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_sampler_ycbcr_conversion",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_bind_memory2",
+              "VK_KHR_get_memory_requirements2",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_image_drm_format_modifier",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_bind_memory2",
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_EXT_descriptor_indexing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_maintenance3",
+            } } } } },
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      { "VK_KHR_portability_subset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      { "VK_NV_shading_rate_image",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_ray_tracing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_get_memory_requirements2",
+            } } } } },
+      { "VK_NV_representative_fragment_test",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_maintenance3",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_8bit_storage",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_EXT_external_memory_host",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_shader_atomic_int64",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_clock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_calibrated_timestamps",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_AMD_shader_core_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_video_decode_h265",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_decode_queue",
+            } } } } },
+      { "VK_KHR_global_priority",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_vertex_attribute_divisor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+#if defined( VK_USE_PLATFORM_GGP )
+      { "VK_GGP_frame_token",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_GGP_stream_descriptor_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_GGP*/
+      { "VK_KHR_driver_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_float_controls",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_shader_subgroup_partitioned", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_depth_stencil_resolve",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+            } } } } },
+      { "VK_KHR_swapchain_mutable_format",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_maintenance2",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_NV_compute_shader_derivatives",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_mesh_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_fragment_shader_barycentric",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_shader_image_footprint",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_scissor_exclusive",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_device_diagnostic_checkpoints",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_timeline_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_INTEL_shader_integer_functions2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_vulkan_memory_model",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pci_bus_info",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_AMD_display_native_hdr",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+      { "VK_FUCHSIA_imagepipe_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+      { "VK_KHR_shader_terminate_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+      { "VK_EXT_metal_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+      { "VK_EXT_fragment_density_map",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_scalar_block_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_fragment_shading_rate",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_create_renderpass2",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_AMD_shader_core_properties2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_AMD_shader_core_properties",
+            } } } } },
+      { "VK_AMD_device_coherent_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_image_atomic_int64",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_spirv_1_4",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_shader_float_controls",
+            } } } } },
+      { "VK_EXT_memory_budget",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_memory_priority",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_surface_protected_capabilities",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_NV_dedicated_allocation_image_aliasing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_dedicated_allocation",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_separate_depth_stencil_layouts",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_create_renderpass2",
+            } } } } },
+      { "VK_EXT_buffer_device_address",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_present_wait",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_present_id",
+            } } } } },
+      { "VK_NV_cooperative_matrix",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_coverage_reduction_mode",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_framebuffer_mixed_samples",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_fragment_shader_interlock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_ycbcr_image_arrays",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_uniform_buffer_standard_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_provoking_vertex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_EXT_full_screen_exclusive",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_EXT_headless_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_buffer_device_address",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_device_group",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_line_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_shader_atomic_float",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_host_query_reset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_index_type_uint8",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_extended_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_pipeline_executable_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_host_image_copy",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_copy_commands2",
+              "VK_KHR_format_feature_flags2",
+            } } } } },
+      { "VK_EXT_shader_atomic_float2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_shader_atomic_float",
+            } } } } },
+      { "VK_EXT_surface_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_EXT_swapchain_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_EXT_surface_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_demote_to_helper_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_NV_device_generated_commands",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_inherited_viewport_scissor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_integer_dot_product",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_texel_buffer_alignment",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_depth_bias_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_device_memory_report",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_acquire_drm_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
+      { "VK_EXT_robustness2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_custom_border_color",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_NV_present_barrier",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_KHR_present_id",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_private_data",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_creation_cache_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_video_encode_queue",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_queue",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_NV_device_diagnostics_config",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_synchronization2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_descriptor_buffer",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+              "VK_KHR_synchronization2",
+              "VK_EXT_descriptor_indexing",
+            } } } } },
+      { "VK_EXT_graphics_pipeline_library",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_pipeline_library",
+            } } } } },
+      { "VK_AMD_shader_early_and_late_fragment_tests",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_fragment_shader_barycentric",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_subgroup_uniform_control_flow", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_zero_initialize_workgroup_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_fragment_shading_rate_enums",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_fragment_shading_rate",
+            } } } } },
+      { "VK_NV_ray_tracing_motion_blur",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+            } } } } },
+      { "VK_EXT_mesh_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+            } } } } },
+      { "VK_EXT_ycbcr_2plane_444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_fragment_density_map2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_fragment_density_map",
+            } } } } },
+      { "VK_QCOM_rotated_copy_commands",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_copy_commands2",
+            } } } } },
+      { "VK_EXT_image_robustness",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_workgroup_memory_explicit_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_copy_commands2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_image_compression_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_attachment_feedback_loop_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_4444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_device_fault",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_ARM_rasterization_order_attachment_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_rgba10x6_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } } } },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_NV_acquire_winrt_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+      { "VK_EXT_directfb_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+      { "VK_VALVE_mutable_descriptor_type",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance3",
+            } } } } },
+      { "VK_EXT_vertex_input_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_physical_device_drm",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_device_address_binding_report",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_debug_utils",
+            } } } } },
+      { "VK_EXT_depth_clip_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_primitive_topology_list_restart",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_format_feature_flags2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+      { "VK_FUCHSIA_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_capabilities",
+              "VK_KHR_external_memory",
+            } } } } },
+      { "VK_FUCHSIA_external_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore_capabilities",
+              "VK_KHR_external_semaphore",
+            } } } } },
+      { "VK_FUCHSIA_buffer_collection",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_FUCHSIA_external_memory",
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } } } },
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+      { "VK_HUAWEI_subpass_shading",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_HUAWEI_invocation_mask",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_NV_external_memory_rdma",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } } } },
+      { "VK_EXT_pipeline_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_multisampled_render_to_single_sampled",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_depth_stencil_resolve",
+            } } } } },
+      { "VK_EXT_extended_dynamic_state2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      { "VK_QNX_screen_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      { "VK_EXT_color_write_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_primitives_generated_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_transform_feedback",
+            } } } } },
+      { "VK_KHR_ray_tracing_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_EXT_global_priority_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_global_priority",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_image_view_min_lod",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_multi_draw",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_image_2d_view_of_3d",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_tile_image", { { "VK_VERSION_1_3", { {} } } } },
+      { "VK_EXT_opacity_micromap",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+              "VK_KHR_synchronization2",
+            } } } } },
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      { "VK_NV_displacement_micromap",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_opacity_micromap",
+            } } } } },
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      { "VK_HUAWEI_cluster_culling_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_border_color_swizzle",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_custom_border_color",
+            } } } } },
+      { "VK_EXT_pageable_device_local_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_memory_priority",
+            } } } } },
+      { "VK_KHR_maintenance4", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_ARM_shader_core_properties", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_ARM_scheduling_controls",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_ARM_shader_core_builtins",
+            } } } } },
+      { "VK_EXT_image_sliced_view_of_3d",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_VALVE_descriptor_set_host_mapping",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_depth_clamp_zero_one",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_non_seamless_cube_map",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_ARM_render_pass_striped",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_QCOM_fragment_density_map_offset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_fragment_density_map",
+            } } } } },
+      { "VK_NV_copy_memory_indirect",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_memory_decompression",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_device_generated_commands_compute",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_device_generated_commands",
+            } } } } },
+      { "VK_NV_linear_color_attachment",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_GOOGLE_surfaceless_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_image_compression_control_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_image_compression_control",
+            } } } } },
+      { "VK_QCOM_image_processing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_format_feature_flags2",
+            } } } } },
+      { "VK_EXT_nested_command_buffer",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_external_memory_acquire_unmodified",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } } } },
+      { "VK_EXT_extended_dynamic_state3",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_subpass_merge_feedback",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_module_identifier",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_pipeline_creation_cache_control",
+            } } } } },
+      { "VK_EXT_rasterization_order_attachment_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_optical_flow",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_format_feature_flags2",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_EXT_legacy_dithering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_protected_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      { "VK_ANDROID_external_format_resolve",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_ANDROID_external_memory_android_hardware_buffer",
+            } } } } },
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      { "VK_KHR_maintenance5",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_dynamic_rendering",
+            } } } } },
+      { "VK_KHR_ray_tracing_position_fetch",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_EXT_shader_object",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_3", { {} } } } },
+      { "VK_QCOM_tile_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_SEC_amigo_profiling",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_QCOM_multiview_per_view_viewports",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_ray_tracing_invocation_reorder",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+            } } } } },
+      { "VK_EXT_mutable_descriptor_type",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance3",
+            } } } } },
+      { "VK_ARM_shader_core_builtins",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_library_group_handles",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+              "VK_KHR_pipeline_library",
+            } } } } },
+      { "VK_EXT_dynamic_rendering_unused_attachments",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_3", { {} } } } },
+      { "VK_NV_low_latency2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_timeline_semaphore",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_KHR_cooperative_matrix",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_video_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_queue",
+            } } } } },
+      { "VK_NV_per_stage_descriptor_set",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance6",
+            } } } } },
+      { "VK_QCOM_image_processing2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_QCOM_image_processing",
+            } } } } },
+      { "VK_QCOM_filter_cubic_weights",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_filter_cubic",
+            } } } } },
+      { "VK_QCOM_filter_cubic_clamp",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_filter_cubic",
+              "VK_EXT_sampler_filter_minmax",
+            } } },
+          { "VK_VERSION_1_2",
+            { {
+              "VK_EXT_filter_cubic",
+            } } } } },
+      { "VK_EXT_attachment_feedback_loop_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_attachment_feedback_loop_layout",
+            } } } } },
+      { "VK_KHR_vertex_attribute_divisor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      { "VK_QNX_external_memory_screen_buffer",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_external_memory",
+              "VK_KHR_dedicated_allocation",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_EXT_queue_family_foreign",
+            } } } } },
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      { "VK_MSFT_layered_driver",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_calibrated_timestamps",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_maintenance6", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { {} } } } }
+    };
+    auto depIt = dependencies.find( extension );
+    return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
+  }
+
+  VULKAN_HPP_INLINE std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version,
+                                                                                                        std::string const & extension )
+  {
+#if !defined( NDEBUG )
+    static std::set<std::string> versions = { "VK_VERSION_1_0", "VK_VERSION_1_1", "VK_VERSION_1_2", "VK_VERSION_1_3" };
+    assert( versions.find( version ) != versions.end() );
+#endif
+    static std::vector<std::vector<std::string>> noDependencies;
+
+    std::map<std::string, std::vector<std::vector<std::string>>> const & dependencies = getExtensionDepends( extension );
+    if ( dependencies.empty() )
+    {
+      return { true, noDependencies };
+    }
+    auto depIt = dependencies.lower_bound( version );
+    if ( ( depIt == dependencies.end() ) || ( depIt->first != version ) )
+    {
+      depIt = std::prev( depIt );
+    }
+    if ( depIt == dependencies.end() )
+    {
+      return { false, noDependencies };
+    }
+    else
+    {
+      return { true, depIt->second };
+    }
+  }
+
+  VULKAN_HPP_INLINE std::map<std::string, std::string> const & getObsoletedExtensions()
+  {
+    static std::map<std::string, std::string> obsoletedExtensions = { { "VK_AMD_negative_viewport_height", "VK_KHR_maintenance1" } };
+    return obsoletedExtensions;
+  }
+
+  VULKAN_HPP_INLINE std::map<std::string, std::string> const & getPromotedExtensions()
+  {
+    static std::map<std::string, std::string> promotedExtensions = {
+      { "VK_KHR_sampler_mirror_clamp_to_edge", "VK_VERSION_1_2" },
+      { "VK_EXT_debug_marker", "VK_EXT_debug_utils" },
+      { "VK_AMD_draw_indirect_count", "VK_KHR_draw_indirect_count" },
+      { "VK_KHR_dynamic_rendering", "VK_VERSION_1_3" },
+      { "VK_KHR_multiview", "VK_VERSION_1_1" },
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+      { "VK_NV_win32_keyed_mutex", "VK_KHR_win32_keyed_mutex" },
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      { "VK_KHR_get_physical_device_properties2", "VK_VERSION_1_1" },
+      { "VK_KHR_device_group", "VK_VERSION_1_1" },
+      { "VK_KHR_shader_draw_parameters", "VK_VERSION_1_1" },
+      { "VK_EXT_texture_compression_astc_hdr", "VK_VERSION_1_3" },
+      { "VK_KHR_maintenance1", "VK_VERSION_1_1" },
+      { "VK_KHR_device_group_creation", "VK_VERSION_1_1" },
+      { "VK_KHR_external_memory_capabilities", "VK_VERSION_1_1" },
+      { "VK_KHR_external_memory", "VK_VERSION_1_1" },
+      { "VK_KHR_external_semaphore_capabilities", "VK_VERSION_1_1" },
+      { "VK_KHR_external_semaphore", "VK_VERSION_1_1" },
+      { "VK_KHR_shader_float16_int8", "VK_VERSION_1_2" },
+      { "VK_KHR_16bit_storage", "VK_VERSION_1_1" },
+      { "VK_KHR_descriptor_update_template", "VK_VERSION_1_1" },
+      { "VK_KHR_imageless_framebuffer", "VK_VERSION_1_2" },
+      { "VK_KHR_create_renderpass2", "VK_VERSION_1_2" },
+      { "VK_KHR_external_fence_capabilities", "VK_VERSION_1_1" },
+      { "VK_KHR_external_fence", "VK_VERSION_1_1" },
+      { "VK_KHR_maintenance2", "VK_VERSION_1_1" },
+      { "VK_KHR_variable_pointers", "VK_VERSION_1_1" },
+      { "VK_KHR_dedicated_allocation", "VK_VERSION_1_1" },
+      { "VK_EXT_sampler_filter_minmax", "VK_VERSION_1_2" },
+      { "VK_KHR_storage_buffer_storage_class", "VK_VERSION_1_1" },
+      { "VK_EXT_inline_uniform_block", "VK_VERSION_1_3" },
+      { "VK_KHR_relaxed_block_layout", "VK_VERSION_1_1" },
+      { "VK_KHR_get_memory_requirements2", "VK_VERSION_1_1" },
+      { "VK_KHR_image_format_list", "VK_VERSION_1_2" },
+      { "VK_KHR_sampler_ycbcr_conversion", "VK_VERSION_1_1" },
+      { "VK_KHR_bind_memory2", "VK_VERSION_1_1" },
+      { "VK_EXT_descriptor_indexing", "VK_VERSION_1_2" },
+      { "VK_EXT_shader_viewport_index_layer", "VK_VERSION_1_2" },
+      { "VK_KHR_maintenance3", "VK_VERSION_1_1" },
+      { "VK_KHR_draw_indirect_count", "VK_VERSION_1_2" },
+      { "VK_EXT_global_priority", "VK_KHR_global_priority" },
+      { "VK_KHR_shader_subgroup_extended_types", "VK_VERSION_1_2" },
+      { "VK_KHR_8bit_storage", "VK_VERSION_1_2" },
+      { "VK_KHR_shader_atomic_int64", "VK_VERSION_1_2" },
+      { "VK_EXT_calibrated_timestamps", "VK_KHR_calibrated_timestamps" },
+      { "VK_EXT_vertex_attribute_divisor", "VK_KHR_vertex_attribute_divisor" },
+      { "VK_EXT_pipeline_creation_feedback", "VK_VERSION_1_3" },
+      { "VK_KHR_driver_properties", "VK_VERSION_1_2" },
+      { "VK_KHR_shader_float_controls", "VK_VERSION_1_2" },
+      { "VK_KHR_depth_stencil_resolve", "VK_VERSION_1_2" },
+      { "VK_NV_fragment_shader_barycentric", "VK_KHR_fragment_shader_barycentric" },
+      { "VK_KHR_timeline_semaphore", "VK_VERSION_1_2" },
+      { "VK_KHR_vulkan_memory_model", "VK_VERSION_1_2" },
+      { "VK_KHR_shader_terminate_invocation", "VK_VERSION_1_3" },
+      { "VK_EXT_scalar_block_layout", "VK_VERSION_1_2" },
+      { "VK_EXT_subgroup_size_control", "VK_VERSION_1_3" },
+      { "VK_KHR_spirv_1_4", "VK_VERSION_1_2" },
+      { "VK_KHR_separate_depth_stencil_layouts", "VK_VERSION_1_2" },
+      { "VK_EXT_tooling_info", "VK_VERSION_1_3" },
+      { "VK_EXT_separate_stencil_usage", "VK_VERSION_1_2" },
+      { "VK_KHR_uniform_buffer_standard_layout", "VK_VERSION_1_2" },
+      { "VK_KHR_buffer_device_address", "VK_VERSION_1_2" },
+      { "VK_EXT_host_query_reset", "VK_VERSION_1_2" },
+      { "VK_EXT_extended_dynamic_state", "VK_VERSION_1_3" },
+      { "VK_EXT_shader_demote_to_helper_invocation", "VK_VERSION_1_3" },
+      { "VK_KHR_shader_integer_dot_product", "VK_VERSION_1_3" },
+      { "VK_EXT_texel_buffer_alignment", "VK_VERSION_1_3" },
+      { "VK_KHR_shader_non_semantic_info", "VK_VERSION_1_3" },
+      { "VK_EXT_private_data", "VK_VERSION_1_3" },
+      { "VK_EXT_pipeline_creation_cache_control", "VK_VERSION_1_3" },
+      { "VK_KHR_synchronization2", "VK_VERSION_1_3" },
+      { "VK_KHR_zero_initialize_workgroup_memory", "VK_VERSION_1_3" },
+      { "VK_EXT_ycbcr_2plane_444_formats", "VK_VERSION_1_3" },
+      { "VK_EXT_image_robustness", "VK_VERSION_1_3" },
+      { "VK_KHR_copy_commands2", "VK_VERSION_1_3" },
+      { "VK_EXT_4444_formats", "VK_VERSION_1_3" },
+      { "VK_ARM_rasterization_order_attachment_access", "VK_EXT_rasterization_order_attachment_access" },
+      { "VK_VALVE_mutable_descriptor_type", "VK_EXT_mutable_descriptor_type" },
+      { "VK_KHR_format_feature_flags2", "VK_VERSION_1_3" },
+      { "VK_EXT_extended_dynamic_state2", "VK_VERSION_1_3" },
+      { "VK_EXT_global_priority_query", "VK_KHR_global_priority" },
+      { "VK_KHR_maintenance4", "VK_VERSION_1_3" }
+    };
+    return promotedExtensions;
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionDeprecatedBy( std::string const & extension )
+  {
+    if ( extension == "VK_EXT_debug_report" )
+    {
+      return "VK_EXT_debug_utils";
+    }
+    if ( extension == "VK_NV_glsl_shader" )
+    {
+      return "";
+    }
+    if ( extension == "VK_NV_dedicated_allocation" )
+    {
+      return "VK_KHR_dedicated_allocation";
+    }
+    if ( extension == "VK_AMD_gpu_shader_half_float" )
+    {
+      return "VK_KHR_shader_float16_int8";
+    }
+    if ( extension == "VK_IMG_format_pvrtc" )
+    {
+      return "";
+    }
+    if ( extension == "VK_NV_external_memory_capabilities" )
+    {
+      return "VK_KHR_external_memory_capabilities";
+    }
+    if ( extension == "VK_NV_external_memory" )
+    {
+      return "VK_KHR_external_memory";
+    }
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+    if ( extension == "VK_NV_external_memory_win32" )
+    {
+      return "VK_KHR_external_memory_win32";
+    }
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+    if ( extension == "VK_EXT_validation_flags" )
+    {
+      return "VK_EXT_layer_settings";
+    }
+    if ( extension == "VK_EXT_shader_subgroup_ballot" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_shader_subgroup_vote" )
+    {
+      return "VK_VERSION_1_1";
+    }
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+    if ( extension == "VK_MVK_ios_surface" )
+    {
+      return "VK_EXT_metal_surface";
+    }
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+    if ( extension == "VK_MVK_macos_surface" )
+    {
+      return "VK_EXT_metal_surface";
+    }
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+    if ( extension == "VK_AMD_gpu_shader_int16" )
+    {
+      return "VK_KHR_shader_float16_int8";
+    }
+    if ( extension == "VK_EXT_buffer_device_address" )
+    {
+      return "VK_KHR_buffer_device_address";
+    }
+    if ( extension == "VK_EXT_validation_features" )
+    {
+      return "VK_EXT_layer_settings";
+    }
+    return "";
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionObsoletedBy( std::string const & extension )
+  {
+    if ( extension == "VK_AMD_negative_viewport_height" )
+    {
+      return "VK_KHR_maintenance1";
+    }
+    return "";
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionPromotedTo( std::string const & extension )
+  {
+    if ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_debug_marker" )
+    {
+      return "VK_EXT_debug_utils";
+    }
+    if ( extension == "VK_AMD_draw_indirect_count" )
+    {
+      return "VK_KHR_draw_indirect_count";
+    }
+    if ( extension == "VK_KHR_dynamic_rendering" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_multiview" )
+    {
+      return "VK_VERSION_1_1";
+    }
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+    if ( extension == "VK_NV_win32_keyed_mutex" )
+    {
+      return "VK_KHR_win32_keyed_mutex";
+    }
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+    if ( extension == "VK_KHR_get_physical_device_properties2" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_device_group" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_shader_draw_parameters" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_EXT_texture_compression_astc_hdr" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_maintenance1" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_device_group_creation" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_external_memory_capabilities" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_external_memory" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_external_semaphore_capabilities" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_external_semaphore" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_shader_float16_int8" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_16bit_storage" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_descriptor_update_template" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_imageless_framebuffer" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_create_renderpass2" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_external_fence_capabilities" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_external_fence" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_maintenance2" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_variable_pointers" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_dedicated_allocation" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_EXT_sampler_filter_minmax" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_storage_buffer_storage_class" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_EXT_inline_uniform_block" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_relaxed_block_layout" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_get_memory_requirements2" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_image_format_list" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_sampler_ycbcr_conversion" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_bind_memory2" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_EXT_descriptor_indexing" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_shader_viewport_index_layer" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_maintenance3" )
+    {
+      return "VK_VERSION_1_1";
+    }
+    if ( extension == "VK_KHR_draw_indirect_count" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_global_priority" )
+    {
+      return "VK_KHR_global_priority";
+    }
+    if ( extension == "VK_KHR_shader_subgroup_extended_types" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_8bit_storage" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_shader_atomic_int64" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_calibrated_timestamps" )
+    {
+      return "VK_KHR_calibrated_timestamps";
+    }
+    if ( extension == "VK_EXT_vertex_attribute_divisor" )
+    {
+      return "VK_KHR_vertex_attribute_divisor";
+    }
+    if ( extension == "VK_EXT_pipeline_creation_feedback" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_driver_properties" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_shader_float_controls" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_depth_stencil_resolve" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_NV_fragment_shader_barycentric" )
+    {
+      return "VK_KHR_fragment_shader_barycentric";
+    }
+    if ( extension == "VK_KHR_timeline_semaphore" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_vulkan_memory_model" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_shader_terminate_invocation" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_scalar_block_layout" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_subgroup_size_control" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_spirv_1_4" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_separate_depth_stencil_layouts" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_tooling_info" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_separate_stencil_usage" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_uniform_buffer_standard_layout" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_KHR_buffer_device_address" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_host_query_reset" )
+    {
+      return "VK_VERSION_1_2";
+    }
+    if ( extension == "VK_EXT_extended_dynamic_state" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_shader_demote_to_helper_invocation" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_shader_integer_dot_product" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_texel_buffer_alignment" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_shader_non_semantic_info" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_private_data" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_pipeline_creation_cache_control" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_synchronization2" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_zero_initialize_workgroup_memory" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_ycbcr_2plane_444_formats" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_image_robustness" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_KHR_copy_commands2" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_4444_formats" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_ARM_rasterization_order_attachment_access" )
+    {
+      return "VK_EXT_rasterization_order_attachment_access";
+    }
+    if ( extension == "VK_VALVE_mutable_descriptor_type" )
+    {
+      return "VK_EXT_mutable_descriptor_type";
+    }
+    if ( extension == "VK_KHR_format_feature_flags2" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_extended_dynamic_state2" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    if ( extension == "VK_EXT_global_priority_query" )
+    {
+      return "VK_KHR_global_priority";
+    }
+    if ( extension == "VK_KHR_maintenance4" )
+    {
+      return "VK_VERSION_1_3";
+    }
+    return "";
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeprecatedExtension( std::string const & extension )
+  {
+    return ( extension == "VK_EXT_debug_report" ) || ( extension == "VK_NV_glsl_shader" ) || ( extension == "VK_NV_dedicated_allocation" ) ||
+           ( extension == "VK_AMD_gpu_shader_half_float" ) || ( extension == "VK_IMG_format_pvrtc" ) || ( extension == "VK_NV_external_memory_capabilities" ) ||
+           ( extension == "VK_NV_external_memory" ) ||
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+           ( extension == "VK_NV_external_memory_win32" ) ||
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+           ( extension == "VK_EXT_validation_flags" ) || ( extension == "VK_EXT_shader_subgroup_ballot" ) || ( extension == "VK_EXT_shader_subgroup_vote" ) ||
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+           ( extension == "VK_MVK_ios_surface" ) ||
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+           ( extension == "VK_MVK_macos_surface" ) ||
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+           ( extension == "VK_AMD_gpu_shader_int16" ) || ( extension == "VK_EXT_buffer_device_address" ) || ( extension == "VK_EXT_validation_features" );
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeviceExtension( std::string const & extension )
+  {
+    return ( extension == "VK_KHR_swapchain" ) || ( extension == "VK_KHR_display_swapchain" ) || ( extension == "VK_NV_glsl_shader" ) ||
+           ( extension == "VK_EXT_depth_range_unrestricted" ) || ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" ) ||
+           ( extension == "VK_IMG_filter_cubic" ) || ( extension == "VK_AMD_rasterization_order" ) || ( extension == "VK_AMD_shader_trinary_minmax" ) ||
+           ( extension == "VK_AMD_shader_explicit_vertex_parameter" ) || ( extension == "VK_EXT_debug_marker" ) || ( extension == "VK_KHR_video_queue" ) ||
+           ( extension == "VK_KHR_video_decode_queue" ) || ( extension == "VK_AMD_gcn_shader" ) || ( extension == "VK_NV_dedicated_allocation" ) ||
+           ( extension == "VK_EXT_transform_feedback" ) || ( extension == "VK_NVX_binary_import" ) || ( extension == "VK_NVX_image_view_handle" ) ||
+           ( extension == "VK_AMD_draw_indirect_count" ) || ( extension == "VK_AMD_negative_viewport_height" ) ||
+           ( extension == "VK_AMD_gpu_shader_half_float" ) || ( extension == "VK_AMD_shader_ballot" ) || ( extension == "VK_KHR_video_encode_h264" ) ||
+           ( extension == "VK_KHR_video_encode_h265" ) || ( extension == "VK_KHR_video_decode_h264" ) || ( extension == "VK_AMD_texture_gather_bias_lod" ) ||
+           ( extension == "VK_AMD_shader_info" ) || ( extension == "VK_KHR_dynamic_rendering" ) || ( extension == "VK_AMD_shader_image_load_store_lod" ) ||
+           ( extension == "VK_NV_corner_sampled_image" ) || ( extension == "VK_KHR_multiview" ) || ( extension == "VK_IMG_format_pvrtc" ) ||
+           ( extension == "VK_NV_external_memory" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_NV_external_memory_win32" ) || ( extension == "VK_NV_win32_keyed_mutex" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_device_group" ) || ( extension == "VK_KHR_shader_draw_parameters" ) || ( extension == "VK_EXT_shader_subgroup_ballot" ) ||
+           ( extension == "VK_EXT_shader_subgroup_vote" ) || ( extension == "VK_EXT_texture_compression_astc_hdr" ) ||
+           ( extension == "VK_EXT_astc_decode_mode" ) || ( extension == "VK_EXT_pipeline_robustness" ) || ( extension == "VK_KHR_maintenance1" ) ||
+           ( extension == "VK_KHR_external_memory" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_KHR_external_memory_win32" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_external_memory_fd" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_KHR_win32_keyed_mutex" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_external_semaphore" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_KHR_external_semaphore_win32" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_external_semaphore_fd" ) || ( extension == "VK_KHR_push_descriptor" ) || ( extension == "VK_EXT_conditional_rendering" ) ||
+           ( extension == "VK_KHR_shader_float16_int8" ) || ( extension == "VK_KHR_16bit_storage" ) || ( extension == "VK_KHR_incremental_present" ) ||
+           ( extension == "VK_KHR_descriptor_update_template" ) || ( extension == "VK_NV_clip_space_w_scaling" ) || ( extension == "VK_EXT_display_control" ) ||
+           ( extension == "VK_GOOGLE_display_timing" ) || ( extension == "VK_NV_sample_mask_override_coverage" ) ||
+           ( extension == "VK_NV_geometry_shader_passthrough" ) || ( extension == "VK_NV_viewport_array2" ) ||
+           ( extension == "VK_NVX_multiview_per_view_attributes" ) || ( extension == "VK_NV_viewport_swizzle" ) ||
+           ( extension == "VK_EXT_discard_rectangles" ) || ( extension == "VK_EXT_conservative_rasterization" ) ||
+           ( extension == "VK_EXT_depth_clip_enable" ) || ( extension == "VK_EXT_hdr_metadata" ) || ( extension == "VK_KHR_imageless_framebuffer" ) ||
+           ( extension == "VK_KHR_create_renderpass2" ) || ( extension == "VK_IMG_relaxed_line_rasterization" ) ||
+           ( extension == "VK_KHR_shared_presentable_image" ) || ( extension == "VK_KHR_external_fence" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_KHR_external_fence_win32" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_external_fence_fd" ) || ( extension == "VK_KHR_performance_query" ) || ( extension == "VK_KHR_maintenance2" ) ||
+           ( extension == "VK_KHR_variable_pointers" ) || ( extension == "VK_EXT_external_memory_dma_buf" ) || ( extension == "VK_EXT_queue_family_foreign" ) ||
+           ( extension == "VK_KHR_dedicated_allocation" )
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+        || ( extension == "VK_ANDROID_external_memory_android_hardware_buffer" )
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+        || ( extension == "VK_EXT_sampler_filter_minmax" ) || ( extension == "VK_KHR_storage_buffer_storage_class" ) ||
+           ( extension == "VK_AMD_gpu_shader_int16" )
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+        || ( extension == "VK_AMDX_shader_enqueue" )
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+        || ( extension == "VK_AMD_mixed_attachment_samples" ) || ( extension == "VK_AMD_shader_fragment_mask" ) ||
+           ( extension == "VK_EXT_inline_uniform_block" ) || ( extension == "VK_EXT_shader_stencil_export" ) || ( extension == "VK_EXT_sample_locations" ) ||
+           ( extension == "VK_KHR_relaxed_block_layout" ) || ( extension == "VK_KHR_get_memory_requirements2" ) ||
+           ( extension == "VK_KHR_image_format_list" ) || ( extension == "VK_EXT_blend_operation_advanced" ) ||
+           ( extension == "VK_NV_fragment_coverage_to_color" ) || ( extension == "VK_KHR_acceleration_structure" ) ||
+           ( extension == "VK_KHR_ray_tracing_pipeline" ) || ( extension == "VK_KHR_ray_query" ) || ( extension == "VK_NV_framebuffer_mixed_samples" ) ||
+           ( extension == "VK_NV_fill_rectangle" ) || ( extension == "VK_NV_shader_sm_builtins" ) || ( extension == "VK_EXT_post_depth_coverage" ) ||
+           ( extension == "VK_KHR_sampler_ycbcr_conversion" ) || ( extension == "VK_KHR_bind_memory2" ) ||
+           ( extension == "VK_EXT_image_drm_format_modifier" ) || ( extension == "VK_EXT_validation_cache" ) || ( extension == "VK_EXT_descriptor_indexing" ) ||
+           ( extension == "VK_EXT_shader_viewport_index_layer" )
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+        || ( extension == "VK_KHR_portability_subset" )
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+        || ( extension == "VK_NV_shading_rate_image" ) || ( extension == "VK_NV_ray_tracing" ) || ( extension == "VK_NV_representative_fragment_test" ) ||
+           ( extension == "VK_KHR_maintenance3" ) || ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_filter_cubic" ) ||
+           ( extension == "VK_QCOM_render_pass_shader_resolve" ) || ( extension == "VK_EXT_global_priority" ) ||
+           ( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) ||
+           ( extension == "VK_EXT_external_memory_host" ) || ( extension == "VK_AMD_buffer_marker" ) || ( extension == "VK_KHR_shader_atomic_int64" ) ||
+           ( extension == "VK_KHR_shader_clock" ) || ( extension == "VK_AMD_pipeline_compiler_control" ) || ( extension == "VK_EXT_calibrated_timestamps" ) ||
+           ( extension == "VK_AMD_shader_core_properties" ) || ( extension == "VK_KHR_video_decode_h265" ) || ( extension == "VK_KHR_global_priority" ) ||
+           ( extension == "VK_AMD_memory_overallocation_behavior" ) || ( extension == "VK_EXT_vertex_attribute_divisor" )
+#if defined( VK_USE_PLATFORM_GGP )
+        || ( extension == "VK_GGP_frame_token" )
+#endif /*VK_USE_PLATFORM_GGP*/
+        || ( extension == "VK_EXT_pipeline_creation_feedback" ) || ( extension == "VK_KHR_driver_properties" ) ||
+           ( extension == "VK_KHR_shader_float_controls" ) || ( extension == "VK_NV_shader_subgroup_partitioned" ) ||
+           ( extension == "VK_KHR_depth_stencil_resolve" ) || ( extension == "VK_KHR_swapchain_mutable_format" ) ||
+           ( extension == "VK_NV_compute_shader_derivatives" ) || ( extension == "VK_NV_mesh_shader" ) ||
+           ( extension == "VK_NV_fragment_shader_barycentric" ) || ( extension == "VK_NV_shader_image_footprint" ) ||
+           ( extension == "VK_NV_scissor_exclusive" ) || ( extension == "VK_NV_device_diagnostic_checkpoints" ) ||
+           ( extension == "VK_KHR_timeline_semaphore" ) || ( extension == "VK_INTEL_shader_integer_functions2" ) ||
+           ( extension == "VK_INTEL_performance_query" ) || ( extension == "VK_KHR_vulkan_memory_model" ) || ( extension == "VK_EXT_pci_bus_info" ) ||
+           ( extension == "VK_AMD_display_native_hdr" ) || ( extension == "VK_KHR_shader_terminate_invocation" ) ||
+           ( extension == "VK_EXT_fragment_density_map" ) || ( extension == "VK_EXT_scalar_block_layout" ) ||
+           ( extension == "VK_GOOGLE_hlsl_functionality1" ) || ( extension == "VK_GOOGLE_decorate_string" ) ||
+           ( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_fragment_shading_rate" ) ||
+           ( extension == "VK_AMD_shader_core_properties2" ) || ( extension == "VK_AMD_device_coherent_memory" ) ||
+           ( extension == "VK_EXT_shader_image_atomic_int64" ) || ( extension == "VK_KHR_spirv_1_4" ) || ( extension == "VK_EXT_memory_budget" ) ||
+           ( extension == "VK_EXT_memory_priority" ) || ( extension == "VK_NV_dedicated_allocation_image_aliasing" ) ||
+           ( extension == "VK_KHR_separate_depth_stencil_layouts" ) || ( extension == "VK_EXT_buffer_device_address" ) ||
+           ( extension == "VK_EXT_tooling_info" ) || ( extension == "VK_EXT_separate_stencil_usage" ) || ( extension == "VK_KHR_present_wait" ) ||
+           ( extension == "VK_NV_cooperative_matrix" ) || ( extension == "VK_NV_coverage_reduction_mode" ) ||
+           ( extension == "VK_EXT_fragment_shader_interlock" ) || ( extension == "VK_EXT_ycbcr_image_arrays" ) ||
+           ( extension == "VK_KHR_uniform_buffer_standard_layout" ) || ( extension == "VK_EXT_provoking_vertex" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_EXT_full_screen_exclusive" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_KHR_buffer_device_address" ) || ( extension == "VK_EXT_line_rasterization" ) || ( extension == "VK_EXT_shader_atomic_float" ) ||
+           ( extension == "VK_EXT_host_query_reset" ) || ( extension == "VK_EXT_index_type_uint8" ) || ( extension == "VK_EXT_extended_dynamic_state" ) ||
+           ( extension == "VK_KHR_deferred_host_operations" ) || ( extension == "VK_KHR_pipeline_executable_properties" ) ||
+           ( extension == "VK_EXT_host_image_copy" ) || ( extension == "VK_KHR_map_memory2" ) || ( extension == "VK_EXT_shader_atomic_float2" ) ||
+           ( extension == "VK_EXT_swapchain_maintenance1" ) || ( extension == "VK_EXT_shader_demote_to_helper_invocation" ) ||
+           ( extension == "VK_NV_device_generated_commands" ) || ( extension == "VK_NV_inherited_viewport_scissor" ) ||
+           ( extension == "VK_KHR_shader_integer_dot_product" ) || ( extension == "VK_EXT_texel_buffer_alignment" ) ||
+           ( extension == "VK_QCOM_render_pass_transform" ) || ( extension == "VK_EXT_depth_bias_control" ) || ( extension == "VK_EXT_device_memory_report" ) ||
+           ( extension == "VK_EXT_robustness2" ) || ( extension == "VK_EXT_custom_border_color" ) || ( extension == "VK_GOOGLE_user_type" ) ||
+           ( extension == "VK_KHR_pipeline_library" ) || ( extension == "VK_NV_present_barrier" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) ||
+           ( extension == "VK_KHR_present_id" ) || ( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) ||
+           ( extension == "VK_KHR_video_encode_queue" ) || ( extension == "VK_NV_device_diagnostics_config" ) ||
+           ( extension == "VK_QCOM_render_pass_store_ops" )
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+        || ( extension == "VK_NV_cuda_kernel_launch" )
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+        || ( extension == "VK_NV_low_latency" )
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+        || ( extension == "VK_EXT_metal_objects" )
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+        || ( extension == "VK_KHR_synchronization2" ) || ( extension == "VK_EXT_descriptor_buffer" ) || ( extension == "VK_EXT_graphics_pipeline_library" ) ||
+           ( extension == "VK_AMD_shader_early_and_late_fragment_tests" ) || ( extension == "VK_KHR_fragment_shader_barycentric" ) ||
+           ( extension == "VK_KHR_shader_subgroup_uniform_control_flow" ) || ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) ||
+           ( extension == "VK_NV_fragment_shading_rate_enums" ) || ( extension == "VK_NV_ray_tracing_motion_blur" ) || ( extension == "VK_EXT_mesh_shader" ) ||
+           ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) || ( extension == "VK_EXT_fragment_density_map2" ) ||
+           ( extension == "VK_QCOM_rotated_copy_commands" ) || ( extension == "VK_EXT_image_robustness" ) ||
+           ( extension == "VK_KHR_workgroup_memory_explicit_layout" ) || ( extension == "VK_KHR_copy_commands2" ) ||
+           ( extension == "VK_EXT_image_compression_control" ) || ( extension == "VK_EXT_attachment_feedback_loop_layout" ) ||
+           ( extension == "VK_EXT_4444_formats" ) || ( extension == "VK_EXT_device_fault" ) ||
+           ( extension == "VK_ARM_rasterization_order_attachment_access" ) || ( extension == "VK_EXT_rgba10x6_formats" )
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_NV_acquire_winrt_display" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_VALVE_mutable_descriptor_type" ) || ( extension == "VK_EXT_vertex_input_dynamic_state" ) ||
+           ( extension == "VK_EXT_physical_device_drm" ) || ( extension == "VK_EXT_device_address_binding_report" ) ||
+           ( extension == "VK_EXT_depth_clip_control" ) || ( extension == "VK_EXT_primitive_topology_list_restart" ) ||
+           ( extension == "VK_KHR_format_feature_flags2" )
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+        || ( extension == "VK_FUCHSIA_external_memory" ) || ( extension == "VK_FUCHSIA_external_semaphore" ) || ( extension == "VK_FUCHSIA_buffer_collection" )
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+        || ( extension == "VK_HUAWEI_subpass_shading" ) || ( extension == "VK_HUAWEI_invocation_mask" ) || ( extension == "VK_NV_external_memory_rdma" ) ||
+           ( extension == "VK_EXT_pipeline_properties" ) || ( extension == "VK_EXT_frame_boundary" ) ||
+           ( extension == "VK_EXT_multisampled_render_to_single_sampled" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) ||
+           ( extension == "VK_EXT_color_write_enable" ) || ( extension == "VK_EXT_primitives_generated_query" ) ||
+           ( extension == "VK_KHR_ray_tracing_maintenance1" ) || ( extension == "VK_EXT_global_priority_query" ) ||
+           ( extension == "VK_EXT_image_view_min_lod" ) || ( extension == "VK_EXT_multi_draw" ) || ( extension == "VK_EXT_image_2d_view_of_3d" ) ||
+           ( extension == "VK_EXT_shader_tile_image" ) || ( extension == "VK_EXT_opacity_micromap" )
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+        || ( extension == "VK_NV_displacement_micromap" )
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+        || ( extension == "VK_EXT_load_store_op_none" ) || ( extension == "VK_HUAWEI_cluster_culling_shader" ) ||
+           ( extension == "VK_EXT_border_color_swizzle" ) || ( extension == "VK_EXT_pageable_device_local_memory" ) || ( extension == "VK_KHR_maintenance4" ) ||
+           ( extension == "VK_ARM_shader_core_properties" ) || ( extension == "VK_ARM_scheduling_controls" ) ||
+           ( extension == "VK_EXT_image_sliced_view_of_3d" ) || ( extension == "VK_VALVE_descriptor_set_host_mapping" ) ||
+           ( extension == "VK_EXT_depth_clamp_zero_one" ) || ( extension == "VK_EXT_non_seamless_cube_map" ) || ( extension == "VK_ARM_render_pass_striped" ) ||
+           ( extension == "VK_QCOM_fragment_density_map_offset" ) || ( extension == "VK_NV_copy_memory_indirect" ) ||
+           ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_NV_device_generated_commands_compute" ) ||
+           ( extension == "VK_NV_linear_color_attachment" ) || ( extension == "VK_EXT_image_compression_control_swapchain" ) ||
+           ( extension == "VK_QCOM_image_processing" ) || ( extension == "VK_EXT_nested_command_buffer" ) ||
+           ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || ( extension == "VK_EXT_extended_dynamic_state3" ) ||
+           ( extension == "VK_EXT_subpass_merge_feedback" ) || ( extension == "VK_EXT_shader_module_identifier" ) ||
+           ( extension == "VK_EXT_rasterization_order_attachment_access" ) || ( extension == "VK_NV_optical_flow" ) ||
+           ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" )
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+        || ( extension == "VK_ANDROID_external_format_resolve" )
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+        || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) ||
+           ( extension == "VK_QCOM_tile_properties" ) || ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) ||
+           ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_NV_extended_sparse_address_space" ) ||
+           ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_ARM_shader_core_builtins" ) ||
+           ( extension == "VK_EXT_pipeline_library_group_handles" ) || ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) ||
+           ( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) ||
+           ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_KHR_video_maintenance1" ) ||
+           ( extension == "VK_NV_per_stage_descriptor_set" ) || ( extension == "VK_QCOM_image_processing2" ) ||
+           ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) ||
+           ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || ( extension == "VK_KHR_vertex_attribute_divisor" )
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+        || ( extension == "VK_QNX_external_memory_screen_buffer" )
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+        || ( extension == "VK_MSFT_layered_driver" ) || ( extension == "VK_KHR_calibrated_timestamps" ) || ( extension == "VK_KHR_maintenance6" ) ||
+           ( extension == "VK_NV_descriptor_pool_overallocation" );
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
+  {
+    return ( extension == "VK_KHR_surface" ) || ( extension == "VK_KHR_display" )
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+        || ( extension == "VK_KHR_xlib_surface" )
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+        || ( extension == "VK_KHR_xcb_surface" )
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+        || ( extension == "VK_KHR_wayland_surface" )
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+        || ( extension == "VK_KHR_android_surface" )
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+        || ( extension == "VK_KHR_win32_surface" )
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        || ( extension == "VK_EXT_debug_report" )
+#if defined( VK_USE_PLATFORM_GGP )
+        || ( extension == "VK_GGP_stream_descriptor_surface" )
+#endif /*VK_USE_PLATFORM_GGP*/
+        || ( extension == "VK_NV_external_memory_capabilities" ) || ( extension == "VK_KHR_get_physical_device_properties2" ) ||
+           ( extension == "VK_EXT_validation_flags" )
+#if defined( VK_USE_PLATFORM_VI_NN )
+        || ( extension == "VK_NN_vi_surface" )
+#endif /*VK_USE_PLATFORM_VI_NN*/
+        || ( extension == "VK_KHR_device_group_creation" ) || ( extension == "VK_KHR_external_memory_capabilities" ) ||
+           ( extension == "VK_KHR_external_semaphore_capabilities" ) || ( extension == "VK_EXT_direct_mode_display" )
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+        || ( extension == "VK_EXT_acquire_xlib_display" )
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+        || ( extension == "VK_EXT_display_surface_counter" ) || ( extension == "VK_EXT_swapchain_colorspace" ) ||
+           ( extension == "VK_KHR_external_fence_capabilities" ) || ( extension == "VK_KHR_get_surface_capabilities2" ) ||
+           ( extension == "VK_KHR_get_display_properties2" )
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+        || ( extension == "VK_MVK_ios_surface" )
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+        || ( extension == "VK_MVK_macos_surface" )
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+        || ( extension == "VK_EXT_debug_utils" )
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+        || ( extension == "VK_FUCHSIA_imagepipe_surface" )
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+        || ( extension == "VK_EXT_metal_surface" )
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+        || ( extension == "VK_KHR_surface_protected_capabilities" ) || ( extension == "VK_EXT_validation_features" ) ||
+           ( extension == "VK_EXT_headless_surface" ) || ( extension == "VK_EXT_surface_maintenance1" ) || ( extension == "VK_EXT_acquire_drm_display" )
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+        || ( extension == "VK_EXT_directfb_surface" )
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+        || ( extension == "VK_QNX_screen_surface" )
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+        || ( extension == "VK_KHR_portability_enumeration" ) || ( extension == "VK_GOOGLE_surfaceless_query" ) ||
+           ( extension == "VK_LUNARG_direct_driver_loading" ) || ( extension == "VK_EXT_layer_settings" );
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isObsoletedExtension( std::string const & extension )
+  {
+    return ( extension == "VK_AMD_negative_viewport_height" );
+  }
+
+  VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isPromotedExtension( std::string const & extension )
+  {
+    return ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" ) || ( extension == "VK_EXT_debug_marker" ) || ( extension == "VK_AMD_draw_indirect_count" ) ||
+           ( extension == "VK_KHR_dynamic_rendering" ) || ( extension == "VK_KHR_multiview" ) ||
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+           ( extension == "VK_NV_win32_keyed_mutex" ) ||
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+           ( extension == "VK_KHR_get_physical_device_properties2" ) || ( extension == "VK_KHR_device_group" ) ||
+           ( extension == "VK_KHR_shader_draw_parameters" ) || ( extension == "VK_EXT_texture_compression_astc_hdr" ) ||
+           ( extension == "VK_KHR_maintenance1" ) || ( extension == "VK_KHR_device_group_creation" ) ||
+           ( extension == "VK_KHR_external_memory_capabilities" ) || ( extension == "VK_KHR_external_memory" ) ||
+           ( extension == "VK_KHR_external_semaphore_capabilities" ) || ( extension == "VK_KHR_external_semaphore" ) ||
+           ( extension == "VK_KHR_shader_float16_int8" ) || ( extension == "VK_KHR_16bit_storage" ) || ( extension == "VK_KHR_descriptor_update_template" ) ||
+           ( extension == "VK_KHR_imageless_framebuffer" ) || ( extension == "VK_KHR_create_renderpass2" ) ||
+           ( extension == "VK_KHR_external_fence_capabilities" ) || ( extension == "VK_KHR_external_fence" ) || ( extension == "VK_KHR_maintenance2" ) ||
+           ( extension == "VK_KHR_variable_pointers" ) || ( extension == "VK_KHR_dedicated_allocation" ) || ( extension == "VK_EXT_sampler_filter_minmax" ) ||
+           ( extension == "VK_KHR_storage_buffer_storage_class" ) || ( extension == "VK_EXT_inline_uniform_block" ) ||
+           ( extension == "VK_KHR_relaxed_block_layout" ) || ( extension == "VK_KHR_get_memory_requirements2" ) ||
+           ( extension == "VK_KHR_image_format_list" ) || ( extension == "VK_KHR_sampler_ycbcr_conversion" ) || ( extension == "VK_KHR_bind_memory2" ) ||
+           ( extension == "VK_EXT_descriptor_indexing" ) || ( extension == "VK_EXT_shader_viewport_index_layer" ) || ( extension == "VK_KHR_maintenance3" ) ||
+           ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_global_priority" ) ||
+           ( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) ||
+           ( extension == "VK_KHR_shader_atomic_int64" ) || ( extension == "VK_EXT_calibrated_timestamps" ) ||
+           ( extension == "VK_EXT_vertex_attribute_divisor" ) || ( extension == "VK_EXT_pipeline_creation_feedback" ) ||
+           ( extension == "VK_KHR_driver_properties" ) || ( extension == "VK_KHR_shader_float_controls" ) || ( extension == "VK_KHR_depth_stencil_resolve" ) ||
+           ( extension == "VK_NV_fragment_shader_barycentric" ) || ( extension == "VK_KHR_timeline_semaphore" ) ||
+           ( extension == "VK_KHR_vulkan_memory_model" ) || ( extension == "VK_KHR_shader_terminate_invocation" ) ||
+           ( extension == "VK_EXT_scalar_block_layout" ) || ( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_spirv_1_4" ) ||
+           ( extension == "VK_KHR_separate_depth_stencil_layouts" ) || ( extension == "VK_EXT_tooling_info" ) ||
+           ( extension == "VK_EXT_separate_stencil_usage" ) || ( extension == "VK_KHR_uniform_buffer_standard_layout" ) ||
+           ( extension == "VK_KHR_buffer_device_address" ) || ( extension == "VK_EXT_host_query_reset" ) || ( extension == "VK_EXT_extended_dynamic_state" ) ||
+           ( extension == "VK_EXT_shader_demote_to_helper_invocation" ) || ( extension == "VK_KHR_shader_integer_dot_product" ) ||
+           ( extension == "VK_EXT_texel_buffer_alignment" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) || ( extension == "VK_EXT_private_data" ) ||
+           ( extension == "VK_EXT_pipeline_creation_cache_control" ) || ( extension == "VK_KHR_synchronization2" ) ||
+           ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) ||
+           ( extension == "VK_EXT_image_robustness" ) || ( extension == "VK_KHR_copy_commands2" ) || ( extension == "VK_EXT_4444_formats" ) ||
+           ( extension == "VK_ARM_rasterization_order_attachment_access" ) || ( extension == "VK_VALVE_mutable_descriptor_type" ) ||
+           ( extension == "VK_KHR_format_feature_flags2" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) ||
+           ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_KHR_maintenance4" );
+  }
+}  // namespace VULKAN_HPP_NAMESPACE
+
+#endif
diff --git a/include/vulkan/vulkan_format_traits.hpp b/include/vulkan/vulkan_format_traits.hpp
index 700dee4..8f26981 100644
--- a/include/vulkan/vulkan_format_traits.hpp
+++ b/include/vulkan/vulkan_format_traits.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -12,6 +12,7 @@
 
 namespace VULKAN_HPP_NAMESPACE
 {
+
   //=====================
   //=== Format Traits ===
   //=====================
@@ -362,6 +363,8 @@
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8;
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8;
       case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 4;
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR: return 2;
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR: return 1;
 
       default: VULKAN_HPP_ASSERT( false ); return 0;
     }
@@ -619,6 +622,8 @@
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return "PVRTC2_2BPP";
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return "PVRTC2_4BPP";
       case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return "32-bit";
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR: return "16-bit";
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR: return "8-bit alpha";
 
       default: VULKAN_HPP_ASSERT( false ); return "";
     }
@@ -1592,7 +1597,7 @@
         {
           case 0: return 10;
           case 1: return 11;
-          case 2: return 10;
+          case 2: return 11;
           default: VULKAN_HPP_ASSERT( false ); return 0;
         }
       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32:
@@ -2007,6 +2012,21 @@
           case 1: return 16;
           default: VULKAN_HPP_ASSERT( false ); return 0;
         }
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR:
+        switch ( component )
+        {
+          case 0: return 1;
+          case 1: return 5;
+          case 2: return 5;
+          case 3: return 5;
+          default: VULKAN_HPP_ASSERT( false ); return 0;
+        }
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR:
+        switch ( component )
+        {
+          case 0: return 8;
+          default: VULKAN_HPP_ASSERT( false ); return 0;
+        }
 
       default: return 0;
     }
@@ -2264,6 +2284,8 @@
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4;
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4;
       case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 2;
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR: return 4;
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR: return 1;
 
       default: return 0;
     }
@@ -2328,8 +2350,8 @@
         switch ( component )
         {
           case 0: return "B";
-          case 1: return "R";
-          case 2: return "G";
+          case 1: return "G";
+          case 2: return "R";
           case 3: return "A";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
@@ -3164,21 +3186,21 @@
         switch ( component )
         {
           case 0: return "R";
-          case 1: return "B";
+          case 1: return "G";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint:
         switch ( component )
         {
           case 0: return "R";
-          case 1: return "B";
+          case 1: return "G";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat:
         switch ( component )
         {
           case 0: return "R";
-          case 1: return "B";
+          case 1: return "G";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint:
@@ -4284,6 +4306,21 @@
           case 1: return "G";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR:
+        switch ( component )
+        {
+          case 0: return "A";
+          case 1: return "B";
+          case 2: return "G";
+          case 3: return "R";
+          default: VULKAN_HPP_ASSERT( false ); return "";
+        }
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR:
+        switch ( component )
+        {
+          case 0: return "A";
+          default: VULKAN_HPP_ASSERT( false ); return "";
+        }
 
       default: return "";
     }
@@ -5392,7 +5429,7 @@
       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock:
         switch ( component )
         {
-          case 0: return "SRGB";
+          case 0: return "SNORM";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock:
@@ -5405,8 +5442,8 @@
       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock:
         switch ( component )
         {
-          case 0: return "SRGB";
-          case 1: return "SRGB";
+          case 0: return "SNORM";
+          case 1: return "SNORM";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock:
@@ -6304,6 +6341,21 @@
           case 1: return "SINT";
           default: VULKAN_HPP_ASSERT( false ); return "";
         }
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR:
+        switch ( component )
+        {
+          case 0: return "UNORM";
+          case 1: return "UNORM";
+          case 2: return "UNORM";
+          case 3: return "UNORM";
+          default: VULKAN_HPP_ASSERT( false ); return "";
+        }
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR:
+        switch ( component )
+        {
+          case 0: return "UNORM";
+          default: VULKAN_HPP_ASSERT( false ); return "";
+        }
 
       default: return "";
     }
@@ -6744,6 +6796,7 @@
       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 16;
       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 16;
       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 16;
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR: return 16;
 
       default: return 0;
     }
@@ -7605,6 +7658,8 @@
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1;
       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1;
       case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 1;
+      case VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16KHR: return 1;
+      case VULKAN_HPP_NAMESPACE::Format::eA8UnormKHR: return 1;
 
       default: VULKAN_HPP_ASSERT( false ); return 0;
     }
diff --git a/include/vulkan/vulkan_fuchsia.h b/include/vulkan/vulkan_fuchsia.h
index 61774ff..f60907d 100644
--- a/include/vulkan/vulkan_fuchsia.h
+++ b/include/vulkan/vulkan_fuchsia.h
@@ -2,7 +2,7 @@
 #define VULKAN_FUCHSIA_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_FUCHSIA_imagepipe_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_FUCHSIA_imagepipe_surface 1
 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
@@ -41,6 +42,7 @@
 #endif
 
 
+// VK_FUCHSIA_external_memory is a preprocessor guard. Do not pass it to API calls.
 #define VK_FUCHSIA_external_memory 1
 #define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
 #define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory"
@@ -81,6 +83,7 @@
 #endif
 
 
+// VK_FUCHSIA_external_semaphore is a preprocessor guard. Do not pass it to API calls.
 #define VK_FUCHSIA_external_semaphore 1
 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore"
@@ -115,6 +118,7 @@
 #endif
 
 
+// VK_FUCHSIA_buffer_collection is a preprocessor guard. Do not pass it to API calls.
 #define VK_FUCHSIA_buffer_collection 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
 #define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp
index 724754f..c678ac9 100644
--- a/include/vulkan/vulkan_funcs.hpp
+++ b/include/vulkan/vulkan_funcs.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -37,13 +37,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Instance instance;
-    VkResult                       result =
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                          reinterpret_cast<VkInstance *>( &instance ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
+                          reinterpret_cast<VkInstance *>( &instance ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), instance );
+    return createResultValueType( result, instance );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -54,13 +54,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Instance instance;
-    VkResult                       result =
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                          reinterpret_cast<VkInstance *>( &instance ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique" );
+                          reinterpret_cast<VkInstance *>( &instance ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>( instance, ObjectDestroy<NoParent, Dispatch>( allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -102,33 +102,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator> physicalDevices;
     uint32_t                                                                   physicalDeviceCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
       {
         physicalDevices.resize( physicalDeviceCount );
-        result = d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
     VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
     if ( physicalDeviceCount < physicalDevices.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
-      if ( physicalDeviceCount < physicalDevices.size() )
-      {
-        physicalDevices.resize( physicalDeviceCount );
-      }
+      physicalDevices.resize( physicalDeviceCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDevices );
+    return createResultValueType( result, physicalDevices );
   }
 
   template <typename PhysicalDeviceAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDevice>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDevice>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator>>::type
                        Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const
   {
@@ -136,27 +133,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator> physicalDevices( physicalDeviceAllocator );
     uint32_t                                                                   physicalDeviceCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
       {
         physicalDevices.resize( physicalDeviceCount );
-        result = d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
     VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
     if ( physicalDeviceCount < physicalDevices.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
-      if ( physicalDeviceCount < physicalDevices.size() )
-      {
-        physicalDevices.resize( physicalDeviceCount );
-      }
+      physicalDevices.resize( physicalDeviceCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDevices );
+    return createResultValueType( result, physicalDevices );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -236,16 +230,17 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
-    VkResult                                    result = d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice,
-                                                                  static_cast<VkFormat>( format ),
-                                                                  static_cast<VkImageType>( type ),
-                                                                  static_cast<VkImageTiling>( tiling ),
-                                                                  static_cast<VkImageUsageFlags>( usage ),
-                                                                  static_cast<VkImageCreateFlags>( flags ),
-                                                                  reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice,
+                                                  static_cast<VkFormat>( format ),
+                                                  static_cast<VkImageType>( type ),
+                                                  static_cast<VkImageTiling>( tiling ),
+                                                  static_cast<VkImageUsageFlags>( usage ),
+                                                  static_cast<VkImageCreateFlags>( flags ),
+                                                  reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), imageFormatProperties );
+    return createResultValueType( result, imageFormatProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -306,7 +301,7 @@
   template <typename QueueFamilyPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator>
     PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
   {
@@ -339,7 +334,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties
-    PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                         PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
@@ -409,14 +404,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Device device;
-    VkResult                     result =
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDevice( m_physicalDevice,
                         reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                        reinterpret_cast<VkDevice *>( &device ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
+                        reinterpret_cast<VkDevice *>( &device ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), device );
+    return createResultValueType( result, device );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -429,15 +424,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Device device;
-    VkResult                     result =
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDevice( m_physicalDevice,
                         reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                        reinterpret_cast<VkDevice *>( &device ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique" );
+                        reinterpret_cast<VkDevice *>( &device ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                                  UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>( device, ObjectDestroy<NoParent, Dispatch>( allocator, d ) ) );
+    return createResultValueType( result, UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>( device, ObjectDestroy<NoParent, Dispatch>( allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -480,34 +474,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties;
     uint32_t                                                                             propertyCount;
-    VkResult                                                                             result;
+    VULKAN_HPP_NAMESPACE::Result                                                         result;
     do
     {
-      result = d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateInstanceExtensionProperties(
-          layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceExtensionProperties(
+          layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename ExtensionPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, ExtensionProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
                        enumerateInstanceExtensionProperties( Optional<const std::string>    layerName,
                                                              ExtensionPropertiesAllocator & extensionPropertiesAllocator,
@@ -517,28 +508,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
     uint32_t                                                                             propertyCount;
-    VkResult                                                                             result;
+    VULKAN_HPP_NAMESPACE::Result                                                         result;
     do
     {
-      result = d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateInstanceExtensionProperties(
-          layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceExtensionProperties(
+          layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -562,34 +550,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties;
     uint32_t                                                                             propertyCount;
-    VkResult                                                                             result;
+    VULKAN_HPP_NAMESPACE::Result                                                         result;
     do
     {
-      result = d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateDeviceExtensionProperties(
-          m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceExtensionProperties(
+          m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename ExtensionPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, ExtensionProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
                        PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string>    layerName,
                                                         ExtensionPropertiesAllocator & extensionPropertiesAllocator,
@@ -599,28 +584,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
     uint32_t                                                                             propertyCount;
-    VkResult                                                                             result;
+    VULKAN_HPP_NAMESPACE::Result                                                         result;
     do
     {
-      result = d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateDeviceExtensionProperties(
-          m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceExtensionProperties(
+          m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -642,33 +624,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties;
     uint32_t                                                                     propertyCount;
-    VkResult                                                                     result;
+    VULKAN_HPP_NAMESPACE::Result                                                 result;
     do
     {
-      result = d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename LayerPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, LayerProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
                        enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d )
   {
@@ -676,27 +655,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
     uint32_t                                                                     propertyCount;
-    VkResult                                                                     result;
+    VULKAN_HPP_NAMESPACE::Result                                                 result;
     do
     {
-      result = d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -718,33 +694,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties;
     uint32_t                                                                     propertyCount;
-    VkResult                                                                     result;
+    VULKAN_HPP_NAMESPACE::Result                                                 result;
     do
     {
-      result = d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename LayerPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, LayerProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
                        PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const
   {
@@ -752,27 +725,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
     uint32_t                                                                     propertyCount;
-    VkResult                                                                     result;
+    VULKAN_HPP_NAMESPACE::Result                                                 result;
     do
     {
-      result = d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -787,7 +757,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue
-    Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                         Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
@@ -815,10 +785,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -835,10 +806,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueueWaitIdle( m_queue );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkQueueWaitIdle( m_queue ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -855,10 +826,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkDeviceWaitIdle( m_device );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkDeviceWaitIdle( m_device ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -885,14 +856,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkAllocateMemory( m_device,
                           reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                          reinterpret_cast<VkDeviceMemory *>( &memory ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
+                          reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memory );
+    return createResultValueType( result, memory );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -905,14 +876,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkAllocateMemory( m_device,
                           reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                          reinterpret_cast<VkDeviceMemory *>( &memory ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique" );
+                          reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>( memory, ObjectFree<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -991,16 +962,16 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    void *   pData;
-    VkResult result = d.vkMapMemory( m_device,
-                                     static_cast<VkDeviceMemory>( memory ),
-                                     static_cast<VkDeviceSize>( offset ),
-                                     static_cast<VkDeviceSize>( size ),
-                                     static_cast<VkMemoryMapFlags>( flags ),
-                                     &pData );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
+    void *                       pData;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMapMemory( m_device,
+                                                                                                    static_cast<VkDeviceMemory>( memory ),
+                                                                                                    static_cast<VkDeviceSize>( offset ),
+                                                                                                    static_cast<VkDeviceSize>( size ),
+                                                                                                    static_cast<VkMemoryMapFlags>( flags ),
+                                                                                                    &pData ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pData );
+    return createResultValueType( result, pData );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -1028,10 +999,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -1053,10 +1025,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -1101,11 +1074,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -1127,11 +1100,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -1221,7 +1194,7 @@
   template <typename SparseImageMemoryRequirementsAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator>
                                          Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image              image,
                                               SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,
@@ -1312,7 +1285,7 @@
   template <typename SparseImageFormatPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator>
                                          PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
                                                     VULKAN_HPP_NAMESPACE::ImageType           type,
@@ -1371,11 +1344,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -1399,15 +1372,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateFence( m_device,
                        reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
+                       reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fence );
+    return createResultValueType( result, fence );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -1417,15 +1390,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateFence( m_device,
                        reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique" );
+                       reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -1493,10 +1466,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -1513,10 +1487,9 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -1544,11 +1517,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -1577,14 +1549,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSemaphore( m_device,
                            reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkSemaphore *>( &semaphore ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
+                           reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), semaphore );
+    return createResultValueType( result, semaphore );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -1597,16 +1569,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSemaphore( m_device,
                            reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkSemaphore *>( &semaphore ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique" );
+                           reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( semaphore, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( semaphore, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -1677,15 +1648,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Event event;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Event  event;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateEvent( m_device,
                        reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkEvent *>( &event ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
+                       reinterpret_cast<VkEvent *>( &event ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), event );
+    return createResultValueType( result, event );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -1695,15 +1666,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Event event;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Event  event;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateEvent( m_device,
                        reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkEvent *>( &event ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique" );
+                       reinterpret_cast<VkEvent *>( &event ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>( event, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -1768,10 +1739,9 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus",
-                 { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -1791,10 +1761,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSetEvent( m_device, static_cast<VkEvent>( event ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -1811,10 +1781,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkResetEvent( m_device, static_cast<VkEvent>( event ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -1841,14 +1811,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateQueryPool( m_device,
                            reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkQueryPool *>( &queryPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
+                           reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), queryPool );
+    return createResultValueType( result, queryPool );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -1861,16 +1831,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateQueryPool( m_device,
                            reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkQueryPool *>( &queryPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique" );
+                           reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( queryPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( queryPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -1957,15 +1926,15 @@
 
     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkGetQueryPoolResults( m_device,
-                                               static_cast<VkQueryPool>( queryPool ),
-                                               firstQuery,
-                                               queryCount,
-                                               data.size() * sizeof( DataType ),
-                                               reinterpret_cast<void *>( data.data() ),
-                                               static_cast<VkDeviceSize>( stride ),
-                                               static_cast<VkQueryResultFlags>( flags ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetQueryPoolResults( m_device,
+                                                                                                              static_cast<VkQueryPool>( queryPool ),
+                                                                                                              firstQuery,
+                                                                                                              queryCount,
+                                                                                                              data.size() * sizeof( DataType ),
+                                                                                                              reinterpret_cast<void *>( data.data() ),
+                                                                                                              static_cast<VkDeviceSize>( stride ),
+                                                                                                              static_cast<VkQueryResultFlags>( flags ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
@@ -1982,18 +1951,17 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetQueryPoolResults( m_device,
-                                               static_cast<VkQueryPool>( queryPool ),
-                                               firstQuery,
-                                               queryCount,
-                                               sizeof( DataType ),
-                                               reinterpret_cast<void *>( &data ),
-                                               static_cast<VkDeviceSize>( stride ),
-                                               static_cast<VkQueryResultFlags>( flags ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetQueryPoolResults( m_device,
+                                                                                                              static_cast<VkQueryPool>( queryPool ),
+                                                                                                              firstQuery,
+                                                                                                              queryCount,
+                                                                                                              sizeof( DataType ),
+                                                                                                              reinterpret_cast<void *>( &data ),
+                                                                                                              static_cast<VkDeviceSize>( stride ),
+                                                                                                              static_cast<VkQueryResultFlags>( flags ) ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
     return ResultValue<DataType>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
   }
@@ -2020,14 +1988,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Buffer buffer;
-    VkResult                     result =
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateBuffer( m_device,
                         reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                        reinterpret_cast<VkBuffer *>( &buffer ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
+                        reinterpret_cast<VkBuffer *>( &buffer ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), buffer );
+    return createResultValueType( result, buffer );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2038,14 +2006,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Buffer buffer;
-    VkResult                     result =
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateBuffer( m_device,
                         reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                        reinterpret_cast<VkBuffer *>( &buffer ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique" );
+                        reinterpret_cast<VkBuffer *>( &buffer ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>( buffer, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -2120,14 +2088,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BufferView view;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateBufferView( m_device,
                             reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                            reinterpret_cast<VkBufferView *>( &view ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
+                            reinterpret_cast<VkBufferView *>( &view ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), view );
+    return createResultValueType( result, view );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2140,14 +2108,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BufferView view;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateBufferView( m_device,
                             reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                            reinterpret_cast<VkBufferView *>( &view ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique" );
+                            reinterpret_cast<VkBufferView *>( &view ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>( view, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -2219,15 +2187,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Image image;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Image  image;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateImage( m_device,
                        reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkImage *>( &image ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
+                       reinterpret_cast<VkImage *>( &image ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), image );
+    return createResultValueType( result, image );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2237,15 +2205,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Image image;
-    VkResult                    result =
+    VULKAN_HPP_NAMESPACE::Image  image;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateImage( m_device,
                        reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                       reinterpret_cast<VkImage *>( &image ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique" );
+                       reinterpret_cast<VkImage *>( &image ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>( image, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -2350,14 +2318,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageView view;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateImageView( m_device,
                            reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkImageView *>( &view ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
+                           reinterpret_cast<VkImageView *>( &view ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), view );
+    return createResultValueType( result, view );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2370,14 +2338,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageView view;
-    VkResult                        result =
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateImageView( m_device,
                            reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                           reinterpret_cast<VkImageView *>( &view ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique" );
+                           reinterpret_cast<VkImageView *>( &view ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>( view, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -2452,14 +2420,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateShaderModule( m_device,
                               reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                              reinterpret_cast<VkShaderModule *>( &shaderModule ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
+                              reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), shaderModule );
+    return createResultValueType( result, shaderModule );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2472,16 +2440,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateShaderModule( m_device,
                               reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                              reinterpret_cast<VkShaderModule *>( &shaderModule ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique" );
+                              reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( shaderModule, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( shaderModule, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -2555,14 +2522,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
-    VkResult                            result =
+    VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePipelineCache( m_device,
                                reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkPipelineCache *>( &pipelineCache ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
+                               reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelineCache );
+    return createResultValueType( result, pipelineCache );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -2575,16 +2542,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
-    VkResult                            result =
+    VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePipelineCache( m_device,
                                reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkPipelineCache *>( &pipelineCache ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique" );
+                               reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( pipelineCache, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( pipelineCache, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -2648,33 +2614,31 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Uint8_tAllocator, typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
-    Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
+                       Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<uint8_t, Uint8_tAllocator> data;
     size_t                                 dataSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr );
-      if ( ( result == VK_SUCCESS ) && dataSize )
+      result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
       {
         data.resize( dataSize );
-        result = d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
     VULKAN_HPP_ASSERT( dataSize <= data.size() );
     if ( dataSize < data.size() )
     {
-      VULKAN_HPP_ASSERT( dataSize <= data.size() );
-      if ( dataSize < data.size() )
-      {
-        data.resize( dataSize );
-      }
+      data.resize( dataSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename Uint8_tAllocator,
@@ -2688,27 +2652,25 @@
 
     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
     size_t                                 dataSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr );
-      if ( ( result == VK_SUCCESS ) && dataSize )
+      result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
       {
         data.resize( dataSize );
-        result = d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
     VULKAN_HPP_ASSERT( dataSize <= data.size() );
     if ( dataSize < data.size() )
     {
-      VULKAN_HPP_ASSERT( dataSize <= data.size() );
-      if ( dataSize < data.size() )
-      {
-        data.resize( dataSize );
-      }
+      data.resize( dataSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -2732,11 +2694,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkMergePipelineCaches(
-      m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMergePipelineCaches(
+      m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -2768,14 +2730,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
-    VkResult                                                       result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -2785,7 +2747,7 @@
   template <typename PipelineAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                                          Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
@@ -2796,14 +2758,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
-    VkResult                                                       result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -2820,14 +2782,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -2845,14 +2807,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
@@ -2869,7 +2831,7 @@
   template <typename Dispatch,
             typename PipelineAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                                          Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
@@ -2880,14 +2842,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
@@ -2911,14 +2873,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateGraphicsPipelines(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -2957,14 +2919,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
-    VkResult                                                       result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -2974,7 +2936,7 @@
   template <typename PipelineAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                                          Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
@@ -2985,14 +2947,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
-    VkResult                                                       result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -3009,14 +2971,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -3034,14 +2996,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
@@ -3058,7 +3020,7 @@
   template <typename Dispatch,
             typename PipelineAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                                          Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
@@ -3069,14 +3031,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
@@ -3100,14 +3062,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateComputePipelines(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -3187,14 +3149,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePipelineLayout( m_device,
                                 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
+                                reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelineLayout );
+    return createResultValueType( result, pipelineLayout );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3207,16 +3169,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePipelineLayout( m_device,
                                 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique" );
+                                reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( pipelineLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( pipelineLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -3288,14 +3249,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Sampler sampler;
-    VkResult                      result =
+    VULKAN_HPP_NAMESPACE::Result  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSampler( m_device,
                          reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                         reinterpret_cast<VkSampler *>( &sampler ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
+                         reinterpret_cast<VkSampler *>( &sampler ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), sampler );
+    return createResultValueType( result, sampler );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3306,14 +3267,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Sampler sampler;
-    VkResult                      result =
+    VULKAN_HPP_NAMESPACE::Result  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSampler( m_device,
                          reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                         reinterpret_cast<VkSampler *>( &sampler ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique" );
+                         reinterpret_cast<VkSampler *>( &sampler ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>( sampler, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -3388,14 +3349,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
-    VkResult                                  result = d.vkCreateDescriptorSetLayout(
+    VULKAN_HPP_NAMESPACE::Result              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorSetLayout(
       m_device,
       reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
+      reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), setLayout );
+    return createResultValueType( result, setLayout );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3408,16 +3369,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
-    VkResult                                  result = d.vkCreateDescriptorSetLayout(
+    VULKAN_HPP_NAMESPACE::Result              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorSetLayout(
       m_device,
       reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique" );
+      reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( setLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( setLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -3495,14 +3455,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDescriptorPool( m_device,
                                 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
+                                reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), descriptorPool );
+    return createResultValueType( result, descriptorPool );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3515,16 +3475,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDescriptorPool( m_device,
                                 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique" );
+                                reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( descriptorPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( descriptorPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -3615,17 +3574,17 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
-    VkResult                                                                 result = d.vkAllocateDescriptorSets(
-      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
+    VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
+      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), descriptorSets );
+    return createResultValueType( result, descriptorSets );
   }
 
   template <typename DescriptorSetAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, DescriptorSet>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::DescriptorSet>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator>>::type
                        Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
                                     DescriptorSetAllocator &                                descriptorSetAllocator,
@@ -3634,11 +3593,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator );
-    VkResult                                                                 result = d.vkAllocateDescriptorSets(
-      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
+    VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
+      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), descriptorSets );
+    return createResultValueType( result, descriptorSets );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3650,9 +3609,9 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
-    VkResult                                         result = d.vkAllocateDescriptorSets(
-      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
+    VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
+      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
     uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
     PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
@@ -3660,13 +3619,13 @@
     {
       uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSet, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueDescriptorSets ) );
+    return createResultValueType( result, std::move( uniqueDescriptorSets ) );
   }
 
   template <typename Dispatch,
             typename DescriptorSetAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type
     Device::allocateDescriptorSetsUnique( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
@@ -3676,9 +3635,9 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
-    VkResult                                         result = d.vkAllocateDescriptorSets(
-      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
+    VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
+      m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator );
     uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
     PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
@@ -3686,7 +3645,7 @@
     {
       uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSet, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueDescriptorSets ) );
+    return createResultValueType( result, std::move( uniqueDescriptorSets ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -3794,14 +3753,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateFramebuffer( m_device,
                              reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkFramebuffer *>( &framebuffer ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
+                             reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), framebuffer );
+    return createResultValueType( result, framebuffer );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3814,16 +3773,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateFramebuffer( m_device,
                              reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkFramebuffer *>( &framebuffer ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique" );
+                             reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( framebuffer, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( framebuffer, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -3897,14 +3855,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass( m_device,
                             reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                            reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
+                            reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), renderPass );
+    return createResultValueType( result, renderPass );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -3917,16 +3875,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass( m_device,
                             reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                            reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique" );
+                            reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -4023,14 +3980,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCommandPool( m_device,
                              reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkCommandPool *>( &commandPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
+                             reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), commandPool );
+    return createResultValueType( result, commandPool );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -4043,16 +4000,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCommandPool( m_device,
                              reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkCommandPool *>( &commandPool ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique" );
+                             reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( commandPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( commandPool, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -4119,10 +4075,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -4144,17 +4101,17 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
-    VkResult                                                                 result = d.vkAllocateCommandBuffers(
-      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
+    VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
+      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), commandBuffers );
+    return createResultValueType( result, commandBuffers );
   }
 
   template <typename CommandBufferAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, CommandBuffer>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::CommandBuffer>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator>>::type
                        Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
                                     CommandBufferAllocator &                                commandBufferAllocator,
@@ -4163,11 +4120,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator );
-    VkResult                                                                 result = d.vkAllocateCommandBuffers(
-      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
+    VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
+      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), commandBuffers );
+    return createResultValueType( result, commandBuffers );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -4179,9 +4136,9 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
-    VkResult                                         result = d.vkAllocateCommandBuffers(
-      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
+    VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
+      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
     uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
     PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
@@ -4189,13 +4146,13 @@
     {
       uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffer, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueCommandBuffers ) );
+    return createResultValueType( result, std::move( uniqueCommandBuffers ) );
   }
 
   template <typename Dispatch,
             typename CommandBufferAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator>>::type
     Device::allocateCommandBuffersUnique( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
@@ -4205,9 +4162,9 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
-    VkResult                                         result = d.vkAllocateCommandBuffers(
-      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
+    VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
+      m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator );
     uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
     PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
@@ -4215,7 +4172,7 @@
     {
       uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffer, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueCommandBuffers ) );
+    return createResultValueType( result, std::move( uniqueCommandBuffers ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -4283,10 +4240,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -4303,10 +4261,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkEndCommandBuffer( m_commandBuffer );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -4324,10 +4282,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -5240,11 +5199,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint32_t apiVersion;
-    VkResult result = d.vkEnumerateInstanceVersion( &apiVersion );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
+    uint32_t                     apiVersion;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), apiVersion );
+    return createResultValueType( result, apiVersion );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -5264,10 +5223,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -5287,10 +5247,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -5362,34 +5323,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
     uint32_t                                                                                                 physicalDeviceGroupCount;
-    VkResult                                                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                                                             result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
       {
         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-        result = d.vkEnumeratePhysicalDeviceGroups(
-          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups(
+          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
-      if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
-      {
-        physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-      }
+      physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDeviceGroupProperties );
+    return createResultValueType( result, physicalDeviceGroupProperties );
   }
 
   template <typename PhysicalDeviceGroupPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
     Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
@@ -5398,29 +5355,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
       physicalDeviceGroupPropertiesAllocator );
-    uint32_t physicalDeviceGroupCount;
-    VkResult result;
+    uint32_t                     physicalDeviceGroupCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
       {
         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-        result = d.vkEnumeratePhysicalDeviceGroups(
-          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups(
+          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
-      if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
-      {
-        physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-      }
+      physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDeviceGroupProperties );
+    return createResultValueType( result, physicalDeviceGroupProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -5449,13 +5402,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetImageMemoryRequirements2(
       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -5488,13 +5441,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetBufferMemoryRequirements2(
       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -5543,7 +5496,7 @@
   template <typename SparseImageMemoryRequirements2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                                          Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
                                                SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
@@ -5592,12 +5545,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                      structureChain;
-    VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
 
     return structureChain;
@@ -5626,11 +5580,12 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                        structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
 
@@ -5661,13 +5616,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format,
-                                                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+    PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                structureChain;
-    VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
 
     return structureChain;
@@ -5694,28 +5649,30 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
-    VkResult                                     result = d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
-                                                                   reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                   reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
+                                                   reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), imageFormatProperties );
+    return createResultValueType( result, imageFormatProperties );
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
     PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     StructureChain<X, Y, Z...>                     structureChain;
     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
-    VkResult                                       result                = d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
-                                                                   reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                   reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
+    VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
+                                                   reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChain );
+    return createResultValueType( result, structureChain );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -5754,7 +5711,7 @@
   template <typename QueueFamilyProperties2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
     PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
   {
@@ -5853,7 +5810,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
-    PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                         PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
@@ -5864,11 +5821,12 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                              structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
       structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
@@ -5918,7 +5876,7 @@
   template <typename SparseImageFormatProperties2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
     PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
                                                      SparseImageFormatProperties2Allocator &                            sparseImageFormatProperties2Allocator,
@@ -6001,14 +5959,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
-    VkResult                                     result = d.vkCreateSamplerYcbcrConversion(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversion(
       m_device,
       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
+      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), ycbcrConversion );
+    return createResultValueType( result, ycbcrConversion );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -6021,16 +5979,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
-    VkResult                                     result = d.vkCreateSamplerYcbcrConversion(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversion(
       m_device,
       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique" );
+      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -6109,14 +6066,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
-    VkResult                                       result = d.vkCreateDescriptorUpdateTemplate(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplate(
       m_device,
       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
+      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), descriptorUpdateTemplate );
+    return createResultValueType( result, descriptorUpdateTemplate );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -6129,14 +6086,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
-    VkResult                                       result = d.vkCreateDescriptorUpdateTemplate(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplate(
       m_device,
       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique" );
+      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>(
                                     descriptorUpdateTemplate, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
@@ -6331,13 +6288,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                                          Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                            Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                         structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
     d.vkGetDescriptorSetLayoutSupport(
       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
@@ -6409,14 +6366,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass2( m_device,
                              reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
+                             reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), renderPass );
+    return createResultValueType( result, renderPass );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -6429,16 +6386,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass2( m_device,
                              reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique" );
+                             reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -6532,11 +6488,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint64_t value;
-    VkResult result = d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
+    uint64_t                     value;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), value );
+    return createResultValueType( result, value );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -6556,10 +6513,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -6580,10 +6537,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -6672,30 +6630,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties;
     uint32_t                                                                                               toolCount;
-    VkResult                                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && toolCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
       {
         toolProperties.resize( toolCount );
-        result =
-          d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
     if ( toolCount < toolProperties.size() )
     {
       toolProperties.resize( toolCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), toolProperties );
+    return createResultValueType( result, toolProperties );
   }
 
   template <typename PhysicalDeviceToolPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceToolProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
     PhysicalDevice::getToolProperties( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator, Dispatch const & d ) const
@@ -6704,25 +6662,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties(
       physicalDeviceToolPropertiesAllocator );
-    uint32_t toolCount;
-    VkResult result;
+    uint32_t                     toolCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && toolCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
       {
         toolProperties.resize( toolCount );
-        result =
-          d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
     if ( toolCount < toolProperties.size() )
     {
       toolProperties.resize( toolCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), toolProperties );
+    return createResultValueType( result, toolProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -6749,14 +6707,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    VkResult                              result =
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePrivateDataSlot( m_device,
                                  reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlot" );
+                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlot" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), privateDataSlot );
+    return createResultValueType( result, privateDataSlot );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -6769,16 +6727,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    VkResult                              result =
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreatePrivateDataSlot( m_device,
                                  reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotUnique" );
+                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -6833,7 +6790,7 @@
 
 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                         uint64_t                              objectHandle,
                                                                         VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                         uint64_t                              data,
@@ -6841,11 +6798,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
     return static_cast<Result>(
-      d.vkSetPrivateData( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+      d.vkSetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
   }
 #else
   template <typename Dispatch>
-  VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                                  uint64_t                              objectHandle,
                                                                                  VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                                  uint64_t                              data,
@@ -6853,28 +6810,28 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkSetPrivateData( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkSetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
   template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_INLINE void Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                  uint64_t                              objectHandle,
                                                  VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                  uint64_t *                            pData,
                                                  Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetPrivateData( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
+    d.vkGetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
   }
 
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                           uint64_t                              objectHandle,
                                                                           VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                           Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
@@ -6882,7 +6839,7 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     uint64_t data;
-    d.vkGetPrivateData( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
+    d.vkGetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
 
     return data;
   }
@@ -6998,10 +6955,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueueSubmit2( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkQueueSubmit2( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -7361,13 +7319,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetDeviceBufferMemoryRequirements(
       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -7400,13 +7358,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetDeviceImageMemoryRequirements(
       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -7455,7 +7413,7 @@
   template <typename SparseImageMemoryRequirements2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                                          Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                               SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
@@ -7483,896 +7441,6 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-  //=== VK_VERSION_1_3 ===
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    PhysicalDevice::getToolProperties( uint32_t *                                           pToolCount,
-                                       VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkGetPhysicalDeviceToolProperties(
-      m_physicalDevice, pToolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( pToolProperties ) ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename PhysicalDeviceToolPropertiesAllocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
-    typename ResultValueType<std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
-    PhysicalDevice::getToolProperties( Dispatch const & d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties;
-    uint32_t                                                                         toolCount;
-    Result                                                                           result;
-    do
-    {
-      result = static_cast<Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
-      if ( ( result == Result::eSuccess ) && toolCount )
-      {
-        toolProperties.resize( toolCount );
-        result = static_cast<Result>( d.vkGetPhysicalDeviceToolProperties(
-          m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
-      }
-    } while ( result == Result::eIncomplete );
-    if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-    {
-      VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
-      if ( toolCount < toolProperties.size() )
-      {
-        toolProperties.resize( toolCount );
-      }
-    }
-    return createResultValue(
-      result, toolProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
-  }
-
-  template <
-    typename PhysicalDeviceToolPropertiesAllocator,
-    typename Dispatch,
-    typename B,
-    typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolProperties>::value, int>::type>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
-    typename ResultValueType<std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
-    PhysicalDevice::getToolProperties( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,
-                                       Dispatch const &                        d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties(
-      physicalDeviceToolPropertiesAllocator );
-    uint32_t toolCount;
-    Result   result;
-    do
-    {
-      result = static_cast<Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
-      if ( ( result == Result::eSuccess ) && toolCount )
-      {
-        toolProperties.resize( toolCount );
-        result = static_cast<Result>( d.vkGetPhysicalDeviceToolProperties(
-          m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
-      }
-    } while ( result == Result::eIncomplete );
-    if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-    {
-      VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
-      if ( toolCount < toolProperties.size() )
-      {
-        toolProperties.resize( toolCount );
-      }
-    }
-    return createResultValue(
-      result, toolProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,
-                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
-                                   VULKAN_HPP_NAMESPACE::PrivateDataSlot *                 pPrivateDataSlot,
-                                   Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>(
-      d.vkCreatePrivateDataSlot( m_device,
-                                 reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( pCreateInfo ),
-                                 reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
-                                 reinterpret_cast<VkPrivateDataSlot *>( pPrivateDataSlot ) ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::type
-    Device::createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
-                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                   Dispatch const &                                          d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    Result                                result = static_cast<Result>(
-      d.vkCreatePrivateDataSlot( m_device,
-                                 reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
-                                 reinterpret_cast<const VkAllocationCallbacks *>(
-                                   static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
-    return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlot" );
-  }
-
-#  ifndef VULKAN_HPP_NO_SMART_HANDLE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>>::type
-    Device::createPrivateDataSlotUnique( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
-                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                         Dispatch const &                                          d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    Result                                result = static_cast<Result>(
-      d.vkCreatePrivateDataSlot( m_device,
-                                 reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
-                                 reinterpret_cast<const VkAllocationCallbacks *>(
-                                   static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
-    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
-    return createResultValue<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>(
-      result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotUnique", deleter );
-  }
-#  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-#endif   /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::destroyPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyPrivateDataSlot( m_device,
-                                static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    Device::destroyPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
-                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyPrivateDataSlot( m_device,
-                                static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                reinterpret_cast<const VkAllocationCallbacks *>(
-                                  static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
-                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyPrivateDataSlot( m_device,
-                                static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
-                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyPrivateDataSlot( m_device,
-                                static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                reinterpret_cast<const VkAllocationCallbacks *>(
-                                  static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                            uint64_t                              objectHandle,
-                            VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                            uint64_t                              data,
-                            Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkSetPrivateData( m_device,
-                                                    static_cast<VkObjectType>( objectType ),
-                                                    objectHandle,
-                                                    static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                                    data ) );
-  }
-#else
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE typename ResultValueType<void>::type
-    Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                            uint64_t                              objectHandle,
-                            VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                            uint64_t                              data,
-                            Dispatch const &                      d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    Result result = static_cast<Result>( d.vkSetPrivateData( m_device,
-                                                             static_cast<VkObjectType>( objectType ),
-                                                             objectHandle,
-                                                             static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                                             data ) );
-    return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                                                 uint64_t                              objectHandle,
-                                                 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                                                 uint64_t *                            pData,
-                                                 Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetPrivateData( m_device,
-                        static_cast<VkObjectType>( objectType ),
-                        objectHandle,
-                        static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                        pData );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
-    Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                            uint64_t                              objectHandle,
-                            VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                            Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    uint64_t data;
-    d.vkGetPrivateData( m_device,
-                        static_cast<VkObjectType>( objectType ),
-                        objectHandle,
-                        static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                        &data );
-    return data;
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
-                                                   const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
-                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetEvent2(
-      m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
-                                                   const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
-                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetEvent2(
-      m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::resetEvent2( VULKAN_HPP_NAMESPACE::Event               event,
-                                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask,
-                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdResetEvent2(
-      m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::waitEvents2( uint32_t                                     eventCount,
-                                                     const VULKAN_HPP_NAMESPACE::Event *          pEvents,
-                                                     const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfos,
-                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdWaitEvents2( m_commandBuffer,
-                        eventCount,
-                        reinterpret_cast<const VkEvent *>( pEvents ),
-                        reinterpret_cast<const VkDependencyInfo *>( pDependencyInfos ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::waitEvents2( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
-                                ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos,
-                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-#  ifdef VULKAN_HPP_NO_EXCEPTIONS
-    VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
-#  else
-    if ( events.size() != dependencyInfos.size() )
-    {
-      throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                        "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()" );
-    }
-#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
-
-    d.vkCmdWaitEvents2( m_commandBuffer,
-                        events.size(),
-                        reinterpret_cast<const VkEvent *>( events.data() ),
-                        reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
-                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdPipelineBarrier2( m_commandBuffer, reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
-                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdPipelineBarrier2( m_commandBuffer, reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
-                                                         VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
-                                                         uint32_t                                  query,
-                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdWriteTimestamp2(
-      m_commandBuffer, static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit2( uint32_t                                  submitCount,
-                                                                const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,
-                                                                VULKAN_HPP_NAMESPACE::Fence               fence,
-                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkQueueSubmit2(
-      m_queue, submitCount, reinterpret_cast<const VkSubmitInfo2 *>( pSubmits ), static_cast<VkFence>( fence ) ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
-    Queue::submit2( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
-                    VULKAN_HPP_NAMESPACE::Fence                                 fence,
-                    Dispatch const &                                            d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    Result result = static_cast<Result>( d.vkQueueSubmit2( m_queue,
-                                                           submits.size(),
-                                                           reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ),
-                                                           static_cast<VkFence>( fence ) ) );
-    return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 * pCopyBufferInfo,
-                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyBuffer2( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2 *>( pCopyBufferInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo,
-                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyBuffer2( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 * pCopyImageInfo,
-                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyImage2( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2 *>( pCopyImageInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo,
-                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyImage2( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 * pCopyBufferToImageInfo,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyBufferToImage2( m_commandBuffer,
-                               reinterpret_cast<const VkCopyBufferToImageInfo2 *>( pCopyBufferToImageInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyBufferToImage2( m_commandBuffer,
-                               reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 * pCopyImageToBufferInfo,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyImageToBuffer2( m_commandBuffer,
-                               reinterpret_cast<const VkCopyImageToBufferInfo2 *>( pCopyImageToBufferInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdCopyImageToBuffer2( m_commandBuffer,
-                               reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 * pBlitImageInfo,
-                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdBlitImage2( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2 *>( pBlitImageInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo,
-                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdBlitImage2( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 * pResolveImageInfo,
-                                  Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdResolveImage2( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2 *>( pResolveImageInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo,
-                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdResolveImage2( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,
-                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdBeginRendering( m_commandBuffer, reinterpret_cast<const VkRenderingInfo *>( pRenderingInfo ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,
-                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdBeginRendering( m_commandBuffer, reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::endRendering( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdEndRendering( m_commandBuffer );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,
-                                                     Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetCullMode( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace,
-                                                      Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetFrontFace( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,
-                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetPrimitiveTopology( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCount( uint32_t                               viewportCount,
-                                                              const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
-                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetViewportWithCount( m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::setViewportWithCount( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
-                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetViewportWithCount(
-      m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCount( uint32_t                             scissorCount,
-                                                             const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,
-                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetScissorWithCount( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::setScissorWithCount( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
-                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetScissorWithCount(
-      m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2( uint32_t                                 firstBinding,
-                                                            uint32_t                                 bindingCount,
-                                                            const VULKAN_HPP_NAMESPACE::Buffer *     pBuffers,
-                                                            const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
-                                                            const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,
-                                                            const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,
-                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdBindVertexBuffers2( m_commandBuffer,
-                               firstBinding,
-                               bindingCount,
-                               reinterpret_cast<const VkBuffer *>( pBuffers ),
-                               reinterpret_cast<const VkDeviceSize *>( pOffsets ),
-                               reinterpret_cast<const VkDeviceSize *>( pSizes ),
-                               reinterpret_cast<const VkDeviceSize *>( pStrides ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::bindVertexBuffers2( uint32_t                                                   firstBinding,
-                                       ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
-                                       ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
-                                       ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
-                                       ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,
-                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-#  ifdef VULKAN_HPP_NO_EXCEPTIONS
-    VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
-    VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
-    VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
-#  else
-    if ( buffers.size() != offsets.size() )
-    {
-      throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                        "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()" );
-    }
-    if ( !sizes.empty() && buffers.size() != sizes.size() )
-    {
-      throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                        "::CommandBuffer::bindVertexBuffers2: buffers.size() != sizes.size()" );
-    }
-    if ( !strides.empty() && buffers.size() != strides.size() )
-    {
-      throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                        "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()" );
-    }
-#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
-
-    d.vkCmdBindVertexBuffers2( m_commandBuffer,
-                               firstBinding,
-                               buffers.size(),
-                               reinterpret_cast<const VkBuffer *>( buffers.data() ),
-                               reinterpret_cast<const VkDeviceSize *>( offsets.data() ),
-                               reinterpret_cast<const VkDeviceSize *>( sizes.data() ),
-                               reinterpret_cast<const VkDeviceSize *>( strides.data() ) );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,
-                                                            Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetDepthTestEnable( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,
-                                                             Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetDepthWriteEnable( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,
-                                                           Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetDepthCompareOp( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,
-                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetDepthBoundsTestEnable( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,
-                                                              Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetStencilTestEnable( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setStencilOp( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
-                                                      VULKAN_HPP_NAMESPACE::StencilOp        failOp,
-                                                      VULKAN_HPP_NAMESPACE::StencilOp        passOp,
-                                                      VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
-                                                      VULKAN_HPP_NAMESPACE::CompareOp        compareOp,
-                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetStencilOp( m_commandBuffer,
-                         static_cast<VkStencilFaceFlags>( faceMask ),
-                         static_cast<VkStencilOp>( failOp ),
-                         static_cast<VkStencilOp>( passOp ),
-                         static_cast<VkStencilOp>( depthFailOp ),
-                         static_cast<VkCompareOp>( compareOp ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    CommandBuffer::setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,
-                                               Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetRasterizerDiscardEnable( m_commandBuffer, static_cast<VkBool32>( rasterizerDiscardEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable,
-                                                            Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetDepthBiasEnable( m_commandBuffer, static_cast<VkBool32>( depthBiasEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,
-                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetPrimitiveRestartEnable( m_commandBuffer, static_cast<VkBool32>( primitiveRestartEnable ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,
-                                         VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
-                                         Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetDeviceBufferMemoryRequirements( m_device,
-                                           reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( pInfo ),
-                                           reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
-    Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
-                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
-    d.vkGetDeviceBufferMemoryRequirements( m_device,
-                                           reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
-                                           reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-    return memoryRequirements;
-  }
-
-  template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
-    Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
-                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
-      structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
-    d.vkGetDeviceBufferMemoryRequirements( m_device,
-                                           reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
-                                           reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-    return structureChain;
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
-                                        VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
-                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetDeviceImageMemoryRequirements( m_device,
-                                          reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
-                                          reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
-    Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
-    d.vkGetDeviceImageMemoryRequirements( m_device,
-                                          reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-                                          reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-    return memoryRequirements;
-  }
-
-  template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
-    Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
-      structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
-    d.vkGetDeviceImageMemoryRequirements( m_device,
-                                          reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-                                          reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-    return structureChain;
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements(
-    const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
-    uint32_t *                                                  pSparseMemoryRequirementCount,
-    VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 *      pSparseMemoryRequirements,
-    Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetDeviceImageSparseMemoryRequirements(
-      m_device,
-      reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
-      pSparseMemoryRequirementCount,
-      reinterpret_cast<VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD
-    VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
-    Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-                                              Dispatch const &                                            d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
-    uint32_t                                                                             sparseMemoryRequirementCount;
-    d.vkGetDeviceImageSparseMemoryRequirements( m_device,
-                                                reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-                                                &sparseMemoryRequirementCount,
-                                                nullptr );
-    sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
-    d.vkGetDeviceImageSparseMemoryRequirements(
-      m_device,
-      reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-      &sparseMemoryRequirementCount,
-      reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
-    VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
-    return sparseMemoryRequirements;
-  }
-
-  template <
-    typename SparseImageMemoryRequirements2Allocator,
-    typename Dispatch,
-    typename B,
-    typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type>
-  VULKAN_HPP_NODISCARD
-    VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
-                      Device::getImageSparseMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-      SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
-      Dispatch const &                                            d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
-      sparseImageMemoryRequirements2Allocator );
-    uint32_t sparseMemoryRequirementCount;
-    d.vkGetDeviceImageSparseMemoryRequirements( m_device,
-                                                reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-                                                &sparseMemoryRequirementCount,
-                                                nullptr );
-    sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
-    d.vkGetDeviceImageSparseMemoryRequirements(
-      m_device,
-      reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-      &sparseMemoryRequirementCount,
-      reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
-    VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
-    return sparseMemoryRequirements;
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
   //=== VK_KHR_surface ===
 
   template <typename Dispatch>
@@ -8440,11 +7508,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Bool32 supported;
-    VkResult                     result = d.vkGetPhysicalDeviceSurfaceSupportKHR(
-      m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR(
+      m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), supported );
+    return createResultValueType( result, supported );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8466,11 +7534,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
-    VkResult                                     result = d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
-      m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
+      m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceCapabilities );
+    return createResultValueType( result, surfaceCapabilities );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8494,34 +7562,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats;
     uint32_t                                                                       surfaceFormatCount;
-    VkResult                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                   result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         surfaceFormats.resize( surfaceFormatCount );
-        result = d.vkGetPhysicalDeviceSurfaceFormatsKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
-      VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
-      if ( surfaceFormatCount < surfaceFormats.size() )
-      {
-        surfaceFormats.resize( surfaceFormatCount );
-      }
+      surfaceFormats.resize( surfaceFormatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceFormats );
+    return createResultValueType( result, surfaceFormats );
   }
 
   template <typename SurfaceFormatKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SurfaceFormatKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type
                        PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
                                           SurfaceFormatKHRAllocator &      surfaceFormatKHRAllocator,
@@ -8531,28 +7596,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats( surfaceFormatKHRAllocator );
     uint32_t                                                                       surfaceFormatCount;
-    VkResult                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                   result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         surfaceFormats.resize( surfaceFormatCount );
-        result = d.vkGetPhysicalDeviceSurfaceFormatsKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
-      VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
-      if ( surfaceFormatCount < surfaceFormats.size() )
-      {
-        surfaceFormats.resize( surfaceFormatCount );
-      }
+      surfaceFormats.resize( surfaceFormatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceFormats );
+    return createResultValueType( result, surfaceFormats );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8576,34 +7638,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes;
     uint32_t                                                                   presentModeCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentModeCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
       {
         presentModes.resize( presentModeCount );
-        result = d.vkGetPhysicalDeviceSurfacePresentModesKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
     if ( presentModeCount < presentModes.size() )
     {
-      VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
-      if ( presentModeCount < presentModes.size() )
-      {
-        presentModes.resize( presentModeCount );
-      }
+      presentModes.resize( presentModeCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentModes );
+    return createResultValueType( result, presentModes );
   }
 
   template <typename PresentModeKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PresentModeKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
                        PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
                                                PresentModeKHRAllocator &        presentModeKHRAllocator,
@@ -8613,28 +7672,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
     uint32_t                                                                   presentModeCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentModeCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
       {
         presentModes.resize( presentModeCount );
-        result = d.vkGetPhysicalDeviceSurfacePresentModesKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
     if ( presentModeCount < presentModes.size() )
     {
-      VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
-      if ( presentModeCount < presentModes.size() )
-      {
-        presentModes.resize( presentModeCount );
-      }
+      presentModes.resize( presentModeCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentModes );
+    return createResultValueType( result, presentModes );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8663,14 +7719,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSwapchainKHR( m_device,
                               reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                              reinterpret_cast<VkSwapchainKHR *>( &swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
+                              reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchain );
+    return createResultValueType( result, swapchain );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -8683,16 +7739,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
-    VkResult                           result =
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateSwapchainKHR( m_device,
                               reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                              reinterpret_cast<VkSwapchainKHR *>( &swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique" );
+                              reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -8763,31 +7818,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator> swapchainImages;
     uint32_t                                                 swapchainImageCount;
-    VkResult                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                             result;
     do
     {
-      result = d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && swapchainImageCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount )
       {
         swapchainImages.resize( swapchainImageCount );
-        result = d.vkGetSwapchainImagesKHR(
-          m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainImagesKHR(
+          m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
     VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
     if ( swapchainImageCount < swapchainImages.size() )
     {
-      VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
-      if ( swapchainImageCount < swapchainImages.size() )
-      {
-        swapchainImages.resize( swapchainImageCount );
-      }
+      swapchainImages.resize( swapchainImageCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchainImages );
+    return createResultValueType( result, swapchainImages );
   }
 
-  template <typename ImageAllocator, typename Dispatch, typename B1, typename std::enable_if<std::is_same<typename B1::value_type, Image>::value, int>::type>
+  template <typename ImageAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::Image>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator>>::type
                        Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const
   {
@@ -8795,28 +7850,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator> swapchainImages( imageAllocator );
     uint32_t                                                 swapchainImageCount;
-    VkResult                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                             result;
     do
     {
-      result = d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && swapchainImageCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount )
       {
         swapchainImages.resize( swapchainImageCount );
-        result = d.vkGetSwapchainImagesKHR(
-          m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainImagesKHR(
+          m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
     VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
     if ( swapchainImageCount < swapchainImages.size() )
     {
-      VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
-      if ( swapchainImageCount < swapchainImages.size() )
-      {
-        swapchainImages.resize( swapchainImageCount );
-      }
+      swapchainImages.resize( swapchainImageCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchainImages );
+    return createResultValueType( result, swapchainImages );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8843,10 +7895,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint32_t imageIndex;
-    VkResult result = d.vkAcquireNextImageKHR(
-      m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    uint32_t                     imageIndex;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireNextImageKHR(
+      m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                    VULKAN_HPP_NAMESPACE::Result::eTimeout,
@@ -8872,10 +7924,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -8898,11 +7950,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
-    VkResult                                                result =
-      d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                            result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), deviceGroupPresentCapabilities );
+    return createResultValueType( result, deviceGroupPresentCapabilities );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8924,11 +7976,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
-    VkResult                                             result = d.vkGetDeviceGroupSurfacePresentModesKHR(
-      m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceGroupSurfacePresentModesKHR(
+      m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), modes );
+    return createResultValueType( result, modes );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -8952,31 +8004,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator> rects;
     uint32_t                                                   rectCount;
-    VkResult                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                               result;
     do
     {
-      result = d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && rectCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount )
       {
         rects.resize( rectCount );
-        result = d.vkGetPhysicalDevicePresentRectanglesKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
     VULKAN_HPP_ASSERT( rectCount <= rects.size() );
     if ( rectCount < rects.size() )
     {
-      VULKAN_HPP_ASSERT( rectCount <= rects.size() );
-      if ( rectCount < rects.size() )
-      {
-        rects.resize( rectCount );
-      }
+      rects.resize( rectCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), rects );
+    return createResultValueType( result, rects );
   }
 
-  template <typename Rect2DAllocator, typename Dispatch, typename B1, typename std::enable_if<std::is_same<typename B1::value_type, Rect2D>::value, int>::type>
+  template <typename Rect2DAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::Rect2D>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator>>::type
     PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const
   {
@@ -8984,28 +8036,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator> rects( rect2DAllocator );
     uint32_t                                                   rectCount;
-    VkResult                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                               result;
     do
     {
-      result = d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && rectCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount )
       {
         rects.resize( rectCount );
-        result = d.vkGetPhysicalDevicePresentRectanglesKHR(
-          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
+          m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
     VULKAN_HPP_ASSERT( rectCount <= rects.size() );
     if ( rectCount < rects.size() )
     {
-      VULKAN_HPP_ASSERT( rectCount <= rects.size() );
-      if ( rectCount < rects.size() )
-      {
-        rects.resize( rectCount );
-      }
+      rects.resize( rectCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), rects );
+    return createResultValueType( result, rects );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9025,9 +8074,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint32_t imageIndex;
-    VkResult result = d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    uint32_t                     imageIndex;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                    VULKAN_HPP_NAMESPACE::Result::eTimeout,
@@ -9059,33 +8109,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties;
     uint32_t                                                                               propertyCount;
-    VkResult                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayPropertiesKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayPropertiesKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type
                        PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const
   {
@@ -9093,27 +8140,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties( displayPropertiesKHRAllocator );
     uint32_t                                                                               propertyCount;
-    VkResult                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9137,34 +8181,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties;
     uint32_t                                                                                         propertyCount;
-    VkResult                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                     result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayPlanePropertiesKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayPlanePropertiesKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type
     PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const
@@ -9173,28 +8213,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties( displayPlanePropertiesKHRAllocator );
     uint32_t                                                                                         propertyCount;
-    VkResult                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                     result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9218,33 +8254,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator> displays;
     uint32_t                                                           displayCount;
-    VkResult                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                       result;
     do
     {
-      result = d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && displayCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
       {
         displays.resize( displayCount );
-        result = d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
     VULKAN_HPP_ASSERT( displayCount <= displays.size() );
     if ( displayCount < displays.size() )
     {
-      VULKAN_HPP_ASSERT( displayCount <= displays.size() );
-      if ( displayCount < displays.size() )
-      {
-        displays.resize( displayCount );
-      }
+      displays.resize( displayCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), displays );
+    return createResultValueType( result, displays );
   }
 
   template <typename DisplayKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator>>::type
     PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const
   {
@@ -9252,27 +8285,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator> displays( displayKHRAllocator );
     uint32_t                                                           displayCount;
-    VkResult                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                       result;
     do
     {
-      result = d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && displayCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
       {
         displays.resize( displayCount );
-        result = d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
     VULKAN_HPP_ASSERT( displayCount <= displays.size() );
     if ( displayCount < displays.size() )
     {
-      VULKAN_HPP_ASSERT( displayCount <= displays.size() );
-      if ( displayCount < displays.size() )
-      {
-        displays.resize( displayCount );
-      }
+      displays.resize( displayCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), displays );
+    return createResultValueType( result, displays );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9297,34 +8327,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties;
     uint32_t                                                                                       propertyCount;
-    VkResult                                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                                   result;
     do
     {
-      result = d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetDisplayModePropertiesKHR(
-          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModePropertiesKHR(
+          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayModePropertiesKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayModePropertiesKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type
     PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR    display,
@@ -9335,28 +8362,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties( displayModePropertiesKHRAllocator );
     uint32_t                                                                                       propertyCount;
-    VkResult                                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                                   result;
     do
     {
-      result = d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetDisplayModePropertiesKHR(
-          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModePropertiesKHR(
+          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9386,15 +8410,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDisplayModeKHR( m_physicalDevice,
                                 static_cast<VkDisplayKHR>( display ),
                                 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkDisplayModeKHR *>( &mode ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
+                                reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), mode );
+    return createResultValueType( result, mode );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9408,17 +8432,16 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
-    VkResult                             result =
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateDisplayModeKHR( m_physicalDevice,
                                 static_cast<VkDisplayKHR>( display ),
                                 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkDisplayModeKHR *>( &mode ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique" );
+                                reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( mode, ObjectDestroy<PhysicalDevice, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( mode, ObjectDestroy<PhysicalDevice, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9443,11 +8466,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
-    VkResult                                          result = d.vkGetDisplayPlaneCapabilitiesKHR(
-      m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneCapabilitiesKHR(
+      m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), capabilities );
+    return createResultValueType( result, capabilities );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -9474,14 +8497,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateDisplayPlaneSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDisplayPlaneSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9494,16 +8517,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateDisplayPlaneSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDisplayPlaneSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9535,21 +8557,21 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
-    VkResult                                                               result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result                                           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       createInfos.size(),
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
+      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchains );
+    return createResultValueType( result, swapchains );
   }
 
   template <typename SwapchainKHRAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, SwapchainKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator>>::type
     Device::createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
@@ -9559,15 +8581,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
-    VkResult                                                               result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result                                           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       createInfos.size(),
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
+      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchains );
+    return createResultValueType( result, swapchains );
   }
 
   template <typename Dispatch>
@@ -9579,15 +8601,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
-    VkResult                           result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       1,
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( &swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
+      reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), swapchain );
+    return createResultValueType( result, swapchain );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9601,13 +8623,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() );
-    VkResult                                        result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       createInfos.size(),
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
+      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
     uniqueSwapchains.reserve( createInfos.size() );
     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
@@ -9615,13 +8637,13 @@
     {
       uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchain, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueSwapchains ) );
+    return createResultValueType( result, std::move( uniqueSwapchains ) );
   }
 
   template <typename Dispatch,
             typename SwapchainKHRAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type
     Device::createSharedSwapchainsKHRUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
@@ -9632,13 +8654,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() );
-    VkResult                                        result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       createInfos.size(),
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
+      reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
     uniqueSwapchains.reserve( createInfos.size() );
     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
@@ -9646,7 +8668,7 @@
     {
       uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchain, deleter ) );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniqueSwapchains ) );
+    return createResultValueType( result, std::move( uniqueSwapchains ) );
   }
 
   template <typename Dispatch>
@@ -9658,17 +8680,16 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
-    VkResult                           result = d.vkCreateSharedSwapchainsKHR(
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
       m_device,
       1,
       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSwapchainKHR *>( &swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique" );
+      reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9699,14 +8720,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateXlibSurfaceKHR( m_instance,
                                 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
+                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9719,16 +8740,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateXlibSurfaceKHR( m_instance,
                                 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique" );
+                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9781,14 +8801,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateXcbSurfaceKHR( m_instance,
                                reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
+                               reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9801,16 +8821,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateXcbSurfaceKHR( m_instance,
                                reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique" );
+                               reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9867,14 +8886,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateWaylandSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateWaylandSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9887,16 +8906,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateWaylandSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateWaylandSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9950,14 +8968,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateAndroidSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAndroidSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -9970,16 +8988,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateAndroidSurfaceKHR(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAndroidSurfaceKHR(
       m_instance,
       reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -10011,14 +9028,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateWin32SurfaceKHR( m_instance,
                                  reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -10031,16 +9048,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateWin32SurfaceKHR( m_instance,
                                  reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -10079,14 +9095,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
-    VkResult                                     result = d.vkCreateDebugReportCallbackEXT(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugReportCallbackEXT(
       m_instance,
       reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
+      reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), callback );
+    return createResultValueType( result, callback );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -10099,16 +9115,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
-    VkResult                                     result = d.vkCreateDebugReportCallbackEXT(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugReportCallbackEXT(
       m_instance,
       reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique" );
+      reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( callback, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( callback, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -10165,7 +9180,7 @@
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
-                                                          VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,
+                                                          VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
                                                           uint64_t                                       object,
                                                           size_t                                         location,
                                                           int32_t                                        messageCode,
@@ -10176,7 +9191,7 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
     d.vkDebugReportMessageEXT( m_instance,
                                static_cast<VkDebugReportFlagsEXT>( flags ),
-                               static_cast<VkDebugReportObjectTypeEXT>( objectType ),
+                               static_cast<VkDebugReportObjectTypeEXT>( objectType_ ),
                                object,
                                location,
                                messageCode,
@@ -10187,7 +9202,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
-                                                          VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,
+                                                          VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
                                                           uint64_t                                       object,
                                                           size_t                                         location,
                                                           int32_t                                        messageCode,
@@ -10199,7 +9214,7 @@
 
     d.vkDebugReportMessageEXT( m_instance,
                                static_cast<VkDebugReportFlagsEXT>( flags ),
-                               static_cast<VkDebugReportObjectTypeEXT>( objectType ),
+                               static_cast<VkDebugReportObjectTypeEXT>( objectType_ ),
                                object,
                                location,
                                messageCode,
@@ -10225,10 +9240,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -10247,10 +9263,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -10299,7 +9316,6 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
 
   template <typename Dispatch>
@@ -10312,7 +9328,7 @@
       m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( pVideoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( pCapabilities ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>::type
                        PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile, Dispatch const & d ) const
@@ -10320,28 +9336,28 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities;
-    VkResult                                   result = d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
-      m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
+      m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), capabilities );
+    return createResultValueType( result, capabilities );
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
                        PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     StructureChain<X, Y, Z...>                   structureChain;
     VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>();
-    VkResult                                     result       = d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
-      m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                 result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
+      m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChain );
+    return createResultValueType( result, structureChain );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
@@ -10357,7 +9373,7 @@
                                                                                reinterpret_cast<VkVideoFormatPropertiesKHR *>( pVideoFormatProperties ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename VideoFormatPropertiesKHRAllocator, typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
@@ -10367,37 +9383,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties;
     uint32_t                                                                                       videoFormatPropertyCount;
-    VkResult                                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                                   result;
     do
     {
-      result = d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && videoFormatPropertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
       {
         videoFormatProperties.resize( videoFormatPropertyCount );
-        result = d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
-                                                                reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
-                                                                &videoFormatPropertyCount,
-                                                                reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
+                                                         reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
+                                                         &videoFormatPropertyCount,
+                                                         reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
     if ( videoFormatPropertyCount < videoFormatProperties.size() )
     {
-      VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
-      if ( videoFormatPropertyCount < videoFormatProperties.size() )
-      {
-        videoFormatProperties.resize( videoFormatPropertyCount );
-      }
+      videoFormatProperties.resize( videoFormatPropertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), videoFormatProperties );
+    return createResultValueType( result, videoFormatProperties );
   }
 
   template <typename VideoFormatPropertiesKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, VideoFormatPropertiesKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
     PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,
@@ -10408,33 +9421,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties( videoFormatPropertiesKHRAllocator );
     uint32_t                                                                                       videoFormatPropertyCount;
-    VkResult                                                                                       result;
+    VULKAN_HPP_NAMESPACE::Result                                                                   result;
     do
     {
-      result = d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && videoFormatPropertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
       {
         videoFormatProperties.resize( videoFormatPropertyCount );
-        result = d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
-                                                                reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
-                                                                &videoFormatPropertyCount,
-                                                                reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
+                                                         reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
+                                                         &videoFormatPropertyCount,
+                                                         reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
     if ( videoFormatPropertyCount < videoFormatProperties.size() )
     {
-      VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
-      if ( videoFormatPropertyCount < videoFormatProperties.size() )
-      {
-        videoFormatProperties.resize( videoFormatPropertyCount );
-      }
+      videoFormatProperties.resize( videoFormatPropertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), videoFormatProperties );
+    return createResultValueType( result, videoFormatProperties );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR * pCreateInfo,
@@ -10449,7 +9459,7 @@
                                                            reinterpret_cast<VkVideoSessionKHR *>( pVideoSession ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionKHR>::type
                        Device::createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &   createInfo,
@@ -10459,17 +9469,17 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
-    VkResult                              result =
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateVideoSessionKHR( m_device,
                                  reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHR" );
+                                 reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), videoSession );
+    return createResultValueType( result, videoSession );
   }
 
-#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>>::type
                        Device::createVideoSessionKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &   createInfo,
@@ -10479,19 +9489,18 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
-    VkResult                              result =
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateVideoSessionKHR( m_device,
                                  reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHRUnique" );
+                                 reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>( videoSession, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>( videoSession, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
-#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
@@ -10502,7 +9511,7 @@
     d.vkDestroyVideoSessionKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
                                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
@@ -10515,7 +9524,7 @@
       static_cast<VkVideoSessionKHR>( videoSession ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
@@ -10526,7 +9535,7 @@
     d.vkDestroyVideoSessionKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
@@ -10539,7 +9548,7 @@
       static_cast<VkVideoSessionKHR>( videoSession ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
@@ -10555,7 +9564,7 @@
                                                                           reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( pMemoryRequirements ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename VideoSessionMemoryRequirementsKHRAllocator, typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator>>::type
@@ -10565,32 +9574,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator> memoryRequirements;
     uint32_t                                                                                                         memoryRequirementsCount;
-    VkResult                                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                     result;
     do
     {
-      result = d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && memoryRequirementsCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount )
       {
         memoryRequirements.resize( memoryRequirementsCount );
-        result = d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
-                                                           static_cast<VkVideoSessionKHR>( videoSession ),
-                                                           &memoryRequirementsCount,
-                                                           reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
+                                                    static_cast<VkVideoSessionKHR>( videoSession ),
+                                                    &memoryRequirementsCount,
+                                                    reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getVideoSessionMemoryRequirementsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+
     VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() );
     if ( memoryRequirementsCount < memoryRequirements.size() )
     {
       memoryRequirements.resize( memoryRequirementsCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryRequirements );
+    return memoryRequirements;
   }
 
   template <typename VideoSessionMemoryRequirementsKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, VideoSessionMemoryRequirementsKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator>>::type
     Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR        videoSession,
@@ -10601,29 +9612,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator> memoryRequirements(
       videoSessionMemoryRequirementsKHRAllocator );
-    uint32_t memoryRequirementsCount;
-    VkResult result;
+    uint32_t                     memoryRequirementsCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && memoryRequirementsCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount )
       {
         memoryRequirements.resize( memoryRequirementsCount );
-        result = d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
-                                                           static_cast<VkVideoSessionKHR>( videoSession ),
-                                                           &memoryRequirementsCount,
-                                                           reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
+                                                    static_cast<VkVideoSessionKHR>( videoSession ),
+                                                    &memoryRequirementsCount,
+                                                    reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getVideoSessionMemoryRequirementsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+
     VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() );
     if ( memoryRequirementsCount < memoryRequirements.size() )
     {
       memoryRequirements.resize( memoryRequirementsCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryRequirements );
+    return memoryRequirements;
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
@@ -10639,7 +9652,7 @@
                                                                reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( pBindSessionMemoryInfos ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindVideoSessionMemoryKHR(
     VULKAN_HPP_NAMESPACE::VideoSessionKHR                                                               videoSession,
@@ -10648,15 +9661,16 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindVideoSessionMemoryKHR( m_device,
-                                                     static_cast<VkVideoSessionKHR>( videoSession ),
-                                                     bindSessionMemoryInfos.size(),
-                                                     reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindVideoSessionMemoryKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindVideoSessionMemoryKHR( m_device,
+                                     static_cast<VkVideoSessionKHR>( videoSession ),
+                                     bindSessionMemoryInfos.size(),
+                                     reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindVideoSessionMemoryKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
@@ -10672,7 +9686,7 @@
                                                                      reinterpret_cast<VkVideoSessionParametersKHR *>( pVideoSessionParameters ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>::type
                        Device::createVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,
@@ -10682,17 +9696,17 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
-    VkResult                                        result = d.vkCreateVideoSessionParametersKHR(
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateVideoSessionParametersKHR(
       m_device,
       reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHR" );
+      reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), videoSessionParameters );
+    return createResultValueType( result, videoSessionParameters );
   }
 
-#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR, Dispatch>>::type
                        Device::createVideoSessionParametersKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,
@@ -10702,19 +9716,19 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
-    VkResult                                        result = d.vkCreateVideoSessionParametersKHR(
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateVideoSessionParametersKHR(
       m_device,
       reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHRUnique" );
+      reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHRUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR, Dispatch>(
                                     videoSessionParameters, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
-#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
@@ -10728,7 +9742,7 @@
                                                                      reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( pUpdateInfo ) ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
                                           Device::updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                   videoSessionParameters,
@@ -10737,14 +9751,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkUpdateVideoSessionParametersKHR( m_device,
-                                                           static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
-                                                           reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::updateVideoSessionParametersKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkUpdateVideoSessionParametersKHR( m_device,
+                                           static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
+                                           reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::updateVideoSessionParametersKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
@@ -10756,7 +9771,7 @@
       m_device, static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR           videoSessionParameters,
                                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
@@ -10769,7 +9784,7 @@
       static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
@@ -10781,7 +9796,7 @@
       m_device, static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR           videoSessionParameters,
                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
@@ -10794,7 +9809,7 @@
       static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo,
@@ -10804,7 +9819,7 @@
     d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( pBeginInfo ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo,
                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
@@ -10813,7 +9828,7 @@
 
     d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo,
@@ -10823,7 +9838,7 @@
     d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoEndCodingInfoKHR *>( pEndCodingInfo ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo,
                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
@@ -10832,7 +9847,7 @@
 
     d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo,
@@ -10842,7 +9857,7 @@
     d.vkCmdControlVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoCodingControlInfoKHR *>( pCodingControlInfo ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo,
                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
@@ -10851,10 +9866,8 @@
 
     d.vkCmdControlVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
 
   template <typename Dispatch>
@@ -10865,7 +9878,7 @@
     d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoDecodeInfoKHR *>( pDecodeInfo ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo,
                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
@@ -10874,8 +9887,7 @@
 
     d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoDecodeInfoKHR *>( &decodeInfo ) );
   }
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   //=== VK_EXT_transform_feedback ===
 
@@ -11074,14 +10086,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CuModuleNVX module;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCuModuleNVX( m_device,
                              reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkCuModuleNVX *>( &module ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVX" );
+                             reinterpret_cast<VkCuModuleNVX *>( &module ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVX" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), module );
+    return createResultValueType( result, module );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -11094,14 +10106,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CuModuleNVX module;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCuModuleNVX( m_device,
                              reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkCuModuleNVX *>( &module ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVXUnique" );
+                             reinterpret_cast<VkCuModuleNVX *>( &module ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVXUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::CuModuleNVX, Dispatch>( module, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -11130,14 +10142,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
-    VkResult                            result =
+    VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCuFunctionNVX( m_device,
                                reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkCuFunctionNVX *>( &function ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVX" );
+                               reinterpret_cast<VkCuFunctionNVX *>( &function ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVX" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), function );
+    return createResultValueType( result, function );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -11150,16 +10162,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
-    VkResult                            result =
+    VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateCuFunctionNVX( m_device,
                                reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkCuFunctionNVX *>( &function ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVXUnique" );
+                               reinterpret_cast<VkCuFunctionNVX *>( &function ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVXUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::CuFunctionNVX, Dispatch>( function, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::CuFunctionNVX, Dispatch>( function, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -11316,11 +10327,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
-    VkResult                                            result =
-      d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
+    VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -11395,37 +10406,33 @@
 
     std::vector<uint8_t, Uint8_tAllocator> info;
     size_t                                 infoSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetShaderInfoAMD( m_device,
-                                     static_cast<VkPipeline>( pipeline ),
-                                     static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                     static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                     &infoSize,
-                                     nullptr );
-      if ( ( result == VK_SUCCESS ) && infoSize )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
+                                                                                static_cast<VkPipeline>( pipeline ),
+                                                                                static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                &infoSize,
+                                                                                nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize )
       {
         info.resize( infoSize );
-        result = d.vkGetShaderInfoAMD( m_device,
-                                       static_cast<VkPipeline>( pipeline ),
-                                       static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                       static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                       &infoSize,
-                                       reinterpret_cast<void *>( info.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
+                                                                                  static_cast<VkPipeline>( pipeline ),
+                                                                                  static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                  static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                  &infoSize,
+                                                                                  reinterpret_cast<void *>( info.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
     VULKAN_HPP_ASSERT( infoSize <= info.size() );
     if ( infoSize < info.size() )
     {
-      VULKAN_HPP_ASSERT( infoSize <= info.size() );
-      if ( infoSize < info.size() )
-      {
-        info.resize( infoSize );
-      }
+      info.resize( infoSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), info );
+    return createResultValueType( result, info );
   }
 
   template <typename Uint8_tAllocator,
@@ -11443,37 +10450,33 @@
 
     std::vector<uint8_t, Uint8_tAllocator> info( uint8_tAllocator );
     size_t                                 infoSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetShaderInfoAMD( m_device,
-                                     static_cast<VkPipeline>( pipeline ),
-                                     static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                     static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                     &infoSize,
-                                     nullptr );
-      if ( ( result == VK_SUCCESS ) && infoSize )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
+                                                                                static_cast<VkPipeline>( pipeline ),
+                                                                                static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                &infoSize,
+                                                                                nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize )
       {
         info.resize( infoSize );
-        result = d.vkGetShaderInfoAMD( m_device,
-                                       static_cast<VkPipeline>( pipeline ),
-                                       static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                       static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                       &infoSize,
-                                       reinterpret_cast<void *>( info.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
+                                                                                  static_cast<VkPipeline>( pipeline ),
+                                                                                  static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                  static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                  &infoSize,
+                                                                                  reinterpret_cast<void *>( info.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
     VULKAN_HPP_ASSERT( infoSize <= info.size() );
     if ( infoSize < info.size() )
     {
-      VULKAN_HPP_ASSERT( infoSize <= info.size() );
-      if ( infoSize < info.size() )
-      {
-        info.resize( infoSize );
-      }
+      info.resize( infoSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), info );
+    return createResultValueType( result, info );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -11532,14 +10535,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateStreamDescriptorSurfaceGGP(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateStreamDescriptorSurfaceGGP(
       m_instance,
       reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -11552,16 +10555,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateStreamDescriptorSurfaceGGP(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateStreamDescriptorSurfaceGGP(
       m_instance,
       reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -11606,7 +10608,7 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
-    VkResult                                              result =
+    VULKAN_HPP_NAMESPACE::Result                          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice,
                                                             static_cast<VkFormat>( format ),
                                                             static_cast<VkImageType>( type ),
@@ -11614,10 +10616,10 @@
                                                             static_cast<VkImageUsageFlags>( usage ),
                                                             static_cast<VkImageCreateFlags>( flags ),
                                                             static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ),
-                                                            reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
+                                                            reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), externalImageFormatProperties );
+    return createResultValueType( result, externalImageFormatProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -11642,12 +10644,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    HANDLE   handle;
-    VkResult result =
-      d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
+    HANDLE                       handle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), handle );
+    return createResultValueType( result, handle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
@@ -11676,12 +10678,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                      structureChain;
-    VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
 
     return structureChain;
@@ -11699,7 +10702,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
-    PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                         PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
@@ -11710,11 +10713,12 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                        structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
 
@@ -11747,13 +10751,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format,
-                                                                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+    PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                structureChain;
-    VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
     d.vkGetPhysicalDeviceFormatProperties2KHR(
       m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
 
@@ -11781,28 +10785,30 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
-    VkResult                                     result = d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
-                                                                      reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                      reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
+                                                      reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
+                                                      reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), imageFormatProperties );
+    return createResultValueType( result, imageFormatProperties );
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
     PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     StructureChain<X, Y, Z...>                     structureChain;
     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
-    VkResult                                       result                = d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
-                                                                      reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                      reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
+    VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
+                                                      reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
+                                                      reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChain );
+    return createResultValueType( result, structureChain );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -11841,7 +10847,7 @@
   template <typename QueueFamilyProperties2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
     PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
   {
@@ -11940,7 +10946,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
-    PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                         PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
@@ -11951,11 +10957,12 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                              structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
       structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
@@ -12006,7 +11013,7 @@
   template <typename SparseImageFormatProperties2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
     PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
                                                         SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,
@@ -12108,14 +11115,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateViSurfaceNN( m_instance,
                              reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
+                             reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -12128,16 +11135,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateViSurfaceNN( m_instance,
                              reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique" );
+                             reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -12177,34 +11183,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
     uint32_t                                                                                                 physicalDeviceGroupCount;
-    VkResult                                                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                                                             result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
       {
         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-        result = d.vkEnumeratePhysicalDeviceGroupsKHR(
-          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR(
+          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
-      if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
-      {
-        physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-      }
+      physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDeviceGroupProperties );
+    return createResultValueType( result, physicalDeviceGroupProperties );
   }
 
   template <typename PhysicalDeviceGroupPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
     Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
@@ -12213,29 +11215,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
       physicalDeviceGroupPropertiesAllocator );
-    uint32_t physicalDeviceGroupCount;
-    VkResult result;
+    uint32_t                     physicalDeviceGroupCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
       {
         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-        result = d.vkEnumeratePhysicalDeviceGroupsKHR(
-          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR(
+          m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
     {
-      VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
-      if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
-      {
-        physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-      }
+      physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), physicalDeviceGroupProperties );
+    return createResultValueType( result, physicalDeviceGroupProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12289,11 +11287,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    HANDLE   handle;
-    VkResult result = d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
+    HANDLE                       handle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), handle );
+    return createResultValueType( result, handle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12319,13 +11318,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
-    VkResult                                             result = d.vkGetMemoryWin32HandlePropertiesKHR( m_device,
-                                                             static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
-                                                             handle,
-                                                             reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryWin32HandlePropertiesKHR( m_device,
+                                             static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
+                                             handle,
+                                             reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryWin32HandleProperties );
+    return createResultValueType( result, memoryWin32HandleProperties );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
@@ -12348,11 +11348,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    int      fd;
-    VkResult result = d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
+    int                          fd;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fd );
+    return createResultValueType( result, fd );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12375,11 +11376,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
-    VkResult                                    result = d.vkGetMemoryFdPropertiesKHR(
-      m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryFdPropertiesKHR(
+      m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryFdProperties );
+    return createResultValueType( result, memoryFdProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12434,11 +11435,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12458,11 +11459,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    HANDLE   handle;
-    VkResult result = d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
+    HANDLE                       handle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), handle );
+    return createResultValueType( result, handle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
@@ -12484,10 +11486,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12507,11 +11510,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    int      fd;
-    VkResult result = d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
+    int                          fd;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fd );
+    return createResultValueType( result, fd );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12638,14 +11642,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
-    VkResult                                       result = d.vkCreateDescriptorUpdateTemplateKHR(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplateKHR(
       m_device,
       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
+      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), descriptorUpdateTemplate );
+    return createResultValueType( result, descriptorUpdateTemplate );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -12658,14 +11662,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
-    VkResult                                       result = d.vkCreateDescriptorUpdateTemplateKHR(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplateKHR(
       m_device,
       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique" );
+      reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>(
                                     descriptorUpdateTemplate, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
@@ -12788,10 +11792,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12813,10 +11818,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), display );
+    return createResultValueType( result, display );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -12827,10 +11833,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique" );
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -12858,11 +11865,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
-    VkResult                                      result = d.vkGetPhysicalDeviceSurfaceCapabilities2EXT(
-      m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT(
+      m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceCapabilities );
+    return createResultValueType( result, surfaceCapabilities );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12886,11 +11893,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12916,15 +11923,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result = d.vkRegisterDeviceEventEXT(
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDeviceEventEXT(
       m_device,
       reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
+      reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fence );
+    return createResultValueType( result, fence );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -12936,15 +11943,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result = d.vkRegisterDeviceEventEXT(
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDeviceEventEXT(
       m_device,
       reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique" );
+      reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -12975,16 +11982,16 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result = d.vkRegisterDisplayEventEXT(
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDisplayEventEXT(
       m_device,
       static_cast<VkDisplayKHR>( display ),
       reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
+      reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fence );
+    return createResultValueType( result, fence );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -12997,16 +12004,16 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VULKAN_HPP_NAMESPACE::Fence fence;
-    VkResult                    result = d.vkRegisterDisplayEventEXT(
+    VULKAN_HPP_NAMESPACE::Fence  fence;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDisplayEventEXT(
       m_device,
       static_cast<VkDisplayKHR>( display ),
       reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkFence *>( &fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique" );
+      reinterpret_cast<VkFence *>( &fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -13030,12 +12037,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint64_t counterValue;
-    VkResult result =
-      d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
+    uint64_t                     counterValue;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), counterValue );
+    return createResultValueType( result, counterValue );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13060,11 +12067,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
-    VkResult                                         result = d.vkGetRefreshCycleDurationGOOGLE(
-      m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
+    VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRefreshCycleDurationGOOGLE(
+      m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), displayTimingProperties );
+    return createResultValueType( result, displayTimingProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13092,36 +12099,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings;
     uint32_t                                                                                               presentationTimingCount;
-    VkResult                                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                                           result;
     do
     {
-      result = d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentationTimingCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount )
       {
         presentationTimings.resize( presentationTimingCount );
-        result = d.vkGetPastPresentationTimingGOOGLE( m_device,
-                                                      static_cast<VkSwapchainKHR>( swapchain ),
-                                                      &presentationTimingCount,
-                                                      reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPastPresentationTimingGOOGLE( m_device,
+                                               static_cast<VkSwapchainKHR>( swapchain ),
+                                               &presentationTimingCount,
+                                               reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
     VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
     if ( presentationTimingCount < presentationTimings.size() )
     {
-      VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
-      if ( presentationTimingCount < presentationTimings.size() )
-      {
-        presentationTimings.resize( presentationTimingCount );
-      }
+      presentationTimings.resize( presentationTimingCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentationTimings );
+    return createResultValueType( result, presentationTimings );
   }
 
   template <typename PastPresentationTimingGOOGLEAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PastPresentationTimingGOOGLE>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type
     Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR      swapchain,
@@ -13132,31 +12137,29 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings(
       pastPresentationTimingGOOGLEAllocator );
-    uint32_t presentationTimingCount;
-    VkResult result;
+    uint32_t                     presentationTimingCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentationTimingCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount )
       {
         presentationTimings.resize( presentationTimingCount );
-        result = d.vkGetPastPresentationTimingGOOGLE( m_device,
-                                                      static_cast<VkSwapchainKHR>( swapchain ),
-                                                      &presentationTimingCount,
-                                                      reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPastPresentationTimingGOOGLE( m_device,
+                                               static_cast<VkSwapchainKHR>( swapchain ),
+                                               &presentationTimingCount,
+                                               reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
     VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
     if ( presentationTimingCount < presentationTimings.size() )
     {
-      VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
-      if ( presentationTimingCount < presentationTimings.size() )
-      {
-        presentationTimings.resize( presentationTimingCount );
-      }
+      presentationTimings.resize( presentationTimingCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentationTimings );
+    return createResultValueType( result, presentationTimings );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13185,6 +12188,22 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable,
+                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetDiscardRectangleEnableEXT( m_commandBuffer, static_cast<VkBool32>( discardRectangleEnable ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode,
+                                                                    Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetDiscardRectangleModeEXT( m_commandBuffer, static_cast<VkDiscardRectangleModeEXT>( discardRectangleMode ) );
+  }
+
   //=== VK_EXT_hdr_metadata ===
 
   template <typename Dispatch>
@@ -13246,14 +12265,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass2KHR( m_device,
                                 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
+                                reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), renderPass );
+    return createResultValueType( result, renderPass );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -13266,16 +12285,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateRenderPass2KHR( m_device,
                                 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                reinterpret_cast<VkRenderPass *>( &renderPass ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique" );
+                                reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -13362,8 +12380,9 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
@@ -13420,10 +12439,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13444,11 +12464,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    HANDLE   handle;
-    VkResult result = d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
+    HANDLE                       handle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), handle );
+    return createResultValueType( result, handle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
@@ -13470,10 +12491,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13493,11 +12515,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    int      fd;
-    VkResult result = d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
+    int                          fd;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fd );
+    return createResultValueType( result, fd );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13531,35 +12554,35 @@
 
     std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
               std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
-                                                                                                                     data;
-    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data.first;
-    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
+                                                                                                                     data_;
+    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data_.first;
+    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data_.second;
     uint32_t                                                                                                         counterCount;
-    VkResult                                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                     result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr );
-      if ( ( result == VK_SUCCESS ) && counterCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount )
       {
         counters.resize( counterCount );
         counterDescriptions.resize( counterCount );
-        result = d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
           m_physicalDevice,
           queueFamilyIndex,
           &counterCount,
           reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ),
-          reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) );
+          reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
     VULKAN_HPP_ASSERT( counterCount <= counters.size() );
     if ( counterCount < counters.size() )
     {
       counters.resize( counterCount );
       counterDescriptions.resize( counterCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data_ );
   }
 
   template <typename PerformanceCounterKHRAllocator,
@@ -13567,8 +12590,8 @@
             typename Dispatch,
             typename B1,
             typename B2,
-            typename std::enable_if<std::is_same<typename B1::value_type, PerformanceCounterKHR>::value &&
-                                      std::is_same<typename B2::value_type, PerformanceCounterDescriptionKHR>::value,
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>::value &&
+                                      std::is_same<typename B2::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>::value,
                                     int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
@@ -13582,36 +12605,36 @@
 
     std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
               std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
-      data(
+      data_(
         std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) );
-    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data.first;
-    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
+    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data_.first;
+    std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data_.second;
     uint32_t                                                                                                         counterCount;
-    VkResult                                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                     result;
     do
     {
-      result = d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr );
-      if ( ( result == VK_SUCCESS ) && counterCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount )
       {
         counters.resize( counterCount );
         counterDescriptions.resize( counterCount );
-        result = d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
           m_physicalDevice,
           queueFamilyIndex,
           &counterCount,
           reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ),
-          reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) );
+          reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
     VULKAN_HPP_ASSERT( counterCount <= counters.size() );
     if ( counterCount < counters.size() )
     {
       counters.resize( counterCount );
       counterDescriptions.resize( counterCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data_ );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13656,10 +12679,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13692,28 +12716,30 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
-    VkResult                                      result = d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
-                                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                    reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
+                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                    reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceCapabilities );
+    return createResultValueType( result, surfaceCapabilities );
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
     PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     StructureChain<X, Y, Z...>                      structureChain;
     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
-    VkResult                                        result              = d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
-                                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                    reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
+    VULKAN_HPP_NAMESPACE::Result                    result              = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
+                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                    reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChain );
+    return createResultValueType( result, structureChain );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13739,37 +12765,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats;
     uint32_t                                                                         surfaceFormatCount;
-    VkResult                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                     result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormats2KHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         surfaceFormats.resize( surfaceFormatCount );
-        result = d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
-                                                          reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                          &surfaceFormatCount,
-                                                          reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                   &surfaceFormatCount,
+                                                   reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
-      VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
-      if ( surfaceFormatCount < surfaceFormats.size() )
-      {
-        surfaceFormats.resize( surfaceFormatCount );
-      }
+      surfaceFormats.resize( surfaceFormatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceFormats );
+    return createResultValueType( result, surfaceFormats );
   }
 
   template <typename SurfaceFormat2KHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SurfaceFormat2KHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type
                        PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                                            SurfaceFormat2KHRAllocator &                                surfaceFormat2KHRAllocator,
@@ -13779,31 +12802,28 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats( surfaceFormat2KHRAllocator );
     uint32_t                                                                         surfaceFormatCount;
-    VkResult                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                     result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormats2KHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         surfaceFormats.resize( surfaceFormatCount );
-        result = d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
-                                                          reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                          &surfaceFormatCount,
-                                                          reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                   &surfaceFormatCount,
+                                                   reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
-      VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
-      if ( surfaceFormatCount < surfaceFormats.size() )
-      {
-        surfaceFormats.resize( surfaceFormatCount );
-      }
+      surfaceFormats.resize( surfaceFormatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surfaceFormats );
+    return createResultValueType( result, surfaceFormats );
   }
 
   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch>
@@ -13815,12 +12835,12 @@
     std::vector<StructureChain, StructureChainAllocator> structureChains;
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
     uint32_t                                             surfaceFormatCount;
-    VkResult                                             result;
+    VULKAN_HPP_NAMESPACE::Result                         result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormats2KHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         structureChains.resize( surfaceFormatCount );
         surfaceFormats.resize( surfaceFormatCount );
@@ -13828,13 +12848,14 @@
         {
           surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext;
         }
-        result = d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
-                                                          reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                          &surfaceFormatCount,
-                                                          reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                   &surfaceFormatCount,
+                                                   reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
@@ -13844,7 +12865,7 @@
     {
       structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>() = surfaceFormats[i];
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChains );
+    return createResultValueType( result, structureChains );
   }
 
   template <typename StructureChain,
@@ -13862,12 +12883,12 @@
     std::vector<StructureChain, StructureChainAllocator> structureChains( structureChainAllocator );
     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
     uint32_t                                             surfaceFormatCount;
-    VkResult                                             result;
+    VULKAN_HPP_NAMESPACE::Result                         result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfaceFormats2KHR(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
       {
         structureChains.resize( surfaceFormatCount );
         surfaceFormats.resize( surfaceFormatCount );
@@ -13875,13 +12896,14 @@
         {
           surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext;
         }
-        result = d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
-                                                          reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                          &surfaceFormatCount,
-                                                          reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
+                                                   reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                   &surfaceFormatCount,
+                                                   reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
     if ( surfaceFormatCount < surfaceFormats.size() )
     {
@@ -13891,7 +12913,7 @@
     {
       structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>() = surfaceFormats[i];
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChains );
+    return createResultValueType( result, structureChains );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13917,34 +12939,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties;
     uint32_t                                                                                 propertyCount;
-    VkResult                                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                                             result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result =
-          d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayProperties2KHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayProperties2KHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type
     PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const
@@ -13953,28 +12971,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties( displayProperties2KHRAllocator );
     uint32_t                                                                                 propertyCount;
-    VkResult                                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                                             result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result =
-          d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13998,34 +13012,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties;
     uint32_t                                                                                           propertyCount;
-    VkResult                                                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                                                       result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayPlaneProperties2KHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayPlaneProperties2KHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type
     PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const
@@ -14034,28 +13044,24 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties( displayPlaneProperties2KHRAllocator );
     uint32_t                                                                                           propertyCount;
-    VkResult                                                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                                                       result;
     do
     {
-      result = d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14080,34 +13086,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties;
     uint32_t                                                                                         propertyCount;
-    VkResult                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                     result;
     do
     {
-      result = d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetDisplayModeProperties2KHR(
-          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
+          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename DisplayModeProperties2KHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, DisplayModeProperties2KHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type
     PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR     display,
@@ -14118,28 +13121,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties( displayModeProperties2KHRAllocator );
     uint32_t                                                                                         propertyCount;
-    VkResult                                                                                         result;
+    VULKAN_HPP_NAMESPACE::Result                                                                     result;
     do
     {
-      result = d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetDisplayModeProperties2KHR(
-          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
+          m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14163,12 +13163,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
-    VkResult                                           result = d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice,
-                                                           reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ),
-                                                           reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
+    VULKAN_HPP_NAMESPACE::Result                       result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice,
+                                                                                      reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ),
+                                                                                      reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), capabilities );
+    return createResultValueType( result, capabilities );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14198,14 +13199,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateIOSSurfaceMVK( m_instance,
                                reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
+                               reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -14218,16 +13219,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateIOSSurfaceMVK( m_instance,
                                reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                               reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique" );
+                               reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -14259,14 +13259,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMacOSSurfaceMVK( m_instance,
                                  reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -14279,16 +13279,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMacOSSurfaceMVK( m_instance,
                                  reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -14311,10 +13310,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14333,10 +13333,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14454,14 +13455,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
-    VkResult                                     result = d.vkCreateDebugUtilsMessengerEXT(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugUtilsMessengerEXT(
       m_instance,
       reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
+      reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), messenger );
+    return createResultValueType( result, messenger );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -14474,16 +13475,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
-    VkResult                                     result = d.vkCreateDebugUtilsMessengerEXT(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugUtilsMessengerEXT(
       m_instance,
       reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique" );
+      reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( messenger, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( messenger, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -14589,15 +13589,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
-    VkResult                                                     result =
-      d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
+    VULKAN_HPP_NAMESPACE::Result                                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
                        Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
@@ -14605,11 +13605,11 @@
     StructureChain<X, Y, Z...>                                     structureChain;
     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties =
       structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
-    VkResult result =
-      d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), structureChain );
+    return createResultValueType( result, structureChain );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -14631,16 +13631,328 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    struct AHardwareBuffer * buffer;
-    VkResult                 result =
-      d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
+    struct AHardwareBuffer *     buffer;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), buffer );
+    return createResultValueType( result, buffer );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::createExecutionGraphPipelinesAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
+                                               uint32_t                                                           createInfoCount,
+                                               const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,
+                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                  pAllocator,
+                                               VULKAN_HPP_NAMESPACE::Pipeline *                                   pPipelines,
+                                               Dispatch const &                                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateExecutionGraphPipelinesAMDX( m_device,
+                                                                       static_cast<VkPipelineCache>( pipelineCache ),
+                                                                       createInfoCount,
+                                                                       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( pCreateInfos ),
+                                                                       reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                                       reinterpret_cast<VkPipeline *>( pPipelines ) ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename PipelineAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>> Device::createExecutionGraphPipelinesAMDX(
+    VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+    Dispatch const &                                                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDX",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
+  }
+
+  template <typename PipelineAllocator,
+            typename Dispatch,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>> Device::createExecutionGraphPipelinesAMDX(
+    VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+    PipelineAllocator &                                                                                        pipelineAllocator,
+    Dispatch const &                                                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDX",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
+                                         Device::createExecutionGraphPipelineAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
+                                              const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,
+                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
+                                              Dispatch const &                                                   d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      1,
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelineAMDX",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipeline );
+  }
+
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch, typename PipelineAllocator>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                                         Device::createExecutionGraphPipelinesAMDXUnique(
+      VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+      Dispatch const &                                                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDXUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
+    uniquePipelines.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & pipeline : pipelines )
+    {
+      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
+    }
+    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
+  }
+
+  template <typename Dispatch,
+            typename PipelineAllocator,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                                         Device::createExecutionGraphPipelinesAMDXUnique(
+      VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+      PipelineAllocator &                                                                                        pipelineAllocator,
+      Dispatch const &                                                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDXUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
+    uniquePipelines.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & pipeline : pipelines )
+    {
+      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
+    }
+    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
+                                         Device::createExecutionGraphPipelineAMDXUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
+                                                    const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,
+                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
+                                                    Dispatch const &                                                   d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
+      m_device,
+      static_cast<VkPipelineCache>( pipelineCache ),
+      1,
+      reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelineAMDXUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                executionGraph,
+                                                      VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX * pSizeInfo,
+                                                      Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetExecutionGraphPipelineScratchSizeAMDX(
+      m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( pSizeInfo ) ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>::type
+                       Device::getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline executionGraph, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX sizeInfo;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetExecutionGraphPipelineScratchSizeAMDX(
+      m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( &sizeInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getExecutionGraphPipelineScratchSizeAMDX" );
+
+    return createResultValueType( result, sizeInfo );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::getExecutionGraphPipelineNodeIndexAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                      executionGraph,
+                                                    const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,
+                                                    uint32_t *                                                          pNodeIndex,
+                                                    Dispatch const &                                                    d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetExecutionGraphPipelineNodeIndexAMDX(
+      m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( pNodeInfo ), pNodeIndex ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type Device::getExecutionGraphPipelineNodeIndexAMDX(
+    VULKAN_HPP_NAMESPACE::Pipeline executionGraph, const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    uint32_t                     nodeIndex;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetExecutionGraphPipelineNodeIndexAMDX(
+      m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( &nodeInfo ), &nodeIndex ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getExecutionGraphPipelineNodeIndexAMDX" );
+
+    return createResultValueType( result, nodeIndex );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                                                          Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdInitializeGraphScratchMemoryAMDX( m_commandBuffer, static_cast<VkDeviceAddress>( scratch ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                           const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
+                                                           Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdDispatchGraphAMDX( m_commandBuffer, static_cast<VkDeviceAddress>( scratch ), reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( pCountInfo ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                           const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
+                                                           Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdDispatchGraphAMDX( m_commandBuffer, static_cast<VkDeviceAddress>( scratch ), reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                                   const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
+                                                                   Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdDispatchGraphIndirectAMDX(
+      m_commandBuffer, static_cast<VkDeviceAddress>( scratch ), reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( pCountInfo ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                                   const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
+                                                                   Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdDispatchGraphIndirectAMDX(
+      m_commandBuffer, static_cast<VkDeviceAddress>( scratch ), reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                                                        VULKAN_HPP_NAMESPACE::DeviceAddress countInfo,
+                                                                        Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdDispatchGraphIndirectCountAMDX( m_commandBuffer, static_cast<VkDeviceAddress>( scratch ), static_cast<VkDeviceAddress>( countInfo ) );
+  }
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   //=== VK_EXT_sample_locations ===
 
   template <typename Dispatch>
@@ -14714,13 +14026,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetImageMemoryRequirements2KHR(
       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -14753,13 +14065,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetBufferMemoryRequirements2KHR(
       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -14808,7 +14120,7 @@
   template <typename SparseImageMemoryRequirements2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                                          Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
                                                   SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
@@ -14862,14 +14174,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
-    VkResult                                       result = d.vkCreateAccelerationStructureKHR(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureKHR(
       m_device,
       reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
+      reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), accelerationStructure );
+    return createResultValueType( result, accelerationStructure );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -14882,15 +14194,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
-    VkResult                                       result = d.vkCreateAccelerationStructureKHR(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureKHR(
       m_device,
       reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique" );
+      reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>( accelerationStructure, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -15074,14 +14386,14 @@
     }
 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
-    VkResult result =
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkBuildAccelerationStructuresKHR( m_device,
                                           static_cast<VkDeferredOperationKHR>( deferredOperation ),
                                           infos.size(),
                                           reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ),
-                                          reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) );
+                                          reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -15108,10 +14420,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCopyAccelerationStructureKHR(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyAccelerationStructureKHR(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -15139,10 +14451,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCopyAccelerationStructureToMemoryKHR(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyAccelerationStructureToMemoryKHR(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -15170,10 +14482,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCopyMemoryToAccelerationStructureKHR(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMemoryToAccelerationStructureKHR(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -15215,16 +14527,17 @@
 
     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
-                                                                    accelerationStructures.size(),
-                                                                    reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
-                                                                    static_cast<VkQueryType>( queryType ),
-                                                                    data.size() * sizeof( DataType ),
-                                                                    reinterpret_cast<void *>( data.data() ),
-                                                                    stride );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
+                                                    accelerationStructures.size(),
+                                                    reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
+                                                    static_cast<VkQueryType>( queryType ),
+                                                    data.size() * sizeof( DataType ),
+                                                    reinterpret_cast<void *>( data.data() ),
+                                                    stride ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename DataType, typename Dispatch>
@@ -15236,17 +14549,18 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
-                                                                    accelerationStructures.size(),
-                                                                    reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
-                                                                    static_cast<VkQueryType>( queryType ),
-                                                                    sizeof( DataType ),
-                                                                    reinterpret_cast<void *>( &data ),
-                                                                    stride );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
+                                                    accelerationStructures.size(),
+                                                    reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
+                                                    static_cast<VkQueryType>( queryType ),
+                                                    sizeof( DataType ),
+                                                    reinterpret_cast<void *>( &data ),
+                                                    stride ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15441,6 +14755,421 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_KHR_ray_tracing_pipeline ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                                                      uint32_t                                                    width,
+                                                      uint32_t                                                    height,
+                                                      uint32_t                                                    depth,
+                                                      Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdTraceRaysKHR( m_commandBuffer,
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
+                         width,
+                         height,
+                         depth );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                                                      uint32_t                                                    width,
+                                                      uint32_t                                                    height,
+                                                      uint32_t                                                    depth,
+                                                      Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdTraceRaysKHR( m_commandBuffer,
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
+                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
+                         width,
+                         height,
+                         depth );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
+                                          VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
+                                          uint32_t                                                      createInfoCount,
+                                          const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks *             pAllocator,
+                                          VULKAN_HPP_NAMESPACE::Pipeline *                              pPipelines,
+                                          Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device,
+                                                                  static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                                  static_cast<VkPipelineCache>( pipelineCache ),
+                                                                  createInfoCount,
+                                                                  reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ),
+                                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                                  reinterpret_cast<VkPipeline *>( pPipelines ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename PipelineAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                                         Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
+                                          VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
+                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+                                          Dispatch const &                                                                                      d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
+  }
+
+  template <typename PipelineAllocator,
+            typename Dispatch,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                                         Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
+                                          VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
+                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+                                          PipelineAllocator & pipelineAllocator,
+                                          Dispatch const &    d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
+                                         Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
+                                         VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
+                                         const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
+                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
+                                         Dispatch const &                                              d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      1,
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipeline );
+  }
+
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch, typename PipelineAllocator>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                                         Device::createRayTracingPipelinesKHRUnique(
+      VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
+      VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+      Dispatch const &                                                                                      d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
+    uniquePipelines.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & pipeline : pipelines )
+    {
+      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
+    }
+    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
+  }
+
+  template <typename Dispatch,
+            typename PipelineAllocator,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                                         Device::createRayTracingPipelinesKHRUnique(
+      VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
+      VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+      PipelineAllocator &                                                                                   pipelineAllocator,
+      Dispatch const &                                                                                      d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      createInfos.size(),
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
+    uniquePipelines.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & pipeline : pipelines )
+    {
+      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
+    }
+    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
+                                         Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
+                                               VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
+                                               const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
+                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
+                                               Dispatch const &                                              d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
+      m_device,
+      static_cast<VkDeferredOperationKHR>( deferredOperation ),
+      static_cast<VkPipelineCache>( pipelineCache ),
+      1,
+      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
+                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique",
+                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
+                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
+
+    return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                                                                            uint32_t                       firstGroup,
+                                                                                            uint32_t                       groupCount,
+                                                                                            size_t                         dataSize,
+                                                                                            void *                         pData,
+                                                                                            Dispatch const &               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename DataType, typename DataTypeAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type Device::getRayTracingShaderGroupHandlesKHR(
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
+    std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
+
+    return createResultValueType( result, data );
+  }
+
+  template <typename DataType, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
+    Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
+
+    return createResultValueType( result, data );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                                                                                         uint32_t                       firstGroup,
+                                                                                                         uint32_t                       groupCount,
+                                                                                                         size_t                         dataSize,
+                                                                                                         void *                         pData,
+                                                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename DataType, typename DataTypeAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
+                       Device::getRayTracingCaptureReplayShaderGroupHandlesKHR(
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
+    std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
+
+    return createResultValueType( result, data );
+  }
+
+  template <typename DataType, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR(
+    VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
+
+    return createResultValueType( result, data );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                                                              VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
+                                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdTraceRaysIndirectKHR( m_commandBuffer,
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
+                                 static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                                                              VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
+                                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdTraceRaysIndirectKHR( m_commandBuffer,
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
+                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
+                                 static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline             pipeline,
+                                                                             uint32_t                                   group,
+                                                                             VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
+                                                                             Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<DeviceSize>(
+      d.vkGetRayTracingShaderGroupStackSizeKHR( m_device, static_cast<VkPipeline>( pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize );
+  }
+
   //=== VK_KHR_sampler_ycbcr_conversion ===
 
   template <typename Dispatch>
@@ -15467,14 +15196,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
-    VkResult                                     result = d.vkCreateSamplerYcbcrConversionKHR(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversionKHR(
       m_device,
       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
+      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), ycbcrConversion );
+    return createResultValueType( result, ycbcrConversion );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -15487,16 +15216,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
-    VkResult                                     result = d.vkCreateSamplerYcbcrConversionKHR(
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversionKHR(
       m_device,
       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique" );
+      reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -15545,10 +15273,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15568,10 +15297,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15594,11 +15324,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
-    VkResult                                                  result = d.vkGetImageDrmFormatModifierPropertiesEXT(
-      m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
+    VULKAN_HPP_NAMESPACE::Result                              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetImageDrmFormatModifierPropertiesEXT(
+      m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15627,14 +15357,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
-    VkResult                                 result = d.vkCreateValidationCacheEXT(
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateValidationCacheEXT(
       m_device,
       reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
+      reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), validationCache );
+    return createResultValueType( result, validationCache );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -15647,16 +15377,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
-    VkResult                                 result = d.vkCreateValidationCacheEXT(
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateValidationCacheEXT(
       m_device,
       reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique" );
+      reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( validationCache, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( validationCache, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -15731,11 +15460,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkMergeValidationCachesEXT(
-      m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMergeValidationCachesEXT(
+      m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15758,28 +15487,25 @@
 
     std::vector<uint8_t, Uint8_tAllocator> data;
     size_t                                 dataSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr );
-      if ( ( result == VK_SUCCESS ) && dataSize )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
       {
         data.resize( dataSize );
-        result =
-          d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
     VULKAN_HPP_ASSERT( dataSize <= data.size() );
     if ( dataSize < data.size() )
     {
-      VULKAN_HPP_ASSERT( dataSize <= data.size() );
-      if ( dataSize < data.size() )
-      {
-        data.resize( dataSize );
-      }
+      data.resize( dataSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename Uint8_tAllocator,
@@ -15793,28 +15519,25 @@
 
     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
     size_t                                 dataSize;
-    VkResult                               result;
+    VULKAN_HPP_NAMESPACE::Result           result;
     do
     {
-      result = d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr );
-      if ( ( result == VK_SUCCESS ) && dataSize )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
       {
         data.resize( dataSize );
-        result =
-          d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
     VULKAN_HPP_ASSERT( dataSize <= data.size() );
     if ( dataSize < data.size() )
     {
-      VULKAN_HPP_ASSERT( dataSize <= data.size() );
-      if ( dataSize < data.size() )
-      {
-        data.resize( dataSize );
-      }
+      data.resize( dataSize );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -15909,14 +15632,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
-    VkResult                                      result = d.vkCreateAccelerationStructureNV(
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureNV(
       m_device,
       reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
+      reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), accelerationStructure );
+    return createResultValueType( result, accelerationStructure );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -15929,15 +15652,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
-    VkResult                                      result = d.vkCreateAccelerationStructureNV(
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureNV(
       m_device,
       reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique" );
+      reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>( accelerationStructure, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -16022,14 +15745,14 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,
                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                     structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR &   memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device,
                                                       reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ),
                                                       reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
@@ -16054,11 +15777,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindAccelerationStructureMemoryNV(
-      m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBindAccelerationStructureMemoryNV(
+      m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16187,14 +15910,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
-    VkResult                                                       result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -16204,7 +15927,7 @@
   template <typename PipelineAllocator,
             typename Dispatch,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                                          Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache                                                                  pipelineCache,
                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
@@ -16215,14 +15938,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
-    VkResult                                                       result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -16239,14 +15962,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -16264,14 +15987,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
@@ -16288,7 +16011,7 @@
   template <typename Dispatch,
             typename PipelineAllocator,
             typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                                          Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
@@ -16299,14 +16022,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       createInfos.size(),
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
@@ -16330,14 +16053,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateRayTracingPipelinesNV(
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
       m_device,
       static_cast<VkPipelineCache>( pipelineCache ),
       1,
       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
 
@@ -16370,11 +16093,11 @@
 
     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkGetRayTracingShaderGroupHandlesNV(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesNV(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename DataType, typename Dispatch>
@@ -16383,12 +16106,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetRayTracingShaderGroupHandlesNV(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesNV(
+      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16412,11 +16135,11 @@
 
     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkGetAccelerationStructureHandleNV(
-      m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
+    VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureHandleNV(
+      m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename DataType, typename Dispatch>
@@ -16425,12 +16148,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetAccelerationStructureHandleNV(
-      m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), sizeof( DataType ), reinterpret_cast<void *>( &data ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureHandleNV(
+      m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16483,14 +16206,15 @@
 #else
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
-    Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const
+                                          Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -16522,13 +16246,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                                          Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                         structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
     d.vkGetDescriptorSetLayoutSupportKHR(
       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
@@ -16603,13 +16327,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
-    VkResult                                             result = d.vkGetMemoryHostPointerPropertiesEXT( m_device,
-                                                             static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
-                                                             pHostPointer,
-                                                             reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
+    VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryHostPointerPropertiesEXT( m_device,
+                                             static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
+                                             pHostPointer,
+                                             reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryHostPointerProperties );
+    return createResultValueType( result, memoryHostPointerProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16634,112 +16359,104 @@
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t *                            pTimeDomainCount,
-                                                                                                VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,
+                                                                                                VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
                                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
     return static_cast<Result>(
-      d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( pTimeDomains ) ) );
+      d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( pTimeDomains ) ) );
   }
 
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename TimeDomainEXTAllocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator>>::type
+  template <typename TimeDomainKHRAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
                        PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator> timeDomains;
+    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains;
     uint32_t                                                                 timeDomainCount;
-    VkResult                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                             result;
     do
     {
-      result = d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && timeDomainCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
       {
         timeDomains.resize( timeDomainCount );
-        result =
-          d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
     if ( timeDomainCount < timeDomains.size() )
     {
-      VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
-      if ( timeDomainCount < timeDomains.size() )
-      {
-        timeDomains.resize( timeDomainCount );
-      }
+      timeDomains.resize( timeDomainCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), timeDomains );
+    return createResultValueType( result, timeDomains );
   }
 
-  template <typename TimeDomainEXTAllocator,
+  template <typename TimeDomainKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, TimeDomainEXT>::value, int>::type>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator>>::type
-                       PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d ) const
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+                       PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator> timeDomains( timeDomainEXTAllocator );
+    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains( timeDomainKHRAllocator );
     uint32_t                                                                 timeDomainCount;
-    VkResult                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                             result;
     do
     {
-      result = d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && timeDomainCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
       {
         timeDomains.resize( timeDomainCount );
-        result =
-          d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
     if ( timeDomainCount < timeDomains.size() )
     {
-      VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
-      if ( timeDomainCount < timeDomains.size() )
-      {
-        timeDomains.resize( timeDomainCount );
-      }
+      timeDomains.resize( timeDomainCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), timeDomains );
+    return createResultValueType( result, timeDomains );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t                                                 timestampCount,
-                                                                                    const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,
+                                                                                    const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
                                                                                     uint64_t *                                               pTimestamps,
                                                                                     uint64_t *                                               pMaxDeviation,
                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT(
-      m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
+      m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
   }
 
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Uint64_tAllocator, typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
-    Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,
+    Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
                                         Dispatch const &                                                                                 d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data(
+    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
-    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data.first;
-    uint64_t &                                 maxDeviation = data.second;
-    VkResult                                   result       = d.vkGetCalibratedTimestampsEXT(
-      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
+    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
+    uint64_t &                                 maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsEXT(
+      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data_ );
   }
 
   template <typename Uint64_tAllocator,
@@ -16747,37 +16464,37 @@
             typename B0,
             typename std::enable_if<std::is_same<typename B0::value_type, uint64_t>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
-    Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,
+    Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
                                         Uint64_tAllocator &                                                                              uint64_tAllocator,
                                         Dispatch const &                                                                                 d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data(
+    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
-    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data.first;
-    uint64_t &                                 maxDeviation = data.second;
-    VkResult                                   result       = d.vkGetCalibratedTimestampsEXT(
-      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
+    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
+    uint64_t &                                 maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsEXT(
+      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data_ );
   }
 
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
-                       Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo, Dispatch const & d ) const
+                       Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::pair<uint64_t, uint64_t> data;
-    uint64_t &                    timestamp    = data.first;
-    uint64_t &                    maxDeviation = data.second;
-    VkResult                      result =
-      d.vkGetCalibratedTimestampsEXT( m_device, 1, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( &timestampInfo ), &timestamp, &maxDeviation );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
+    std::pair<uint64_t, uint64_t> data_;
+    uint64_t &                    timestamp    = data_.first;
+    uint64_t &                    maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetCalibratedTimestampsEXT( m_device, 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data_ );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16823,6 +16540,31 @@
   //=== VK_NV_scissor_exclusive ===
 
   template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorEnableNV( uint32_t                             firstExclusiveScissor,
+                                                                     uint32_t                             exclusiveScissorCount,
+                                                                     const VULKAN_HPP_NAMESPACE::Bool32 * pExclusiveScissorEnables,
+                                                                     Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetExclusiveScissorEnableNV(
+      m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkBool32 *>( pExclusiveScissorEnables ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::setExclusiveScissorEnableNV( uint32_t                                                                     firstExclusiveScissor,
+                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables,
+                                                Dispatch const &                                                             d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdSetExclusiveScissorEnableNV(
+      m_commandBuffer, firstExclusiveScissor, exclusiveScissorEnables.size(), reinterpret_cast<const VkBool32 *>( exclusiveScissorEnables.data() ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t                             firstExclusiveScissor,
                                                                uint32_t                             exclusiveScissorCount,
                                                                const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,
@@ -16897,7 +16639,7 @@
   template <typename CheckpointDataNVAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, CheckpointDataNV>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CheckpointDataNV>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator>
                                          Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
   {
@@ -16936,11 +16678,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    uint64_t value;
-    VkResult result = d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
+    uint64_t                     value;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), value );
+    return createResultValueType( result, value );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -16960,10 +16703,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -16984,10 +16727,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17009,10 +16753,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17038,10 +16783,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17061,10 +16807,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17084,10 +16831,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17111,12 +16859,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
-    VkResult                                            result = d.vkAcquirePerformanceConfigurationINTEL( m_device,
-                                                                reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
-                                                                reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
+    VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkAcquirePerformanceConfigurationINTEL( m_device,
+                                                reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
+                                                reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), configuration );
+    return createResultValueType( result, configuration );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -17128,14 +16877,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
-    VkResult                                            result = d.vkAcquirePerformanceConfigurationINTEL( m_device,
-                                                                reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
-                                                                reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique" );
+    VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkAcquirePerformanceConfigurationINTEL( m_device,
+                                                reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
+                                                reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( configuration, ObjectRelease<Device, Dispatch>( *this, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( configuration, ObjectRelease<Device, Dispatch>( *this, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -17155,10 +16904,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -17173,14 +16923,15 @@
 #else
   template <typename Dispatch>
   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
-    Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
+                                          Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -17199,10 +16950,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -17224,11 +16976,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
-    VkResult                                    result = d.vkGetPerformanceParameterINTEL(
-      m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
+    VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPerformanceParameterINTEL(
+      m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), value );
+    return createResultValueType( result, value );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17270,14 +17022,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateImagePipeSurfaceFUCHSIA(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
       m_instance,
       reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -17290,16 +17042,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateImagePipeSurfaceFUCHSIA(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
       m_instance,
       reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -17331,14 +17082,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMetalSurfaceEXT( m_instance,
                                  reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -17351,16 +17102,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result =
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMetalSurfaceEXT( m_instance,
                                  reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique" );
+                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -17389,34 +17139,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates;
     uint32_t                                                                                                               fragmentShadingRateCount;
-    VkResult                                                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && fragmentShadingRateCount )
+      result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount )
       {
         fragmentShadingRates.resize( fragmentShadingRateCount );
-        result = d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
-          m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
+          m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
     VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
     if ( fragmentShadingRateCount < fragmentShadingRates.size() )
     {
-      VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
-      if ( fragmentShadingRateCount < fragmentShadingRates.size() )
-      {
-        fragmentShadingRates.resize( fragmentShadingRateCount );
-      }
+      fragmentShadingRates.resize( fragmentShadingRateCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fragmentShadingRates );
+    return createResultValueType( result, fragmentShadingRates );
   }
 
   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type
     PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,
@@ -17426,29 +17173,26 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates(
       physicalDeviceFragmentShadingRateKHRAllocator );
-    uint32_t fragmentShadingRateCount;
-    VkResult result;
+    uint32_t                     fragmentShadingRateCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && fragmentShadingRateCount )
+      result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount )
       {
         fragmentShadingRates.resize( fragmentShadingRateCount );
-        result = d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
-          m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
+          m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
     VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
     if ( fragmentShadingRateCount < fragmentShadingRates.size() )
     {
-      VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
-      if ( fragmentShadingRateCount < fragmentShadingRates.size() )
-      {
-        fragmentShadingRates.resize( fragmentShadingRateCount );
-      }
+      fragmentShadingRates.resize( fragmentShadingRateCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), fragmentShadingRates );
+    return createResultValueType( result, fragmentShadingRates );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17520,34 +17264,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties;
     uint32_t                                                                                               toolCount;
-    VkResult                                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && toolCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
       {
         toolProperties.resize( toolCount );
-        result =
-          d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
     if ( toolCount < toolProperties.size() )
     {
-      VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
-      if ( toolCount < toolProperties.size() )
-      {
-        toolProperties.resize( toolCount );
-      }
+      toolProperties.resize( toolCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), toolProperties );
+    return createResultValueType( result, toolProperties );
   }
 
   template <typename PhysicalDeviceToolPropertiesAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceToolProperties>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
     PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator, Dispatch const & d ) const
@@ -17556,29 +17296,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties(
       physicalDeviceToolPropertiesAllocator );
-    uint32_t toolCount;
-    VkResult result;
+    uint32_t                     toolCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && toolCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
       {
         toolProperties.resize( toolCount );
-        result =
-          d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
     if ( toolCount < toolProperties.size() )
     {
-      VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
-      if ( toolCount < toolProperties.size() )
-      {
-        toolProperties.resize( toolCount );
-      }
+      toolProperties.resize( toolCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), toolProperties );
+    return createResultValueType( result, toolProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17601,8 +17337,9 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::waitForPresentKHR",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
@@ -17610,36 +17347,6 @@
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-  //=== VK_KHR_present_wait ===
-
-#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
-                               uint64_t                           presentId,
-                               uint64_t                           timeout,
-                               Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>(
-      d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
-  }
-#else
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
-                                                                           uint64_t                           presentId,
-                                                                           uint64_t                           timeout,
-                                                                           Dispatch const &                   d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    Result result = static_cast<Result>(
-      d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
-    return createResultValue( result,
-                              VULKAN_HPP_NAMESPACE_STRING "::Device::waitForPresentKHR",
-                              { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
-  }
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
   //=== VK_NV_cooperative_matrix ===
 
   template <typename Dispatch>
@@ -17661,34 +17368,30 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties;
     uint32_t                                                                                                 propertyCount;
-    VkResult                                                                                                 result;
+    VULKAN_HPP_NAMESPACE::Result                                                                             result;
     do
     {
-      result = d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename CooperativeMatrixPropertiesNVAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, CooperativeMatrixPropertiesNV>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type
     PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,
@@ -17698,29 +17401,25 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties(
       cooperativeMatrixPropertiesNVAllocator );
-    uint32_t propertyCount;
-    VkResult result;
+    uint32_t                     propertyCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertyCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
       {
         properties.resize( propertyCount );
-        result = d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
-          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
     if ( propertyCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
-      if ( propertyCount < properties.size() )
-      {
-        properties.resize( propertyCount );
-      }
+      properties.resize( propertyCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17745,35 +17444,31 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations;
     uint32_t                                                                                                               combinationCount;
-    VkResult                                                                                                               result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                           result;
     do
     {
-      result = d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && combinationCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount )
       {
         combinations.resize( combinationCount );
-        result = d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
-          m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+          m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
     VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
     if ( combinationCount < combinations.size() )
     {
-      VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
-      if ( combinationCount < combinations.size() )
-      {
-        combinations.resize( combinationCount );
-      }
+      combinations.resize( combinationCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), combinations );
+    return createResultValueType( result, combinations );
   }
 
   template <typename FramebufferMixedSamplesCombinationNVAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type
     PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(
@@ -17783,30 +17478,26 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations(
       framebufferMixedSamplesCombinationNVAllocator );
-    uint32_t combinationCount;
-    VkResult result;
+    uint32_t                     combinationCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && combinationCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount )
       {
         combinations.resize( combinationCount );
-        result = d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
-          m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+          m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
     VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
     if ( combinationCount < combinations.size() )
     {
-      VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
-      if ( combinationCount < combinations.size() )
-      {
-        combinations.resize( combinationCount );
-      }
+      combinations.resize( combinationCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), combinations );
+    return createResultValueType( result, combinations );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17836,37 +17527,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes;
     uint32_t                                                                   presentModeCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentModeCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
       {
         presentModes.resize( presentModeCount );
-        result = d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
-                                                               reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                               &presentModeCount,
-                                                               reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
+                                                        reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                        &presentModeCount,
+                                                        reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
     if ( presentModeCount < presentModes.size() )
     {
-      VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
-      if ( presentModeCount < presentModes.size() )
-      {
-        presentModes.resize( presentModeCount );
-      }
+      presentModes.resize( presentModeCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentModes );
+    return createResultValueType( result, presentModes );
   }
 
   template <typename PresentModeKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PresentModeKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
                        PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                                                 PresentModeKHRAllocator &                                   presentModeKHRAllocator,
@@ -17876,31 +17564,28 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
     uint32_t                                                                   presentModeCount;
-    VkResult                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                               result;
     do
     {
-      result = d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
-        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && presentModeCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
+        m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
       {
         presentModes.resize( presentModeCount );
-        result = d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
-                                                               reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                               &presentModeCount,
-                                                               reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
+                                                        reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                        &presentModeCount,
+                                                        reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
     if ( presentModeCount < presentModes.size() )
     {
-      VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
-      if ( presentModeCount < presentModes.size() )
-      {
-        presentModes.resize( presentModeCount );
-      }
+      presentModes.resize( presentModeCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), presentModes );
+    return createResultValueType( result, presentModes );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -17919,10 +17604,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -17941,10 +17627,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -17967,11 +17654,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
-    VkResult                                             result = d.vkGetDeviceGroupSurfacePresentModes2EXT(
-      m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
+    VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT(
+      m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), modes );
+    return createResultValueType( result, modes );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
@@ -18001,14 +17688,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateHeadlessSurfaceEXT(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateHeadlessSurfaceEXT(
       m_instance,
       reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -18021,16 +17708,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateHeadlessSurfaceEXT(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateHeadlessSurfaceEXT(
       m_instance,
       reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -18316,13 +18002,13 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
-    VkResult                                   result = d.vkCreateDeferredOperationKHR(
+    VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDeferredOperationKHR(
       m_device,
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
+      reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), deferredOperation );
+    return createResultValueType( result, deferredOperation );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -18333,15 +18019,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
-    VkResult                                   result = d.vkCreateDeferredOperationKHR(
+    VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDeferredOperationKHR(
       m_device,
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique" );
+      reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( deferredOperation, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( deferredOperation, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -18419,7 +18104,8 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
 
     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
   }
@@ -18440,8 +18126,9 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
 
@@ -18474,36 +18161,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties;
     uint32_t                                                                                                     executableCount;
-    VkResult                                                                                                     result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                 result;
     do
     {
-      result = d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && executableCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount )
       {
         properties.resize( executableCount );
-        result = d.vkGetPipelineExecutablePropertiesKHR( m_device,
-                                                         reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
-                                                         &executableCount,
-                                                         reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineExecutablePropertiesKHR( m_device,
+                                                  reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
+                                                  &executableCount,
+                                                  reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
     VULKAN_HPP_ASSERT( executableCount <= properties.size() );
     if ( executableCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( executableCount <= properties.size() );
-      if ( executableCount < properties.size() )
-      {
-        properties.resize( executableCount );
-      }
+      properties.resize( executableCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 
   template <typename PipelineExecutablePropertiesKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutablePropertiesKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type
     Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo,
@@ -18514,31 +18199,29 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties(
       pipelineExecutablePropertiesKHRAllocator );
-    uint32_t executableCount;
-    VkResult result;
+    uint32_t                     executableCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && executableCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount )
       {
         properties.resize( executableCount );
-        result = d.vkGetPipelineExecutablePropertiesKHR( m_device,
-                                                         reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
-                                                         &executableCount,
-                                                         reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineExecutablePropertiesKHR( m_device,
+                                                  reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
+                                                  &executableCount,
+                                                  reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
     VULKAN_HPP_ASSERT( executableCount <= properties.size() );
     if ( executableCount < properties.size() )
     {
-      VULKAN_HPP_ASSERT( executableCount <= properties.size() );
-      if ( executableCount < properties.size() )
-      {
-        properties.resize( executableCount );
-      }
+      properties.resize( executableCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -18566,37 +18249,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics;
     uint32_t                                                                                                   statisticCount;
-    VkResult                                                                                                   result;
+    VULKAN_HPP_NAMESPACE::Result                                                                               result;
     do
     {
-      result =
-        d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && statisticCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableStatisticsKHR(
+        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount )
       {
         statistics.resize( statisticCount );
-        result = d.vkGetPipelineExecutableStatisticsKHR( m_device,
-                                                         reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
-                                                         &statisticCount,
-                                                         reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineExecutableStatisticsKHR( m_device,
+                                                  reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
+                                                  &statisticCount,
+                                                  reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
     VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
     if ( statisticCount < statistics.size() )
     {
-      VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
-      if ( statisticCount < statistics.size() )
-      {
-        statistics.resize( statisticCount );
-      }
+      statistics.resize( statisticCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), statistics );
+    return createResultValueType( result, statistics );
   }
 
   template <typename PipelineExecutableStatisticKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutableStatisticKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type
     Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,
@@ -18607,32 +18287,29 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics(
       pipelineExecutableStatisticKHRAllocator );
-    uint32_t statisticCount;
-    VkResult result;
+    uint32_t                     statisticCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result =
-        d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && statisticCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableStatisticsKHR(
+        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount )
       {
         statistics.resize( statisticCount );
-        result = d.vkGetPipelineExecutableStatisticsKHR( m_device,
-                                                         reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
-                                                         &statisticCount,
-                                                         reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPipelineExecutableStatisticsKHR( m_device,
+                                                  reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
+                                                  &statisticCount,
+                                                  reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
     VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
     if ( statisticCount < statistics.size() )
     {
-      VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
-      if ( statisticCount < statistics.size() )
-      {
-        statistics.resize( statisticCount );
-      }
+      statistics.resize( statisticCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), statistics );
+    return createResultValueType( result, statistics );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -18660,40 +18337,36 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
-             internalRepresentations;
-    uint32_t internalRepresentationCount;
-    VkResult result;
+                                 internalRepresentations;
+    uint32_t                     internalRepresentationCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPipelineExecutableInternalRepresentationsKHR(
-        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && internalRepresentationCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
+        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount )
       {
         internalRepresentations.resize( internalRepresentationCount );
-        result = d.vkGetPipelineExecutableInternalRepresentationsKHR(
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
           m_device,
           reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
           &internalRepresentationCount,
-          reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) );
+          reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
     VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
     if ( internalRepresentationCount < internalRepresentations.size() )
     {
-      VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
-      if ( internalRepresentationCount < internalRepresentations.size() )
-      {
-        internalRepresentations.resize( internalRepresentationCount );
-      }
+      internalRepresentations.resize( internalRepresentationCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), internalRepresentations );
+    return createResultValueType( result, internalRepresentations );
   }
 
   template <typename PipelineExecutableInternalRepresentationKHRAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type
     Device::getPipelineExecutableInternalRepresentationsKHR(
@@ -18704,34 +18377,219 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
-             internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
-    uint32_t internalRepresentationCount;
-    VkResult result;
+                                 internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
+    uint32_t                     internalRepresentationCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPipelineExecutableInternalRepresentationsKHR(
-        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && internalRepresentationCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
+        m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount )
       {
         internalRepresentations.resize( internalRepresentationCount );
-        result = d.vkGetPipelineExecutableInternalRepresentationsKHR(
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
           m_device,
           reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
           &internalRepresentationCount,
-          reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) );
+          reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
     VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
     if ( internalRepresentationCount < internalRepresentations.size() )
     {
-      VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
-      if ( internalRepresentationCount < internalRepresentations.size() )
-      {
-        internalRepresentations.resize( internalRepresentationCount );
-      }
+      internalRepresentations.resize( internalRepresentationCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), internalRepresentations );
+    return createResultValueType( result, internalRepresentations );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_EXT_host_image_copy ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo,
+                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCopyMemoryToImageEXT( m_device, reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( pCopyMemoryToImageInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
+    Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCopyMemoryToImageEXT( m_device, reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( &copyMemoryToImageInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo,
+                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCopyImageToMemoryEXT( m_device, reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( pCopyImageToMemoryInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
+    Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCopyImageToMemoryEXT( m_device, reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( &copyImageToMemoryInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT * pCopyImageToImageInfo,
+                                                                             Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCopyImageToImageEXT( m_device, reinterpret_cast<const VkCopyImageToImageInfoEXT *>( pCopyImageToImageInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
+    Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCopyImageToImageEXT( m_device, reinterpret_cast<const VkCopyImageToImageInfoEXT *>( &copyImageToImageInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImageEXT" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::transitionImageLayoutEXT( uint32_t transitionCount,
+                                                                                  const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT * pTransitions,
+                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkTransitionImageLayoutEXT( m_device, transitionCount, reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( pTransitions ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
+    Device::transitionImageLayoutEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions,
+                                      Dispatch const &                                                                                       d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkTransitionImageLayoutEXT( m_device, transitions.size(), reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( transitions.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                                const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource,
+                                                                VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *      pLayout,
+                                                                Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetImageSubresourceLayout2EXT( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( pSubresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( pLayout ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR Device::getImageSubresourceLayout2EXT(
+    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+    d.vkGetImageSubresourceLayout2EXT( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return layout;
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2EXT(
+    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+    d.vkGetImageSubresourceLayout2EXT( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return structureChain;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_KHR_map_memory2 ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR * pMemoryMapInfo,
+                                                                       void **                                        ppData,
+                                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkMapMemory2KHR( m_device, reinterpret_cast<const VkMemoryMapInfoKHR *>( pMemoryMapInfo ), ppData ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<void *>::type
+                       Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    void *                       pData;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMapMemory2KHR( m_device, reinterpret_cast<const VkMemoryMapInfoKHR *>( &memoryMapInfo ), &pData ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2KHR" );
+
+    return createResultValueType( result, pData );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE Result Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR * pMemoryUnmapInfo,
+                                                    Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkUnmapMemory2KHR( m_device, reinterpret_cast<const VkMemoryUnmapInfoKHR *>( pMemoryUnmapInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo,
+                                                  Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkUnmapMemory2KHR( m_device, reinterpret_cast<const VkMemoryUnmapInfoKHR *>( &memoryUnmapInfo ) );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -18752,10 +18610,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkReleaseSwapchainImagesEXT( m_device, reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkReleaseSwapchainImagesEXT( m_device, reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -18789,14 +18648,14 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,
                                                       Dispatch const &                                                        d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device,
                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ),
                                                   reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -18881,14 +18740,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
-    VkResult                                       result = d.vkCreateIndirectCommandsLayoutNV(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutNV(
       m_device,
       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
+      reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), indirectCommandsLayout );
+    return createResultValueType( result, indirectCommandsLayout );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -18901,14 +18760,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
-    VkResult                                       result = d.vkCreateIndirectCommandsLayoutNV(
+    VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutNV(
       m_device,
       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique" );
+      reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>(
                                     indirectCommandsLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
@@ -18965,6 +18824,27 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_EXT_depth_bias_control ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT * pDepthBiasInfo,
+                                                          Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetDepthBias2EXT( m_commandBuffer, reinterpret_cast<const VkDepthBiasInfoEXT *>( pDepthBiasInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo,
+                                                          Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdSetDepthBias2EXT( m_commandBuffer, reinterpret_cast<const VkDepthBiasInfoEXT *>( &depthBiasInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
   //=== VK_EXT_acquire_drm_display ===
 
 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
@@ -18983,10 +18863,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkAcquireDrmDisplayEXT( m_physicalDevice, drmFd, static_cast<VkDisplayKHR>( display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireDrmDisplayEXT( m_physicalDevice, drmFd, static_cast<VkDisplayKHR>( display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -19008,10 +18889,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXT" );
+    VULKAN_HPP_NAMESPACE::Result     result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), display );
+    return createResultValueType( result, display );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -19022,10 +18904,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXTUnique" );
+    VULKAN_HPP_NAMESPACE::Result     result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXTUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -19056,14 +18939,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    VkResult                              result = d.vkCreatePrivateDataSlotEXT(
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePrivateDataSlotEXT(
       m_device,
       reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
+      reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), privateDataSlot );
+    return createResultValueType( result, privateDataSlot );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -19076,16 +18959,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
-    VkResult                              result = d.vkCreatePrivateDataSlotEXT(
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePrivateDataSlotEXT(
       m_device,
       reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique" );
+      reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -19116,7 +18998,7 @@
 
 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                            uint64_t                              objectHandle,
                                                                            VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                            uint64_t                              data,
@@ -19124,11 +19006,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
     return static_cast<Result>(
-      d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+      d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
   }
 #else
   template <typename Dispatch>
-  VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                                     uint64_t                              objectHandle,
                                                                                     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                                     uint64_t                              data,
@@ -19136,28 +19018,28 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
   template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                     uint64_t                              objectHandle,
                                                     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                     uint64_t *                            pData,
                                                     Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
+    d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
   }
 
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                              uint64_t                              objectHandle,
                                                                              VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                                              Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
@@ -19165,16 +19047,248 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     uint64_t data;
-    d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
+    d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
 
     return data;
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
 
   template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
+                                                             VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR *               pQualityLevelProperties,
+                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( m_physicalDevice,
+                                                                 reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( pQualityLevelInfo ),
+                                                                 reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( pQualityLevelProperties ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>::type
+    PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
+                                                             Dispatch const &                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR qualityLevelProperties;
+    VULKAN_HPP_NAMESPACE::Result                               result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( m_physicalDevice,
+                                                                 reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
+                                                                 reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
+
+    return createResultValueType( result, qualityLevelProperties );
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
+    PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
+                                                             Dispatch const &                                                           d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    StructureChain<X, Y, Z...>                                   structureChain;
+    VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR & qualityLevelProperties =
+      structureChain.template get<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>();
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( m_physicalDevice,
+                                                                 reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
+                                                                 reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
+
+    return createResultValueType( result, structureChain );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
+                                                 VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
+                                                 size_t *                                                             pDataSize,
+                                                 void *                                                               pData,
+                                                 Dispatch const &                                                     d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                               reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( pVideoSessionParametersInfo ),
+                                               reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( pFeedbackInfo ),
+                                               pDataSize,
+                                               pData ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Uint8_tAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
+    Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                                 Dispatch const &                                                     d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>> data_;
+    VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &                                                  feedbackInfo = data_.first;
+    std::vector<uint8_t, Uint8_tAllocator> &                                                                             data         = data_.second;
+    size_t                                                                                                               dataSize;
+    VULKAN_HPP_NAMESPACE::Result                                                                                         result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                 &dataSize,
+                                                 nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                   reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                   reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                   &dataSize,
+                                                   reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+
+  template <typename Uint8_tAllocator,
+            typename Dispatch,
+            typename B2,
+            typename std::enable_if<std::is_same<typename B2::value_type, uint8_t>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
+    Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                                 Uint8_tAllocator &                                                   uint8_tAllocator,
+                                                 Dispatch const &                                                     d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>> data_(
+      std::piecewise_construct, std::forward_as_tuple(), std::forward_as_tuple( uint8_tAllocator ) );
+    VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo = data_.first;
+    std::vector<uint8_t, Uint8_tAllocator> &                            data         = data_.second;
+    size_t                                                              dataSize;
+    VULKAN_HPP_NAMESPACE::Result                                        result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                 &dataSize,
+                                                 nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                   reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                   reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                   &dataSize,
+                                                   reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+
+  template <typename X, typename Y, typename... Z, typename Uint8_tAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
+    Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                                 Dispatch const &                                                     d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>> data_;
+    VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &                                 feedbackInfo =
+      data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>();
+    std::vector<uint8_t, Uint8_tAllocator> & data = data_.second;
+    size_t                                   dataSize;
+    VULKAN_HPP_NAMESPACE::Result             result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                 &dataSize,
+                                                 nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                   reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                   reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                   &dataSize,
+                                                   reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+
+  template <typename X,
+            typename Y,
+            typename... Z,
+            typename Uint8_tAllocator,
+            typename Dispatch,
+            typename B2,
+            typename std::enable_if<std::is_same<typename B2::value_type, uint8_t>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
+    Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                                 Uint8_tAllocator &                                                   uint8_tAllocator,
+                                                 Dispatch const &                                                     d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>> data_(
+      std::piecewise_construct, std::forward_as_tuple(), std::forward_as_tuple( uint8_tAllocator ) );
+    VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo =
+      data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>();
+    std::vector<uint8_t, Uint8_tAllocator> & data = data_.second;
+    size_t                                   dataSize;
+    VULKAN_HPP_NAMESPACE::Result             result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                 &dataSize,
+                                                 nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetEncodedVideoSessionParametersKHR( m_device,
+                                                   reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+                                                   reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+                                                   &dataSize,
+                                                   reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo,
                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
   {
@@ -19182,7 +19296,7 @@
     d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoEncodeInfoKHR *>( pEncodeInfo ) );
   }
 
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo,
                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
@@ -19191,6 +19305,303 @@
 
     d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) );
   }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV * pCreateInfo,
+                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
+                                                                            VULKAN_HPP_NAMESPACE::CudaModuleNV *                 pModule,
+                                                                            Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateCudaModuleNV( m_device,
+                                                        reinterpret_cast<const VkCudaModuleCreateInfoNV *>( pCreateInfo ),
+                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                        reinterpret_cast<VkCudaModuleNV *>( pModule ) ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaModuleNV>::type
+                       Device::createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &      createInfo,
+                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::CudaModuleNV module;
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateCudaModuleNV( m_device,
+                              reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ),
+                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                              reinterpret_cast<VkCudaModuleNV *>( &module ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaModuleNV" );
+
+    return createResultValueType( result, module );
+  }
+
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaModuleNV, Dispatch>>::type
+                       Device::createCudaModuleNVUnique( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &      createInfo,
+                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                      Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::CudaModuleNV module;
+    VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateCudaModuleNV( m_device,
+                              reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ),
+                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                              reinterpret_cast<VkCudaModuleNV *>( &module ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaModuleNVUnique" );
+
+    return createResultValueType(
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::CudaModuleNV, Dispatch>( module, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module,
+                                                                              size_t *                           pCacheSize,
+                                                                              void *                             pCacheData,
+                                                                              Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), pCacheSize, pCacheData ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Uint8_tAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+                       Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<uint8_t, Uint8_tAllocator> cacheData;
+    size_t                                 cacheSize;
+    VULKAN_HPP_NAMESPACE::Result           result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize )
+      {
+        cacheData.resize( cacheSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCudaModuleCacheNV" );
+    VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() );
+    if ( cacheSize < cacheData.size() )
+    {
+      cacheData.resize( cacheSize );
+    }
+    return createResultValueType( result, cacheData );
+  }
+
+  template <typename Uint8_tAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, uint8_t>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+                       Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<uint8_t, Uint8_tAllocator> cacheData( uint8_tAllocator );
+    size_t                                 cacheSize;
+    VULKAN_HPP_NAMESPACE::Result           result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize )
+      {
+        cacheData.resize( cacheSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCudaModuleCacheNV" );
+    VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() );
+    if ( cacheSize < cacheData.size() )
+    {
+      cacheData.resize( cacheSize );
+    }
+    return createResultValueType( result, cacheData );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV * pCreateInfo,
+                                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
+                                                                              VULKAN_HPP_NAMESPACE::CudaFunctionNV *                 pFunction,
+                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateCudaFunctionNV( m_device,
+                                                          reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( pCreateInfo ),
+                                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                          reinterpret_cast<VkCudaFunctionNV *>( pFunction ) ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::type
+                       Device::createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &    createInfo,
+                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                  Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::CudaFunctionNV function;
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateCudaFunctionNV( m_device,
+                                reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ),
+                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                                reinterpret_cast<VkCudaFunctionNV *>( &function ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaFunctionNV" );
+
+    return createResultValueType( result, function );
+  }
+
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaFunctionNV, Dispatch>>::type
+                       Device::createCudaFunctionNVUnique( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &    createInfo,
+                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                        Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::CudaFunctionNV function;
+    VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateCudaFunctionNV( m_device,
+                                reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ),
+                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                                reinterpret_cast<VkCudaFunctionNV *>( &function ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaFunctionNVUnique" );
+
+    return createResultValueType(
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::CudaFunctionNV, Dispatch>( function, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
+                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyCudaModuleNV( m_device, static_cast<VkCudaModuleNV>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                        module,
+                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyCudaModuleNV( m_device,
+                             static_cast<VkCudaModuleNV>( module ),
+                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyCudaModuleNV( m_device, static_cast<VkCudaModuleNV>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                        module,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyCudaModuleNV( m_device,
+                             static_cast<VkCudaModuleNV>( module ),
+                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
+                                                        const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                        Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyCudaFunctionNV( m_device, static_cast<VkCudaFunctionNV>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV                      function,
+                                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                                        Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyCudaFunctionNV( m_device,
+                               static_cast<VkCudaFunctionNV>( function ),
+                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyCudaFunctionNV( m_device, static_cast<VkCudaFunctionNV>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV                      function,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyCudaFunctionNV( m_device,
+                               static_cast<VkCudaFunctionNV>( function ),
+                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV * pLaunchInfo,
+                                                            Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdCudaLaunchKernelNV( m_commandBuffer, reinterpret_cast<const VkCudaLaunchInfoNV *>( pLaunchInfo ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo,
+                                                            Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdCudaLaunchKernelNV( m_commandBuffer, reinterpret_cast<const VkCudaLaunchInfoNV *>( &launchInfo ) );
+  }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_ENABLE_BETA_EXTENSIONS*/
 
@@ -19219,11 +19630,12 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::exportMetalObjectsEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         Device::exportMetalObjectsEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                        structureChain;
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
     VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT & metalObjectsInfo = structureChain.template get<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>();
     d.vkExportMetalObjectsEXT( m_device, reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) );
 
@@ -19345,10 +19757,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkQueueSubmit2KHR( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkQueueSubmit2KHR( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19397,7 +19810,7 @@
   template <typename CheckpointData2NVAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, CheckpointData2NV>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CheckpointData2NV>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator>
                                          Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const
   {
@@ -19478,6 +19891,17 @@
   }
 
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
+                                                   size_t                                             dataSize,
+                                                   void *                                             pDescriptor,
+                                                   Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkGetDescriptorEXT( m_device, reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), dataSize, pDescriptor );
+  }
+
   template <typename DescriptorType, typename Dispatch>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
@@ -19588,11 +20012,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetBufferOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetBufferOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19612,11 +20037,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetImageOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetImageOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19636,12 +20062,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result =
-      d.vkGetImageViewOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetImageViewOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19661,11 +20087,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetSamplerOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetSamplerOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19686,13 +20113,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
-      m_device, reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
+      m_device, reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19864,54 +20290,6 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-  //=== VK_EXT_image_compression_control ===
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
-                                                                const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT * pSubresource,
-                                                                VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT *      pLayout,
-                                                                Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkGetImageSubresourceLayout2EXT( m_device,
-                                       static_cast<VkImage>( image ),
-                                       reinterpret_cast<const VkImageSubresource2EXT *>( pSubresource ),
-                                       reinterpret_cast<VkSubresourceLayout2EXT *>( pLayout ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT Device::getImageSubresourceLayout2EXT(
-    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT layout;
-    d.vkGetImageSubresourceLayout2EXT( m_device,
-                                       static_cast<VkImage>( image ),
-                                       reinterpret_cast<const VkImageSubresource2EXT *>( &subresource ),
-                                       reinterpret_cast<VkSubresourceLayout2EXT *>( &layout ) );
-
-    return layout;
-  }
-
-  template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2EXT(
-    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    StructureChain<X, Y, Z...>                    structureChain;
-    VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT & layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>();
-    d.vkGetImageSubresourceLayout2EXT( m_device,
-                                       static_cast<VkImage>( image ),
-                                       reinterpret_cast<const VkImageSubresource2EXT *>( &subresource ),
-                                       reinterpret_cast<VkSubresourceLayout2EXT *>( &layout ) );
-
-    return structureChain;
-  }
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
   //=== VK_EXT_device_fault ===
 
   template <typename Dispatch>
@@ -19931,17 +20309,16 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> data;
-    VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT &                                                    faultCounts = data.first;
-    VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT &                                                      faultInfo   = data.second;
-    VkResult                                                                                        result =
-      d.vkGetDeviceFaultInfoEXT( m_device, reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ), reinterpret_cast<VkDeviceFaultInfoEXT *>( &faultInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::getFaultInfoEXT",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
+    std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> data_;
+    VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT &                                                    faultCounts = data_.first;
+    VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT &                                                      faultInfo   = data_.second;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceFaultInfoEXT(
+      m_device, reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ), reinterpret_cast<VkDeviceFaultInfoEXT *>( &faultInfo ) ) );
+    resultCheck(
+      result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFaultInfoEXT", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
 
     return ResultValue<std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT>>(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data_ );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -19963,10 +20340,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -19987,10 +20365,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" );
+    VULKAN_HPP_NAMESPACE::Result     result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), display );
+    return createResultValueType( result, display );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -20001,10 +20380,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::DisplayKHR display;
-    VkResult                         result = d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique" );
+    VULKAN_HPP_NAMESPACE::Result     result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    return createResultValueType( result,
                                   UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
@@ -20037,14 +20417,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateDirectFBSurfaceEXT(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDirectFBSurfaceEXT(
       m_instance,
       reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -20057,16 +20437,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateDirectFBSurfaceEXT(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDirectFBSurfaceEXT(
       m_instance,
       reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -20094,421 +20473,6 @@
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-  //=== VK_KHR_ray_tracing_pipeline ===
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                                                      uint32_t                                                    width,
-                                                      uint32_t                                                    height,
-                                                      uint32_t                                                    depth,
-                                                      Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdTraceRaysKHR( m_commandBuffer,
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
-                         width,
-                         height,
-                         depth );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                                                      const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                                                      uint32_t                                                    width,
-                                                      uint32_t                                                    height,
-                                                      uint32_t                                                    depth,
-                                                      Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    d.vkCmdTraceRaysKHR( m_commandBuffer,
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
-                         reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
-                         width,
-                         height,
-                         depth );
-  }
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
-                                          VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
-                                          uint32_t                                                      createInfoCount,
-                                          const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,
-                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks *             pAllocator,
-                                          VULKAN_HPP_NAMESPACE::Pipeline *                              pPipelines,
-                                          Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device,
-                                                                  static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                  static_cast<VkPipelineCache>( pipelineCache ),
-                                                                  createInfoCount,
-                                                                  reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ),
-                                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
-                                                                  reinterpret_cast<VkPipeline *>( pPipelines ) ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename PipelineAllocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
-                                         Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
-                                          VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
-                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-                                          Dispatch const &                                                                                      d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
-    VkResult                                                       result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      createInfos.size(),
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-
-    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
-  }
-
-  template <typename PipelineAllocator,
-            typename Dispatch,
-            typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
-                                         Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
-                                          VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
-                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-                                          PipelineAllocator & pipelineAllocator,
-                                          Dispatch const &    d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
-    VkResult                                                       result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      createInfos.size(),
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-
-    return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelines );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
-                                         Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
-                                         VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
-                                         const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
-                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
-                                         Dispatch const &                                              d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      1,
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-
-    return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipeline );
-  }
-
-#  ifndef VULKAN_HPP_NO_SMART_HANDLE
-  template <typename Dispatch, typename PipelineAllocator>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
-                                         Device::createRayTracingPipelinesKHRUnique(
-      VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
-      VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-      Dispatch const &                                                                                      d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      createInfos.size(),
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
-    uniquePipelines.reserve( createInfos.size() );
-    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
-    for ( auto const & pipeline : pipelines )
-    {
-      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
-    }
-    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
-  }
-
-  template <typename Dispatch,
-            typename PipelineAllocator,
-            typename B0,
-            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
-                                         Device::createRayTracingPipelinesKHRUnique(
-      VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
-      VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-      PipelineAllocator &                                                                                   pipelineAllocator,
-      Dispatch const &                                                                                      d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
-    VkResult                                    result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      createInfos.size(),
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( pipelines.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
-    uniquePipelines.reserve( createInfos.size() );
-    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
-    for ( auto const & pipeline : pipelines )
-    {
-      uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
-    }
-    return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), std::move( uniquePipelines ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
-                                         Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
-                                               VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
-                                               const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
-                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
-                                               Dispatch const &                                              d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    VULKAN_HPP_NAMESPACE::Pipeline pipeline;
-    VkResult                       result = d.vkCreateRayTracingPipelinesKHR(
-      m_device,
-      static_cast<VkDeferredOperationKHR>( deferredOperation ),
-      static_cast<VkPipelineCache>( pipelineCache ),
-      1,
-      reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
-      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkPipeline *>( &pipeline ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                 VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique",
-                 { VULKAN_HPP_NAMESPACE::Result::eSuccess,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
-                   VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
-
-    return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
-  }
-#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                                                                            uint32_t                       firstGroup,
-                                                                                            uint32_t                       groupCount,
-                                                                                            size_t                         dataSize,
-                                                                                            void *                         pData,
-                                                                                            Dispatch const &               d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>(
-      d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename DataType, typename DataTypeAllocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type Device::getRayTracingShaderGroupHandlesKHR(
-    VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-    std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkGetRayTracingShaderGroupHandlesKHR(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
-
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
-  }
-
-  template <typename DataType, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
-    Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    DataType data;
-    VkResult result = d.vkGetRayTracingShaderGroupHandlesKHR(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
-
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
-  }
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                                                                                         uint32_t                       firstGroup,
-                                                                                                         uint32_t                       groupCount,
-                                                                                                         size_t                         dataSize,
-                                                                                                         void *                         pData,
-                                                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>(
-      d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename DataType, typename DataTypeAllocator, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
-                       Device::getRayTracingCaptureReplayShaderGroupHandlesKHR(
-      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-    std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
-
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
-  }
-
-  template <typename DataType, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR(
-    VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    DataType data;
-    VkResult result = d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
-      m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
-
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
-  }
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                                                              VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
-                                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdTraceRaysIndirectKHR( m_commandBuffer,
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
-                                 static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
-  }
-
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                                                              const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                                                              VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
-                                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-
-    d.vkCmdTraceRaysIndirectKHR( m_commandBuffer,
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
-                                 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
-                                 static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
-  }
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline             pipeline,
-                                                                             uint32_t                                   group,
-                                                                             VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
-                                                                             Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<DeviceSize>(
-      d.vkGetRayTracingShaderGroupStackSizeKHR( m_device, static_cast<VkPipeline>( pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ) );
-  }
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize );
-  }
-
   //=== VK_EXT_vertex_input_dynamic_state ===
 
   template <typename Dispatch>
@@ -20564,12 +20528,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    zx_handle_t zirconHandle;
-    VkResult    result =
-      d.vkGetMemoryZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" );
+    zx_handle_t                  zirconHandle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), zirconHandle );
+    return createResultValueType( result, zirconHandle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -20598,13 +20562,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties;
-    VkResult                                                  result = d.vkGetMemoryZirconHandlePropertiesFUCHSIA( m_device,
-                                                                  static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
-                                                                  zirconHandle,
-                                                                  reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" );
+    VULKAN_HPP_NAMESPACE::Result                              result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetMemoryZirconHandlePropertiesFUCHSIA( m_device,
+                                                  static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
+                                                  zirconHandle,
+                                                  reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), memoryZirconHandleProperties );
+    return createResultValueType( result, memoryZirconHandleProperties );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
@@ -20629,11 +20594,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkImportSemaphoreZirconHandleFUCHSIA(
-      m_device, reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkImportSemaphoreZirconHandleFUCHSIA(
+      m_device, reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -20655,12 +20620,12 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    zx_handle_t zirconHandle;
-    VkResult    result =
-      d.vkGetSemaphoreZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" );
+    zx_handle_t                  zirconHandle;
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetSemaphoreZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), zirconHandle );
+    return createResultValueType( result, zirconHandle );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
@@ -20692,14 +20657,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
-    VkResult                                      result = d.vkCreateBufferCollectionFUCHSIA(
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateBufferCollectionFUCHSIA(
       m_device,
       reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIA" );
+      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), collection );
+    return createResultValueType( result, collection );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -20712,16 +20677,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
-    VkResult                                      result = d.vkCreateBufferCollectionFUCHSIA(
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateBufferCollectionFUCHSIA(
       m_device,
       reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIAUnique" );
+      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIAUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>( collection, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>( collection, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -20746,11 +20710,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSetBufferCollectionImageConstraintsFUCHSIA(
-      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionImageConstraintsFUCHSIA" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
+      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionImageConstraintsFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -20774,11 +20738,11 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkSetBufferCollectionBufferConstraintsFUCHSIA(
-      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionBufferConstraintsFUCHSIA" );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetBufferCollectionBufferConstraintsFUCHSIA(
+      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionBufferConstraintsFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -20851,225 +20815,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties;
-    VkResult                                                result = d.vkGetBufferCollectionPropertiesFUCHSIA(
-      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferCollectionPropertiesFUCHSIA" );
+    VULKAN_HPP_NAMESPACE::Result                            result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetBufferCollectionPropertiesFUCHSIA(
+      m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferCollectionPropertiesFUCHSIA" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), properties );
+    return createResultValueType( result, properties );
   }
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
 
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  //=== VK_FUCHSIA_buffer_collection ===
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::createBufferCollectionFUCHSIA( const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA * pCreateInfo,
-                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
-                                           VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA *                 pCollection,
-                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>(
-      d.vkCreateBufferCollectionFUCHSIA( m_device,
-                                         reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( pCreateInfo ),
-                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
-                                         reinterpret_cast<VkBufferCollectionFUCHSIA *>( pCollection ) ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
-    typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>::type
-    Device::createBufferCollectionFUCHSIA( const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,
-                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
-                                           Dispatch const &                                                d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
-    Result                                        result = static_cast<Result>( d.vkCreateBufferCollectionFUCHSIA(
-      m_device,
-      reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
-      reinterpret_cast<const VkAllocationCallbacks *>(
-        static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
-    return createResultValue(
-      result, collection, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIA" );
-  }
-
-#    ifndef VULKAN_HPP_NO_SMART_HANDLE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
-    typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>>::type
-    Device::createBufferCollectionFUCHSIAUnique(
-      const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,
-      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
-      Dispatch const &                                                d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
-    Result                                        result = static_cast<Result>( d.vkCreateBufferCollectionFUCHSIA(
-      m_device,
-      reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
-      reinterpret_cast<const VkAllocationCallbacks *>(
-        static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
-    ObjectDestroy<Device, Dispatch>               deleter( *this, allocator, d );
-    return createResultValue<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>(
-      result, collection, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIAUnique", deleter );
-  }
-#    endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-#  endif   /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setBufferCollectionImageConstraintsFUCHSIA(
-    VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
-    const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA * pImageConstraintsInfo,
-    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( pImageConstraintsInfo ) ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
-                                          Device::setBufferCollectionImageConstraintsFUCHSIA(
-      VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
-      const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo,
-      Dispatch const &                                          d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    Result result = static_cast<Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) );
-    return createResultValue( result,
-                              VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionImageConstraintsFUCHSIA" );
-  }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setBufferCollectionBufferConstraintsFUCHSIA(
-    VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA              collection,
-    const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo,
-    Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkSetBufferCollectionBufferConstraintsFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( pBufferConstraintsInfo ) ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
-                                          Device::setBufferCollectionBufferConstraintsFUCHSIA(
-      VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA              collection,
-      const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo,
-      Dispatch const &                                           d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    Result result = static_cast<Result>( d.vkSetBufferCollectionBufferConstraintsFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) );
-    return createResultValue( result,
-                              VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionBufferConstraintsFUCHSIA" );
-  }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    Device::destroyBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA     collection,
-                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyBufferCollectionFUCHSIA( m_device,
-                                        static_cast<VkBufferCollectionFUCHSIA>( collection ),
-                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void
-    Device::destroyBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
-                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyBufferCollectionFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkAllocationCallbacks *>(
-        static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
-  }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA     collection,
-                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyBufferCollectionFUCHSIA( m_device,
-                                        static_cast<VkBufferCollectionFUCHSIA>( collection ),
-                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
-                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
-                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    d.vkDestroyBufferCollectionFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<const VkAllocationCallbacks *>(
-        static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
-  }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
-    Device::getBufferCollectionPropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
-                                                  VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA * pProperties,
-                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    return static_cast<Result>( d.vkGetBufferCollectionPropertiesFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( pProperties ) ) );
-  }
-
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-  template <typename Dispatch>
-  VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
-    typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>::type
-    Device::getBufferCollectionPropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,
-                                                  Dispatch const &                              d ) const
-  {
-    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
-    VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties;
-    Result result = static_cast<Result>( d.vkGetBufferCollectionPropertiesFUCHSIA(
-      m_device,
-      static_cast<VkBufferCollectionFUCHSIA>( collection ),
-      reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) );
-    return createResultValue(
-      result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferCollectionPropertiesFUCHSIA" );
-  }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif   /*VK_USE_PLATFORM_FUCHSIA*/
-
   //=== VK_HUAWEI_subpass_shading ===
 
   template <typename Dispatch>
@@ -21090,9 +20844,9 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
-    VkResult                       result = d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
-      m_device, static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+    VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+      m_device, static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
+    resultCheck( result,
                  VULKAN_HPP_NAMESPACE_STRING "::Device::getSubpassShadingMaxWorkgroupSizeHUAWEI",
                  { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
 
@@ -21139,11 +20893,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
-    VkResult                              result = d.vkGetMemoryRemoteAddressNV(
-      m_device, reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ), reinterpret_cast<VkRemoteAddressNV *>( &address ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
+    VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryRemoteAddressNV(
+      m_device, reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ), reinterpret_cast<VkRemoteAddressNV *>( &address ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), address );
+    return createResultValueType( result, address );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -21167,11 +20921,11 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::BaseOutStructure pipelineProperties;
-    VkResult                               result = d.vkGetPipelinePropertiesEXT(
-      m_device, reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ), reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" );
+    VULKAN_HPP_NAMESPACE::Result           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelinePropertiesEXT(
+      m_device, reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ), reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), pipelineProperties );
+    return createResultValueType( result, pipelineProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -21240,14 +20994,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateScreenSurfaceQNX(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateScreenSurfaceQNX(
       m_instance,
       reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), surface );
+    return createResultValueType( result, surface );
   }
 
 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -21260,16 +21014,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
-    VkResult                         result = d.vkCreateScreenSurfaceQNX(
+    VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateScreenSurfaceQNX(
       m_instance,
       reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkSurfaceKHR *>( &surface ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique" );
+      reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
   }
 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -21421,14 +21174,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MicromapEXT micromap;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMicromapEXT( m_device,
                              reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkMicromapEXT *>( &micromap ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXT" );
+                             reinterpret_cast<VkMicromapEXT *>( &micromap ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), micromap );
+    return createResultValueType( result, micromap );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -21441,16 +21194,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::MicromapEXT micromap;
-    VkResult                          result =
+    VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
       d.vkCreateMicromapEXT( m_device,
                              reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-                             reinterpret_cast<VkMicromapEXT *>( &micromap ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXTUnique" );
+                             reinterpret_cast<VkMicromapEXT *>( &micromap ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXTUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::MicromapEXT, Dispatch>( micromap, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::MicromapEXT, Dispatch>( micromap, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -21541,10 +21293,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBuildMicromapsEXT(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBuildMicromapsEXT(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::buildMicromapsEXT",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -21570,10 +21322,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result =
-      d.vkCopyMicromapEXT( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCopyMicromapEXT( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapEXT",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -21598,10 +21350,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCopyMicromapToMemoryEXT(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMicromapToMemoryEXT(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -21626,10 +21378,10 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkCopyMemoryToMicromapEXT(
-      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) );
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMemoryToMicromapEXT(
+      m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) ) );
     resultCheck(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      result,
       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT",
       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
 
@@ -21664,16 +21416,17 @@
 
     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
-    VkResult                                 result = d.vkWriteMicromapsPropertiesEXT( m_device,
-                                                       micromaps.size(),
-                                                       reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
-                                                       static_cast<VkQueryType>( queryType ),
-                                                       data.size() * sizeof( DataType ),
-                                                       reinterpret_cast<void *>( data.data() ),
-                                                       stride );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" );
+    VULKAN_HPP_NAMESPACE::Result             result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWriteMicromapsPropertiesEXT( m_device,
+                                                                                  micromaps.size(),
+                                                                                  reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
+                                                                                  static_cast<VkQueryType>( queryType ),
+                                                                                  data.size() * sizeof( DataType ),
+                                                                                  reinterpret_cast<void *>( data.data() ),
+                                                                                  stride ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 
   template <typename DataType, typename Dispatch>
@@ -21685,17 +21438,18 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    DataType data;
-    VkResult result = d.vkWriteMicromapsPropertiesEXT( m_device,
-                                                       micromaps.size(),
-                                                       reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
-                                                       static_cast<VkQueryType>( queryType ),
-                                                       sizeof( DataType ),
-                                                       reinterpret_cast<void *>( &data ),
-                                                       stride );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" );
+    DataType                     data;
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWriteMicromapsPropertiesEXT( m_device,
+                                                                                  micromaps.size(),
+                                                                                  reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
+                                                                                  static_cast<VkQueryType>( queryType ),
+                                                                                  sizeof( DataType ),
+                                                                                  reinterpret_cast<void *>( &data ),
+                                                                                  stride ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+    return createResultValueType( result, data );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -21850,6 +21604,25 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_HUAWEI_cluster_culling_shader ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdDrawClusterHUAWEI( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                                                   VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                                                                   Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdDrawClusterIndirectHUAWEI( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
+  }
+
   //=== VK_EXT_pageable_device_local_memory ===
 
   template <typename Dispatch>
@@ -21886,13 +21659,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetDeviceBufferMemoryRequirementsKHR(
       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -21925,13 +21698,13 @@
   }
 
   template <typename X, typename Y, typename... Z, typename Dispatch>
-  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
     Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    StructureChain<X, Y, Z...>                  structureChain;
-    VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
     d.vkGetDeviceImageMemoryRequirementsKHR(
       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
 
@@ -21980,7 +21753,7 @@
   template <typename SparseImageMemoryRequirements2Allocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                                          Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                  SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
@@ -22148,6 +21921,80 @@
       m_commandBuffer, static_cast<VkDeviceAddress>( indirectCommandsAddress ), static_cast<VkDeviceAddress>( indirectCommandsCountAddress ), stride );
   }
 
+  //=== VK_NV_device_generated_commands_compute ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfo,
+                                                                          VULKAN_HPP_NAMESPACE::MemoryRequirements2 *             pMemoryRequirements,
+                                                                          Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetPipelineIndirectMemoryRequirementsNV(
+      m_device, reinterpret_cast<const VkComputePipelineCreateInfo *>( pCreateInfo ), reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
+                                         Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
+                                                     Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
+    d.vkGetPipelineIndirectMemoryRequirementsNV(
+      m_device, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+    return memoryRequirements;
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                         Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
+                                                     Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    d.vkGetPipelineIndirectMemoryRequirementsNV(
+      m_device, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+    return structureChain;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
+                                                                        VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
+                                                                        Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdUpdatePipelineIndirectBufferNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE DeviceAddress Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV * pInfo,
+                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<DeviceAddress>(
+      d.vkGetPipelineIndirectDeviceAddressNV( m_device, reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( pInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
+    Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VkDeviceAddress result = d.vkGetPipelineIndirectDeviceAddressNV( m_device, reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( &info ) );
+
+    return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
   //=== VK_EXT_extended_dynamic_state3 ===
 
   template <typename Dispatch>
@@ -22193,9 +22040,17 @@
   template <typename Dispatch>
   VULKAN_HPP_INLINE void CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
                                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask,
-                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+    VULKAN_HPP_ASSERT( sampleMask.size() == ( static_cast<uint32_t>( samples ) + 31 ) / 32 );
+#  else
+    if ( sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32 )
+    {
+      throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setSampleMaskEXT: sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32" );
+    }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
     d.vkCmdSetSampleMaskEXT( m_commandBuffer, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<const VkSampleMask *>( sampleMask.data() ) );
   }
@@ -22575,33 +22430,34 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator> imageFormatProperties;
     uint32_t                                                                                                           formatCount;
-    VkResult                                                                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                                                                       result;
     do
     {
-      result = d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
-        m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && formatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
+        m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount )
       {
         imageFormatProperties.resize( formatCount );
-        result = d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
-                                                                 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
-                                                                 &formatCount,
-                                                                 reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
+                                                          reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
+                                                          &formatCount,
+                                                          reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
     VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() );
     if ( formatCount < imageFormatProperties.size() )
     {
       imageFormatProperties.resize( formatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), imageFormatProperties );
+    return createResultValueType( result, imageFormatProperties );
   }
 
   template <typename OpticalFlowImageFormatPropertiesNVAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, OpticalFlowImageFormatPropertiesNV>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator>>::type
     PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,
@@ -22612,28 +22468,29 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator> imageFormatProperties(
       opticalFlowImageFormatPropertiesNVAllocator );
-    uint32_t formatCount;
-    VkResult result;
+    uint32_t                     formatCount;
+    VULKAN_HPP_NAMESPACE::Result result;
     do
     {
-      result = d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
-        m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && formatCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
+        m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount )
       {
         imageFormatProperties.resize( formatCount );
-        result = d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
-                                                                 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
-                                                                 &formatCount,
-                                                                 reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
+                                                          reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
+                                                          &formatCount,
+                                                          reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
     VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() );
     if ( formatCount < imageFormatProperties.size() )
     {
       imageFormatProperties.resize( formatCount );
     }
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), imageFormatProperties );
+    return createResultValueType( result, imageFormatProperties );
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -22660,14 +22517,14 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session;
-    VkResult                                   result = d.vkCreateOpticalFlowSessionNV(
+    VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateOpticalFlowSessionNV(
       m_device,
       reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNV" );
+      reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), session );
+    return createResultValueType( result, session );
   }
 
 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
@@ -22680,16 +22537,15 @@
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
     VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session;
-    VkResult                                   result = d.vkCreateOpticalFlowSessionNV(
+    VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateOpticalFlowSessionNV(
       m_device,
       reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-      reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNVUnique" );
+      reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNVUnique" );
 
     return createResultValueType(
-      static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-      UniqueHandle<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV, Dispatch>( session, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+      result, UniqueHandle<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV, Dispatch>( session, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
   }
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -22768,14 +22624,15 @@
   {
     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
 
-    VkResult result = d.vkBindOpticalFlowSessionImageNV( m_device,
-                                                         static_cast<VkOpticalFlowSessionNV>( session ),
-                                                         static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
-                                                         static_cast<VkImageView>( view ),
-                                                         static_cast<VkImageLayout>( layout ) );
-    resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindOpticalFlowSessionImageNV" );
+    VULKAN_HPP_NAMESPACE::Result result =
+      static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBindOpticalFlowSessionImageNV( m_device,
+                                                                                    static_cast<VkOpticalFlowSessionNV>( session ),
+                                                                                    static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
+                                                                                    static_cast<VkImageView>( view ),
+                                                                                    static_cast<VkImageLayout>( layout ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindOpticalFlowSessionImageNV" );
 
-    return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ) );
+    return createResultValueType( result );
   }
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
@@ -22802,6 +22659,446 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_KHR_maintenance5 ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                                             VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                                                             VULKAN_HPP_NAMESPACE::DeviceSize size,
+                                                             VULKAN_HPP_NAMESPACE::IndexType  indexType,
+                                                             Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdBindIndexBuffer2KHR( m_commandBuffer,
+                                static_cast<VkBuffer>( buffer ),
+                                static_cast<VkDeviceSize>( offset ),
+                                static_cast<VkDeviceSize>( size ),
+                                static_cast<VkIndexType>( indexType ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR * pRenderingAreaInfo,
+                                                                 VULKAN_HPP_NAMESPACE::Extent2D *                   pGranularity,
+                                                                 Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetRenderingAreaGranularityKHR(
+      m_device, reinterpret_cast<const VkRenderingAreaInfoKHR *>( pRenderingAreaInfo ), reinterpret_cast<VkExtent2D *>( pGranularity ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D
+    Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Extent2D granularity;
+    d.vkGetRenderingAreaGranularityKHR(
+      m_device, reinterpret_cast<const VkRenderingAreaInfoKHR *>( &renderingAreaInfo ), reinterpret_cast<VkExtent2D *>( &granularity ) );
+
+    return granularity;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR * pInfo,
+                                                               VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *               pLayout,
+                                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetDeviceImageSubresourceLayoutKHR(
+      m_device, reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( pInfo ), reinterpret_cast<VkSubresourceLayout2KHR *>( pLayout ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+    Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+    d.vkGetDeviceImageSubresourceLayoutKHR(
+      m_device, reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ), reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return layout;
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+    Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+    d.vkGetDeviceImageSubresourceLayoutKHR(
+      m_device, reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ), reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return structureChain;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                                const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource,
+                                                                VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *      pLayout,
+                                                                Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetImageSubresourceLayout2KHR( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( pSubresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( pLayout ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR Device::getImageSubresourceLayout2KHR(
+    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+    d.vkGetImageSubresourceLayout2KHR( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return layout;
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2KHR(
+    VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+    d.vkGetImageSubresourceLayout2KHR( m_device,
+                                       static_cast<VkImage>( image ),
+                                       reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                       reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+    return structureChain;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_EXT_shader_object ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShadersEXT( uint32_t                                          createInfoCount,
+                                                                          const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT * pCreateInfos,
+                                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                                          VULKAN_HPP_NAMESPACE::ShaderEXT *                 pShaders,
+                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateShadersEXT( m_device,
+                                                      createInfoCount,
+                                                      reinterpret_cast<const VkShaderCreateInfoEXT *>( pCreateInfos ),
+                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                      reinterpret_cast<VkShaderEXT *>( pShaders ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename ShaderEXTAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>::type
+                       Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                              Dispatch const &                                                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator> shaders( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            createInfos.size(),
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXT" );
+
+    return createResultValueType( result, shaders );
+  }
+
+  template <typename ShaderEXTAllocator,
+            typename Dispatch,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::ShaderEXT>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>::type
+                       Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                              ShaderEXTAllocator &                                                                      shaderEXTAllocator,
+                              Dispatch const &                                                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator> shaders( createInfos.size(), shaderEXTAllocator );
+    VULKAN_HPP_NAMESPACE::Result                                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            createInfos.size(),
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXT" );
+
+    return createResultValueType( result, shaders );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderEXT>::type
+                       Device::createShaderEXT( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &         createInfo,
+                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                             Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::ShaderEXT shader;
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            1,
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( &shader ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderEXT" );
+
+    return createResultValueType( result, shader );
+  }
+
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch, typename ShaderEXTAllocator>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>::type
+    Device::createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                                    Dispatch const &                                                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            createInfos.size(),
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXTUnique" );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator> uniqueShaders;
+    uniqueShaders.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & shader : shaders )
+    {
+      uniqueShaders.push_back( UniqueHandle<ShaderEXT, Dispatch>( shader, deleter ) );
+    }
+    return createResultValueType( result, std::move( uniqueShaders ) );
+  }
+
+  template <typename Dispatch,
+            typename ShaderEXTAllocator,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>::type
+    Device::createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                                    ShaderEXTAllocator &                                                                      shaderEXTAllocator,
+                                    Dispatch const &                                                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() );
+    VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            createInfos.size(),
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXTUnique" );
+    std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator> uniqueShaders( shaderEXTAllocator );
+    uniqueShaders.reserve( createInfos.size() );
+    ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
+    for ( auto const & shader : shaders )
+    {
+      uniqueShaders.push_back( UniqueHandle<ShaderEXT, Dispatch>( shader, deleter ) );
+    }
+    return createResultValueType( result, std::move( uniqueShaders ) );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::type
+                       Device::createShaderEXTUnique( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &         createInfo,
+                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                   Dispatch const &                                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::ShaderEXT shader;
+    VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkCreateShadersEXT( m_device,
+                            1,
+                            reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ),
+                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+                            reinterpret_cast<VkShaderEXT *>( &shader ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderEXTUnique" );
+
+    return createResultValueType( result,
+                                  UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>( shader, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
+                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyShaderEXT( m_device, static_cast<VkShaderEXT>( shader ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                           shader,
+                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyShaderEXT( m_device,
+                          static_cast<VkShaderEXT>( shader ),
+                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyShaderEXT( m_device, static_cast<VkShaderEXT>( shader ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                           shader,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkDestroyShaderEXT( m_device,
+                          static_cast<VkShaderEXT>( shader ),
+                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, size_t * pDataSize, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), pDataSize, pData ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Uint8_tAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+                       Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<uint8_t, Uint8_tAllocator> data;
+    size_t                                 dataSize;
+    VULKAN_HPP_NAMESPACE::Result           result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderBinaryDataEXT" );
+    VULKAN_HPP_ASSERT( dataSize <= data.size() );
+    if ( dataSize < data.size() )
+    {
+      data.resize( dataSize );
+    }
+    return createResultValueType( result, data );
+  }
+
+  template <typename Uint8_tAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, uint8_t>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+                       Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
+    size_t                                 dataSize;
+    VULKAN_HPP_NAMESPACE::Result           result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+      {
+        data.resize( dataSize );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderBinaryDataEXT" );
+    VULKAN_HPP_ASSERT( dataSize <= data.size() );
+    if ( dataSize < data.size() )
+    {
+      data.resize( dataSize );
+    }
+    return createResultValueType( result, data );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( uint32_t                                          stageCount,
+                                                        const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits * pStages,
+                                                        const VULKAN_HPP_NAMESPACE::ShaderEXT *           pShaders,
+                                                        Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdBindShadersEXT(
+      m_commandBuffer, stageCount, reinterpret_cast<const VkShaderStageFlagBits *>( pStages ), reinterpret_cast<const VkShaderEXT *>( pShaders ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
+                                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &           shaders,
+                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+    VULKAN_HPP_ASSERT( stages.size() == shaders.size() );
+#  else
+    if ( stages.size() != shaders.size() )
+    {
+      throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindShadersEXT: stages.size() != shaders.size()" );
+    }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+
+    d.vkCmdBindShadersEXT( m_commandBuffer,
+                           stages.size(),
+                           reinterpret_cast<const VkShaderStageFlagBits *>( stages.data() ),
+                           reinterpret_cast<const VkShaderEXT *>( shaders.data() ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
   //=== VK_QCOM_tile_properties ===
 
   template <typename Dispatch>
@@ -22824,17 +23121,18 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator> properties;
     uint32_t                                                                           propertiesCount;
-    VkResult                                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                                       result;
     do
     {
-      result = d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertiesCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount )
       {
         properties.resize( propertiesCount );
-        result = d.vkGetFramebufferTilePropertiesQCOM(
-          m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFramebufferTilePropertiesQCOM(
+          m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
 
     VULKAN_HPP_ASSERT( propertiesCount <= properties.size() );
     if ( propertiesCount < properties.size() )
@@ -22847,7 +23145,7 @@
   template <typename TilePropertiesQCOMAllocator,
             typename Dispatch,
             typename B1,
-            typename std::enable_if<std::is_same<typename B1::value_type, TilePropertiesQCOM>::value, int>::type>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>::value, int>::type>
   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator>>::type
                        Device::getFramebufferTilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,
                                               TilePropertiesQCOMAllocator &     tilePropertiesQCOMAllocator,
@@ -22857,17 +23155,18 @@
 
     std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator> properties( tilePropertiesQCOMAllocator );
     uint32_t                                                                           propertiesCount;
-    VkResult                                                                           result;
+    VULKAN_HPP_NAMESPACE::Result                                                       result;
     do
     {
-      result = d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr );
-      if ( ( result == VK_SUCCESS ) && propertiesCount )
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount )
       {
         properties.resize( propertiesCount );
-        result = d.vkGetFramebufferTilePropertiesQCOM(
-          m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFramebufferTilePropertiesQCOM(
+          m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) );
       }
-    } while ( result == VK_INCOMPLETE );
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
 
     VULKAN_HPP_ASSERT( propertiesCount <= properties.size() );
     if ( propertiesCount < properties.size() )
@@ -22903,5 +23202,520 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_NV_low_latency2 ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                                               const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo,
+                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkSetLatencySleepModeNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( pSleepModeInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                                                        const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo,
+                                                                                        Dispatch const &                                     d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkSetLatencySleepModeNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setLatencySleepModeNV" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR               swapchain,
+                                                                        const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo,
+                                                                        Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkLatencySleepNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( pSleepInfo ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE typename ResultValueType<void>::type
+    Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkLatencySleepNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( &sleepInfo ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::latencySleepNV" );
+
+    return createResultValueType( result );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                     const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo,
+                                                     Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkSetLatencyMarkerNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                     const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo,
+                                                     Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkSetLatencyMarkerNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR             swapchain,
+                                                      VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,
+                                                      Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV
+    Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo;
+    d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
+
+    return latencyMarkerInfo;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo,
+                                                   Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkQueueNotifyOutOfBandNV( m_queue, reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( pQueueTypeInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo,
+                                                   Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkQueueNotifyOutOfBandNV( m_queue, reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( &queueTypeInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_KHR_cooperative_matrix ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesKHR(
+    uint32_t * pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR * pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
+      m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( pProperties ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename CooperativeMatrixPropertiesKHRAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
+    PhysicalDevice::getCooperativeMatrixPropertiesKHR( Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator> properties;
+    uint32_t                                                                                                   propertyCount;
+    VULKAN_HPP_NAMESPACE::Result                                                                               result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
+      {
+        properties.resize( propertyCount );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" );
+    VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
+    if ( propertyCount < properties.size() )
+    {
+      properties.resize( propertyCount );
+    }
+    return createResultValueType( result, properties );
+  }
+
+  template <typename CooperativeMatrixPropertiesKHRAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+    typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
+    PhysicalDevice::getCooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHRAllocator & cooperativeMatrixPropertiesKHRAllocator,
+                                                       Dispatch const &                          d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator> properties(
+      cooperativeMatrixPropertiesKHRAllocator );
+    uint32_t                     propertyCount;
+    VULKAN_HPP_NAMESPACE::Result result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
+      {
+        properties.resize( propertyCount );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
+          m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" );
+    VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
+    if ( propertyCount < properties.size() )
+    {
+      properties.resize( propertyCount );
+    }
+    return createResultValueType( result, properties );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,
+                                                                            Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetAttachmentFeedbackLoopEnableEXT( m_commandBuffer, static_cast<VkImageAspectFlags>( aspectMask ) );
+  }
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getScreenBufferPropertiesQNX( const struct _screen_buffer *                     buffer,
+                                                                                      VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX * pProperties,
+                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetScreenBufferPropertiesQNX( m_device, buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( pProperties ) ) );
+  }
+
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>::type
+                       Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX properties;
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetScreenBufferPropertiesQNX( m_device, &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
+
+    return createResultValueType( result, properties );
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
+                       Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    StructureChain<X, Y, Z...>                        structureChain;
+    VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>();
+    VULKAN_HPP_NAMESPACE::Result                      result     = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetScreenBufferPropertiesQNX( m_device, &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
+
+    return createResultValueType( result, structureChain );
+  }
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif   /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_KHR_calibrated_timestamps ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsKHR( uint32_t *                            pTimeDomainCount,
+                                                                                                VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
+                                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>(
+      d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( pTimeDomains ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename TimeDomainKHRAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+                       PhysicalDevice::getCalibrateableTimeDomainsKHR( Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains;
+    uint32_t                                                                 timeDomainCount;
+    VULKAN_HPP_NAMESPACE::Result                                             result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
+      {
+        timeDomains.resize( timeDomainCount );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" );
+    VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
+    if ( timeDomainCount < timeDomains.size() )
+    {
+      timeDomains.resize( timeDomainCount );
+    }
+    return createResultValueType( result, timeDomains );
+  }
+
+  template <typename TimeDomainKHRAllocator,
+            typename Dispatch,
+            typename B1,
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+                       PhysicalDevice::getCalibrateableTimeDomainsKHR( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains( timeDomainKHRAllocator );
+    uint32_t                                                                 timeDomainCount;
+    VULKAN_HPP_NAMESPACE::Result                                             result;
+    do
+    {
+      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, nullptr ) );
+      if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
+      {
+        timeDomains.resize( timeDomainCount );
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
+      }
+    } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" );
+    VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
+    if ( timeDomainCount < timeDomains.size() )
+    {
+      timeDomains.resize( timeDomainCount );
+    }
+    return createResultValueType( result, timeDomains );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsKHR( uint32_t                                                 timestampCount,
+                                                                                    const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
+                                                                                    uint64_t *                                               pTimestamps,
+                                                                                    uint64_t *                                               pMaxDeviation,
+                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkGetCalibratedTimestampsKHR(
+      m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Uint64_tAllocator, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
+    Device::getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
+                                        Dispatch const &                                                                                 d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
+      std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
+    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
+    uint64_t &                                 maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsKHR(
+      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+
+  template <typename Uint64_tAllocator,
+            typename Dispatch,
+            typename B0,
+            typename std::enable_if<std::is_same<typename B0::value_type, uint64_t>::value, int>::type>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
+    Device::getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
+                                        Uint64_tAllocator &                                                                              uint64_tAllocator,
+                                        Dispatch const &                                                                                 d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
+      std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
+    std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
+    uint64_t &                                 maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsKHR(
+      m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
+                       Device::getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo, Dispatch const & d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    std::pair<uint64_t, uint64_t> data_;
+    uint64_t &                    timestamp    = data_.first;
+    uint64_t &                    maxDeviation = data_.second;
+    VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+      d.vkGetCalibratedTimestampsKHR( m_device, 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
+    resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" );
+
+    return createResultValueType( result, data_ );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  //=== VK_KHR_maintenance6 ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR * pBindDescriptorSetsInfo,
+                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdBindDescriptorSets2KHR( m_commandBuffer, reinterpret_cast<const VkBindDescriptorSetsInfoKHR *>( pBindDescriptorSetsInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo,
+                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdBindDescriptorSets2KHR( m_commandBuffer, reinterpret_cast<const VkBindDescriptorSetsInfoKHR *>( &bindDescriptorSetsInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR * pPushConstantsInfo,
+                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdPushConstants2KHR( m_commandBuffer, reinterpret_cast<const VkPushConstantsInfoKHR *>( pPushConstantsInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo,
+                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdPushConstants2KHR( m_commandBuffer, reinterpret_cast<const VkPushConstantsInfoKHR *>( &pushConstantsInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR * pPushDescriptorSetInfo,
+                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdPushDescriptorSet2KHR( m_commandBuffer, reinterpret_cast<const VkPushDescriptorSetInfoKHR *>( pPushDescriptorSetInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo,
+                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdPushDescriptorSet2KHR( m_commandBuffer, reinterpret_cast<const VkPushDescriptorSetInfoKHR *>( &pushDescriptorSetInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR * pPushDescriptorSetWithTemplateInfo,
+                                                      Dispatch const &                                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdPushDescriptorSetWithTemplate2KHR( m_commandBuffer,
+                                              reinterpret_cast<const VkPushDescriptorSetWithTemplateInfoKHR *>( pPushDescriptorSetWithTemplateInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo,
+                                                      Dispatch const &                                                   d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdPushDescriptorSetWithTemplate2KHR( m_commandBuffer,
+                                              reinterpret_cast<const VkPushDescriptorSetWithTemplateInfoKHR *>( &pushDescriptorSetWithTemplateInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo,
+                                                   Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetDescriptorBufferOffsets2EXT( m_commandBuffer, reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( pSetDescriptorBufferOffsetsInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void
+    CommandBuffer::setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo,
+                                                   Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdSetDescriptorBufferOffsets2EXT( m_commandBuffer, reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( &setDescriptorBufferOffsetsInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(
+    const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo,
+    Dispatch const &                                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
+      m_commandBuffer, reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( pBindDescriptorBufferEmbeddedSamplersInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(
+    const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo,
+    Dispatch const &                                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+
+    d.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
+      m_commandBuffer, reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( &bindDescriptorBufferEmbeddedSamplersInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
 }  // namespace VULKAN_HPP_NAMESPACE
 #endif
diff --git a/include/vulkan/vulkan_ggp.h b/include/vulkan/vulkan_ggp.h
index 19dfd22..0a8863a 100644
--- a/include/vulkan/vulkan_ggp.h
+++ b/include/vulkan/vulkan_ggp.h
@@ -2,7 +2,7 @@
 #define VULKAN_GGP_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_GGP_stream_descriptor_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_GGP_stream_descriptor_surface 1
 #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
 #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface"
@@ -41,6 +42,7 @@
 #endif
 
 
+// VK_GGP_frame_token is a preprocessor guard. Do not pass it to API calls.
 #define VK_GGP_frame_token 1
 #define VK_GGP_FRAME_TOKEN_SPEC_VERSION   1
 #define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token"
diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp
index 88f4ad2..d208376 100644
--- a/include/vulkan/vulkan_handles.hpp
+++ b/include/vulkan/vulkan_handles.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -10,6 +10,7 @@
 
 namespace VULKAN_HPP_NAMESPACE
 {
+
   //===================================
   //=== STRUCT forward declarations ===
   //===================================
@@ -432,6 +433,7 @@
   using PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
   struct PipelineShaderStageRequiredSubgroupSizeCreateInfo;
   using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
+  using ShaderRequiredSubgroupSizeCreateInfoEXT              = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
   struct PhysicalDeviceInlineUniformBlockFeatures;
   using PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
   struct PhysicalDeviceInlineUniformBlockProperties;
@@ -531,7 +533,6 @@
   struct DebugMarkerObjectTagInfoEXT;
   struct DebugMarkerMarkerInfoEXT;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
   struct QueueFamilyQueryResultStatusPropertiesKHR;
   struct QueueFamilyVideoPropertiesKHR;
@@ -550,14 +551,11 @@
   struct VideoBeginCodingInfoKHR;
   struct VideoEndCodingInfoKHR;
   struct VideoCodingControlInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
   struct VideoDecodeCapabilitiesKHR;
   struct VideoDecodeUsageInfoKHR;
   struct VideoDecodeInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NV_dedicated_allocation ===
   struct DedicatedAllocationImageCreateInfoNV;
@@ -578,49 +576,49 @@
   struct ImageViewHandleInfoNVX;
   struct ImageViewAddressPropertiesNVX;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h264 ===
-  struct VideoEncodeH264CapabilitiesEXT;
-  struct VideoEncodeH264SessionParametersCreateInfoEXT;
-  struct VideoEncodeH264SessionParametersAddInfoEXT;
-  struct VideoEncodeH264VclFrameInfoEXT;
-  struct VideoEncodeH264ReferenceListsInfoEXT;
-  struct VideoEncodeH264EmitPictureParametersInfoEXT;
-  struct VideoEncodeH264DpbSlotInfoEXT;
-  struct VideoEncodeH264NaluSliceInfoEXT;
-  struct VideoEncodeH264ProfileInfoEXT;
-  struct VideoEncodeH264RateControlInfoEXT;
-  struct VideoEncodeH264RateControlLayerInfoEXT;
-  struct VideoEncodeH264QpEXT;
-  struct VideoEncodeH264FrameSizeEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+  //=== VK_KHR_video_encode_h264 ===
+  struct VideoEncodeH264CapabilitiesKHR;
+  struct VideoEncodeH264QualityLevelPropertiesKHR;
+  struct VideoEncodeH264SessionCreateInfoKHR;
+  struct VideoEncodeH264SessionParametersCreateInfoKHR;
+  struct VideoEncodeH264SessionParametersAddInfoKHR;
+  struct VideoEncodeH264SessionParametersGetInfoKHR;
+  struct VideoEncodeH264SessionParametersFeedbackInfoKHR;
+  struct VideoEncodeH264PictureInfoKHR;
+  struct VideoEncodeH264DpbSlotInfoKHR;
+  struct VideoEncodeH264NaluSliceInfoKHR;
+  struct VideoEncodeH264ProfileInfoKHR;
+  struct VideoEncodeH264RateControlInfoKHR;
+  struct VideoEncodeH264RateControlLayerInfoKHR;
+  struct VideoEncodeH264QpKHR;
+  struct VideoEncodeH264FrameSizeKHR;
+  struct VideoEncodeH264GopRemainingFrameInfoKHR;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h265 ===
-  struct VideoEncodeH265CapabilitiesEXT;
-  struct VideoEncodeH265SessionParametersCreateInfoEXT;
-  struct VideoEncodeH265SessionParametersAddInfoEXT;
-  struct VideoEncodeH265VclFrameInfoEXT;
-  struct VideoEncodeH265EmitPictureParametersInfoEXT;
-  struct VideoEncodeH265DpbSlotInfoEXT;
-  struct VideoEncodeH265NaluSliceSegmentInfoEXT;
-  struct VideoEncodeH265ProfileInfoEXT;
-  struct VideoEncodeH265ReferenceListsInfoEXT;
-  struct VideoEncodeH265RateControlInfoEXT;
-  struct VideoEncodeH265RateControlLayerInfoEXT;
-  struct VideoEncodeH265QpEXT;
-  struct VideoEncodeH265FrameSizeEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+  //=== VK_KHR_video_encode_h265 ===
+  struct VideoEncodeH265CapabilitiesKHR;
+  struct VideoEncodeH265SessionCreateInfoKHR;
+  struct VideoEncodeH265QualityLevelPropertiesKHR;
+  struct VideoEncodeH265SessionParametersCreateInfoKHR;
+  struct VideoEncodeH265SessionParametersAddInfoKHR;
+  struct VideoEncodeH265SessionParametersGetInfoKHR;
+  struct VideoEncodeH265SessionParametersFeedbackInfoKHR;
+  struct VideoEncodeH265PictureInfoKHR;
+  struct VideoEncodeH265DpbSlotInfoKHR;
+  struct VideoEncodeH265NaluSliceSegmentInfoKHR;
+  struct VideoEncodeH265ProfileInfoKHR;
+  struct VideoEncodeH265RateControlInfoKHR;
+  struct VideoEncodeH265RateControlLayerInfoKHR;
+  struct VideoEncodeH265QpKHR;
+  struct VideoEncodeH265FrameSizeKHR;
+  struct VideoEncodeH265GopRemainingFrameInfoKHR;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h264 ===
-  struct VideoDecodeH264ProfileInfoEXT;
-  struct VideoDecodeH264CapabilitiesEXT;
-  struct VideoDecodeH264SessionParametersCreateInfoEXT;
-  struct VideoDecodeH264SessionParametersAddInfoEXT;
-  struct VideoDecodeH264PictureInfoEXT;
-  struct VideoDecodeH264DpbSlotInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+  //=== VK_KHR_video_decode_h264 ===
+  struct VideoDecodeH264ProfileInfoKHR;
+  struct VideoDecodeH264CapabilitiesKHR;
+  struct VideoDecodeH264SessionParametersCreateInfoKHR;
+  struct VideoDecodeH264SessionParametersAddInfoKHR;
+  struct VideoDecodeH264PictureInfoKHR;
+  struct VideoDecodeH264DpbSlotInfoKHR;
 
   //=== VK_AMD_texture_gather_bias_lod ===
   struct TextureLODGatherFormatPropertiesAMD;
@@ -764,6 +762,9 @@
   struct HdrMetadataEXT;
   struct XYColorEXT;
 
+  //=== VK_IMG_relaxed_line_rasterization ===
+  struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+
   //=== VK_KHR_shared_presentable_image ===
   struct SharedPresentSurfaceCapabilitiesKHR;
 
@@ -828,6 +829,18 @@
   struct AndroidHardwareBufferFormatProperties2ANDROID;
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_AMDX_shader_enqueue ===
+  struct PhysicalDeviceShaderEnqueueFeaturesAMDX;
+  struct PhysicalDeviceShaderEnqueuePropertiesAMDX;
+  struct ExecutionGraphPipelineScratchSizeAMDX;
+  struct ExecutionGraphPipelineCreateInfoAMDX;
+  struct DispatchGraphInfoAMDX;
+  struct DispatchGraphCountInfoAMDX;
+  struct PipelineShaderStageNodeCreateInfoAMDX;
+  union DeviceOrHostAddressConstAMDX;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   //=== VK_EXT_sample_locations ===
   struct SampleLocationEXT;
   struct SampleLocationsInfoEXT;
@@ -873,6 +886,18 @@
   struct CopyAccelerationStructureInfoKHR;
   struct AccelerationStructureBuildSizesInfoKHR;
 
+  //=== VK_KHR_ray_tracing_pipeline ===
+  struct RayTracingShaderGroupCreateInfoKHR;
+  struct RayTracingPipelineCreateInfoKHR;
+  struct PhysicalDeviceRayTracingPipelineFeaturesKHR;
+  struct PhysicalDeviceRayTracingPipelinePropertiesKHR;
+  struct StridedDeviceAddressRegionKHR;
+  struct TraceRaysIndirectCommandKHR;
+  struct RayTracingPipelineInterfaceCreateInfoKHR;
+
+  //=== VK_KHR_ray_query ===
+  struct PhysicalDeviceRayQueryFeaturesKHR;
+
   //=== VK_NV_framebuffer_mixed_samples ===
   struct PipelineCoverageModulationStateCreateInfoNV;
 
@@ -942,21 +967,16 @@
   //=== VK_AMD_pipeline_compiler_control ===
   struct PipelineCompilerControlCreateInfoAMD;
 
-  //=== VK_EXT_calibrated_timestamps ===
-  struct CalibratedTimestampInfoEXT;
-
   //=== VK_AMD_shader_core_properties ===
   struct PhysicalDeviceShaderCorePropertiesAMD;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h265 ===
-  struct VideoDecodeH265ProfileInfoEXT;
-  struct VideoDecodeH265CapabilitiesEXT;
-  struct VideoDecodeH265SessionParametersCreateInfoEXT;
-  struct VideoDecodeH265SessionParametersAddInfoEXT;
-  struct VideoDecodeH265PictureInfoEXT;
-  struct VideoDecodeH265DpbSlotInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+  //=== VK_KHR_video_decode_h265 ===
+  struct VideoDecodeH265ProfileInfoKHR;
+  struct VideoDecodeH265CapabilitiesKHR;
+  struct VideoDecodeH265SessionParametersCreateInfoKHR;
+  struct VideoDecodeH265SessionParametersAddInfoKHR;
+  struct VideoDecodeH265PictureInfoKHR;
+  struct VideoDecodeH265DpbSlotInfoKHR;
 
   //=== VK_KHR_global_priority ===
   struct DeviceQueueGlobalPriorityCreateInfoKHR;
@@ -971,9 +991,6 @@
 
   //=== VK_EXT_vertex_attribute_divisor ===
   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
-  struct VertexInputBindingDivisorDescriptionEXT;
-  struct PipelineVertexInputDivisorStateCreateInfoEXT;
-  struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
 
 #if defined( VK_USE_PLATFORM_GGP )
   //=== VK_GGP_frame_token ===
@@ -1130,6 +1147,22 @@
   struct PipelineExecutableStatisticKHR;
   struct PipelineExecutableInternalRepresentationKHR;
 
+  //=== VK_EXT_host_image_copy ===
+  struct PhysicalDeviceHostImageCopyFeaturesEXT;
+  struct PhysicalDeviceHostImageCopyPropertiesEXT;
+  struct MemoryToImageCopyEXT;
+  struct ImageToMemoryCopyEXT;
+  struct CopyMemoryToImageInfoEXT;
+  struct CopyImageToMemoryInfoEXT;
+  struct CopyImageToImageInfoEXT;
+  struct HostImageLayoutTransitionInfoEXT;
+  struct SubresourceHostMemcpySizeEXT;
+  struct HostImageCopyDevicePerformanceQueryEXT;
+
+  //=== VK_KHR_map_memory2 ===
+  struct MemoryMapInfoKHR;
+  struct MemoryUnmapInfoKHR;
+
   //=== VK_EXT_shader_atomic_float2 ===
   struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
 
@@ -1172,6 +1205,11 @@
   struct RenderPassTransformBeginInfoQCOM;
   struct CommandBufferInheritanceRenderPassTransformInfoQCOM;
 
+  //=== VK_EXT_depth_bias_control ===
+  struct PhysicalDeviceDepthBiasControlFeaturesEXT;
+  struct DepthBiasInfoEXT;
+  struct DepthBiasRepresentationInfoEXT;
+
   //=== VK_EXT_device_memory_report ===
   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT;
   struct DeviceDeviceMemoryReportCreateInfoEXT;
@@ -1198,19 +1236,35 @@
   struct PresentIdKHR;
   struct PhysicalDevicePresentIdFeaturesKHR;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
   struct VideoEncodeInfoKHR;
   struct VideoEncodeCapabilitiesKHR;
+  struct QueryPoolVideoEncodeFeedbackCreateInfoKHR;
   struct VideoEncodeUsageInfoKHR;
   struct VideoEncodeRateControlInfoKHR;
   struct VideoEncodeRateControlLayerInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+  struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+  struct VideoEncodeQualityLevelPropertiesKHR;
+  struct VideoEncodeQualityLevelInfoKHR;
+  struct VideoEncodeSessionParametersGetInfoKHR;
+  struct VideoEncodeSessionParametersFeedbackInfoKHR;
 
   //=== VK_NV_device_diagnostics_config ===
   struct PhysicalDeviceDiagnosticsConfigFeaturesNV;
   struct DeviceDiagnosticsConfigCreateInfoNV;
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  struct CudaModuleCreateInfoNV;
+  struct CudaFunctionCreateInfoNV;
+  struct CudaLaunchInfoNV;
+  struct PhysicalDeviceCudaKernelLaunchFeaturesNV;
+  struct PhysicalDeviceCudaKernelLaunchPropertiesNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_NV_low_latency ===
+  struct QueryLowLatencySupportNV;
+
 #if defined( VK_USE_PLATFORM_METAL_EXT )
   //=== VK_EXT_metal_objects ===
   struct ExportMetalObjectCreateInfoEXT;
@@ -1299,8 +1353,6 @@
   //=== VK_EXT_image_compression_control ===
   struct PhysicalDeviceImageCompressionControlFeaturesEXT;
   struct ImageCompressionControlEXT;
-  struct SubresourceLayout2EXT;
-  struct ImageSubresource2EXT;
   struct ImageCompressionPropertiesEXT;
 
   //=== VK_EXT_attachment_feedback_loop_layout ===
@@ -1325,18 +1377,6 @@
   struct DirectFBSurfaceCreateInfoEXT;
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-  //=== VK_KHR_ray_tracing_pipeline ===
-  struct RayTracingShaderGroupCreateInfoKHR;
-  struct RayTracingPipelineCreateInfoKHR;
-  struct PhysicalDeviceRayTracingPipelineFeaturesKHR;
-  struct PhysicalDeviceRayTracingPipelinePropertiesKHR;
-  struct StridedDeviceAddressRegionKHR;
-  struct TraceRaysIndirectCommandKHR;
-  struct RayTracingPipelineInterfaceCreateInfoKHR;
-
-  //=== VK_KHR_ray_query ===
-  struct PhysicalDeviceRayQueryFeaturesKHR;
-
   //=== VK_EXT_vertex_input_dynamic_state ===
   struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
   struct VertexInputBindingDescription2EXT;
@@ -1399,6 +1439,10 @@
   struct PipelinePropertiesIdentifierEXT;
   struct PhysicalDevicePipelinePropertiesFeaturesEXT;
 
+  //=== VK_EXT_frame_boundary ===
+  struct PhysicalDeviceFrameBoundaryFeaturesEXT;
+  struct FrameBoundaryEXT;
+
   //=== VK_EXT_multisampled_render_to_single_sampled ===
   struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
   struct SubpassResolvePerformanceQueryEXT;
@@ -1436,6 +1480,10 @@
   //=== VK_EXT_image_2d_view_of_3d ===
   struct PhysicalDeviceImage2DViewOf3DFeaturesEXT;
 
+  //=== VK_EXT_shader_tile_image ===
+  struct PhysicalDeviceShaderTileImageFeaturesEXT;
+  struct PhysicalDeviceShaderTileImagePropertiesEXT;
+
   //=== VK_EXT_opacity_micromap ===
   struct MicromapBuildInfoEXT;
   struct MicromapUsageEXT;
@@ -1450,6 +1498,18 @@
   struct AccelerationStructureTrianglesOpacityMicromapEXT;
   struct MicromapTriangleEXT;
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+  struct PhysicalDeviceDisplacementMicromapFeaturesNV;
+  struct PhysicalDeviceDisplacementMicromapPropertiesNV;
+  struct AccelerationStructureTrianglesDisplacementMicromapNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_HUAWEI_cluster_culling_shader ===
+  struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+  struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+  struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+
   //=== VK_EXT_border_color_swizzle ===
   struct PhysicalDeviceBorderColorSwizzleFeaturesEXT;
   struct SamplerBorderColorComponentMappingCreateInfoEXT;
@@ -1457,6 +1517,18 @@
   //=== VK_EXT_pageable_device_local_memory ===
   struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
 
+  //=== VK_ARM_shader_core_properties ===
+  struct PhysicalDeviceShaderCorePropertiesARM;
+
+  //=== VK_ARM_scheduling_controls ===
+  struct DeviceQueueShaderCoreControlCreateInfoARM;
+  struct PhysicalDeviceSchedulingControlsFeaturesARM;
+  struct PhysicalDeviceSchedulingControlsPropertiesARM;
+
+  //=== VK_EXT_image_sliced_view_of_3d ===
+  struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+  struct ImageViewSlicedCreateInfoEXT;
+
   //=== VK_VALVE_descriptor_set_host_mapping ===
   struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
   struct DescriptorSetBindingReferenceVALVE;
@@ -1468,6 +1540,13 @@
   //=== VK_EXT_non_seamless_cube_map ===
   struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
 
+  //=== VK_ARM_render_pass_striped ===
+  struct PhysicalDeviceRenderPassStripedFeaturesARM;
+  struct PhysicalDeviceRenderPassStripedPropertiesARM;
+  struct RenderPassStripeBeginInfoARM;
+  struct RenderPassStripeInfoARM;
+  struct RenderPassStripeSubmitInfoARM;
+
   //=== VK_QCOM_fragment_density_map_offset ===
   struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
   struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
@@ -1484,6 +1563,12 @@
   struct PhysicalDeviceMemoryDecompressionFeaturesNV;
   struct PhysicalDeviceMemoryDecompressionPropertiesNV;
 
+  //=== VK_NV_device_generated_commands_compute ===
+  struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+  struct ComputePipelineIndirectBufferInfoNV;
+  struct PipelineIndirectDeviceAddressInfoNV;
+  struct BindPipelineIndirectCommandNV;
+
   //=== VK_NV_linear_color_attachment ===
   struct PhysicalDeviceLinearColorAttachmentFeaturesNV;
 
@@ -1495,6 +1580,13 @@
   struct PhysicalDeviceImageProcessingFeaturesQCOM;
   struct PhysicalDeviceImageProcessingPropertiesQCOM;
 
+  //=== VK_EXT_nested_command_buffer ===
+  struct PhysicalDeviceNestedCommandBufferFeaturesEXT;
+  struct PhysicalDeviceNestedCommandBufferPropertiesEXT;
+
+  //=== VK_EXT_external_memory_acquire_unmodified ===
+  struct ExternalMemoryAcquireUnmodifiedEXT;
+
   //=== VK_EXT_extended_dynamic_state3 ===
   struct PhysicalDeviceExtendedDynamicState3FeaturesEXT;
   struct PhysicalDeviceExtendedDynamicState3PropertiesEXT;
@@ -1538,6 +1630,33 @@
   //=== VK_EXT_pipeline_protected_access ===
   struct PhysicalDevicePipelineProtectedAccessFeaturesEXT;
 
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  //=== VK_ANDROID_external_format_resolve ===
+  struct PhysicalDeviceExternalFormatResolveFeaturesANDROID;
+  struct PhysicalDeviceExternalFormatResolvePropertiesANDROID;
+  struct AndroidHardwareBufferFormatResolvePropertiesANDROID;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+  //=== VK_KHR_maintenance5 ===
+  struct PhysicalDeviceMaintenance5FeaturesKHR;
+  struct PhysicalDeviceMaintenance5PropertiesKHR;
+  struct RenderingAreaInfoKHR;
+  struct DeviceImageSubresourceInfoKHR;
+  struct ImageSubresource2KHR;
+  using ImageSubresource2EXT = ImageSubresource2KHR;
+  struct SubresourceLayout2KHR;
+  using SubresourceLayout2EXT = SubresourceLayout2KHR;
+  struct PipelineCreateFlags2CreateInfoKHR;
+  struct BufferUsageFlags2CreateInfoKHR;
+
+  //=== VK_KHR_ray_tracing_position_fetch ===
+  struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+
+  //=== VK_EXT_shader_object ===
+  struct PhysicalDeviceShaderObjectFeaturesEXT;
+  struct PhysicalDeviceShaderObjectPropertiesEXT;
+  struct ShaderCreateInfoEXT;
+
   //=== VK_QCOM_tile_properties ===
   struct PhysicalDeviceTilePropertiesFeaturesQCOM;
   struct TilePropertiesQCOM;
@@ -1553,6 +1672,10 @@
   struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV;
   struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV;
 
+  //=== VK_NV_extended_sparse_address_space ===
+  struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+  struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+
   //=== VK_EXT_mutable_descriptor_type ===
   struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
   using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
@@ -1561,10 +1684,663 @@
   struct MutableDescriptorTypeCreateInfoEXT;
   using MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
 
+  //=== VK_EXT_layer_settings ===
+  struct LayerSettingsCreateInfoEXT;
+  struct LayerSettingEXT;
+
   //=== VK_ARM_shader_core_builtins ===
   struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM;
   struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM;
 
+  //=== VK_EXT_pipeline_library_group_handles ===
+  struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+
+  //=== VK_EXT_dynamic_rendering_unused_attachments ===
+  struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+
+  //=== VK_NV_low_latency2 ===
+  struct LatencySleepModeInfoNV;
+  struct LatencySleepInfoNV;
+  struct SetLatencyMarkerInfoNV;
+  struct GetLatencyMarkerInfoNV;
+  struct LatencyTimingsFrameReportNV;
+  struct LatencySubmissionPresentIdNV;
+  struct SwapchainLatencyCreateInfoNV;
+  struct OutOfBandQueueTypeInfoNV;
+  struct LatencySurfaceCapabilitiesNV;
+
+  //=== VK_KHR_cooperative_matrix ===
+  struct CooperativeMatrixPropertiesKHR;
+  struct PhysicalDeviceCooperativeMatrixFeaturesKHR;
+  struct PhysicalDeviceCooperativeMatrixPropertiesKHR;
+
+  //=== VK_QCOM_multiview_per_view_render_areas ===
+  struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+  struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+
+  //=== VK_KHR_video_maintenance1 ===
+  struct PhysicalDeviceVideoMaintenance1FeaturesKHR;
+  struct VideoInlineQueryInfoKHR;
+
+  //=== VK_NV_per_stage_descriptor_set ===
+  struct PhysicalDevicePerStageDescriptorSetFeaturesNV;
+
+  //=== VK_QCOM_image_processing2 ===
+  struct PhysicalDeviceImageProcessing2FeaturesQCOM;
+  struct PhysicalDeviceImageProcessing2PropertiesQCOM;
+  struct SamplerBlockMatchWindowCreateInfoQCOM;
+
+  //=== VK_QCOM_filter_cubic_weights ===
+  struct PhysicalDeviceCubicWeightsFeaturesQCOM;
+  struct SamplerCubicWeightsCreateInfoQCOM;
+  struct BlitImageCubicWeightsInfoQCOM;
+
+  //=== VK_QCOM_ycbcr_degamma ===
+  struct PhysicalDeviceYcbcrDegammaFeaturesQCOM;
+  struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+
+  //=== VK_QCOM_filter_cubic_clamp ===
+  struct PhysicalDeviceCubicClampFeaturesQCOM;
+
+  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+  struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+  //=== VK_KHR_vertex_attribute_divisor ===
+  struct PhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+  struct VertexInputBindingDivisorDescriptionKHR;
+  using VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionKHR;
+  struct PipelineVertexInputDivisorStateCreateInfoKHR;
+  using PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoKHR;
+  struct PhysicalDeviceVertexAttributeDivisorFeaturesKHR;
+  using PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesKHR;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  //=== VK_QNX_external_memory_screen_buffer ===
+  struct ScreenBufferPropertiesQNX;
+  struct ScreenBufferFormatPropertiesQNX;
+  struct ImportScreenBufferInfoQNX;
+  struct ExternalFormatQNX;
+  struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+  //=== VK_MSFT_layered_driver ===
+  struct PhysicalDeviceLayeredDriverPropertiesMSFT;
+
+  //=== VK_KHR_calibrated_timestamps ===
+  struct CalibratedTimestampInfoKHR;
+  using CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR;
+
+  //=== VK_KHR_maintenance6 ===
+  struct PhysicalDeviceMaintenance6FeaturesKHR;
+  struct PhysicalDeviceMaintenance6PropertiesKHR;
+  struct BindMemoryStatusKHR;
+  struct BindDescriptorSetsInfoKHR;
+  struct PushConstantsInfoKHR;
+  struct PushDescriptorSetInfoKHR;
+  struct PushDescriptorSetWithTemplateInfoKHR;
+  struct SetDescriptorBufferOffsetsInfoEXT;
+  struct BindDescriptorBufferEmbeddedSamplersInfoEXT;
+
+  //=== VK_NV_descriptor_pool_overallocation ===
+  struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+
+  //===================================
+  //=== HANDLE forward declarations ===
+  //===================================
+
+  //=== VK_VERSION_1_0 ===
+  class Instance;
+  class PhysicalDevice;
+  class Device;
+  class Queue;
+  class DeviceMemory;
+  class Fence;
+  class Semaphore;
+  class Event;
+  class QueryPool;
+  class Buffer;
+  class BufferView;
+  class Image;
+  class ImageView;
+  class ShaderModule;
+  class PipelineCache;
+  class Pipeline;
+  class PipelineLayout;
+  class Sampler;
+  class DescriptorPool;
+  class DescriptorSet;
+  class DescriptorSetLayout;
+  class Framebuffer;
+  class RenderPass;
+  class CommandPool;
+  class CommandBuffer;
+
+  //=== VK_VERSION_1_1 ===
+  class SamplerYcbcrConversion;
+  class DescriptorUpdateTemplate;
+
+  //=== VK_VERSION_1_3 ===
+  class PrivateDataSlot;
+
+  //=== VK_KHR_surface ===
+  class SurfaceKHR;
+
+  //=== VK_KHR_swapchain ===
+  class SwapchainKHR;
+
+  //=== VK_KHR_display ===
+  class DisplayKHR;
+  class DisplayModeKHR;
+
+  //=== VK_EXT_debug_report ===
+  class DebugReportCallbackEXT;
+
+  //=== VK_KHR_video_queue ===
+  class VideoSessionKHR;
+  class VideoSessionParametersKHR;
+
+  //=== VK_NVX_binary_import ===
+  class CuModuleNVX;
+  class CuFunctionNVX;
+
+  //=== VK_EXT_debug_utils ===
+  class DebugUtilsMessengerEXT;
+
+  //=== VK_KHR_acceleration_structure ===
+  class AccelerationStructureKHR;
+
+  //=== VK_EXT_validation_cache ===
+  class ValidationCacheEXT;
+
+  //=== VK_NV_ray_tracing ===
+  class AccelerationStructureNV;
+
+  //=== VK_INTEL_performance_query ===
+  class PerformanceConfigurationINTEL;
+
+  //=== VK_KHR_deferred_host_operations ===
+  class DeferredOperationKHR;
+
+  //=== VK_NV_device_generated_commands ===
+  class IndirectCommandsLayoutNV;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  class CudaModuleNV;
+  class CudaFunctionNV;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  class BufferCollectionFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  class MicromapEXT;
+
+  //=== VK_NV_optical_flow ===
+  class OpticalFlowSessionNV;
+
+  //=== VK_EXT_shader_object ===
+  class ShaderEXT;
+
+#ifndef VULKAN_HPP_NO_SMART_HANDLE
+  //======================
+  //=== UNIQUE HANDLEs ===
+  //======================
+
+  //=== VK_VERSION_1_0 ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<Instance, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<NoParent, Dispatch>;
+  };
+
+  using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Device, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<NoParent, Dispatch>;
+  };
+
+  using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<DeviceMemory, Dispatch>
+  {
+  public:
+    using deleter = ObjectFree<Device, Dispatch>;
+  };
+
+  using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Fence, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Semaphore, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Event, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<QueryPool, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Buffer, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<BufferView, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Image, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<ImageView, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<ShaderModule, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<PipelineCache, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Pipeline, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<PipelineLayout, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Sampler, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<DescriptorPool, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<DescriptorSet, Dispatch>
+  {
+  public:
+    using deleter = PoolFree<Device, DescriptorPool, Dispatch>;
+  };
+
+  using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<DescriptorSetLayout, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<Framebuffer, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<RenderPass, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<CommandPool, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<CommandBuffer, Dispatch>
+  {
+  public:
+    using deleter = PoolFree<Device, CommandPool, Dispatch>;
+  };
+
+  using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_VERSION_1_1 ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueSamplerYcbcrConversion    = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+  using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueDescriptorUpdateTemplate    = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+  using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_VERSION_1_3 ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<PrivateDataSlot, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniquePrivateDataSlot    = UniqueHandle<PrivateDataSlot, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+  using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlot, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_surface ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<SurfaceKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Instance, Dispatch>;
+  };
+
+  using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_swapchain ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<SwapchainKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_display ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<DisplayKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<PhysicalDevice, Dispatch>;
+  };
+
+  using UniqueDisplayKHR = UniqueHandle<DisplayKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_EXT_debug_report ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Instance, Dispatch>;
+  };
+
+  using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_video_queue ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<VideoSessionKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueVideoSessionKHR = UniqueHandle<VideoSessionKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<VideoSessionParametersKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueVideoSessionParametersKHR = UniqueHandle<VideoSessionParametersKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_NVX_binary_import ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<CuModuleNVX, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueCuModuleNVX = UniqueHandle<CuModuleNVX, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<CuFunctionNVX, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueCuFunctionNVX = UniqueHandle<CuFunctionNVX, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_EXT_debug_utils ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Instance, Dispatch>;
+  };
+
+  using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_acceleration_structure ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<AccelerationStructureKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_EXT_validation_cache ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<ValidationCacheEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_NV_ray_tracing ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<AccelerationStructureNV, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_INTEL_performance_query ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<PerformanceConfigurationINTEL, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniquePerformanceConfigurationINTEL = UniqueHandle<PerformanceConfigurationINTEL, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_KHR_deferred_host_operations ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<DeferredOperationKHR, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_NV_device_generated_commands ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<CudaModuleNV, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueCudaModuleNV = UniqueHandle<CudaModuleNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<CudaFunctionNV, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueCudaFunctionNV = UniqueHandle<CudaFunctionNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<BufferCollectionFUCHSIA, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueBufferCollectionFUCHSIA = UniqueHandle<BufferCollectionFUCHSIA, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<MicromapEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueMicromapEXT = UniqueHandle<MicromapEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_NV_optical_flow ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<OpticalFlowSessionNV, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueOpticalFlowSessionNV = UniqueHandle<OpticalFlowSessionNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_EXT_shader_object ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<ShaderEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueShaderEXT = UniqueHandle<ShaderEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
+
   //===============
   //=== HANDLEs ===
   //===============
@@ -1586,8 +2362,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
 
   public:
-    VULKAN_HPP_CONSTEXPR         SurfaceKHR() = default;
-    VULKAN_HPP_CONSTEXPR         SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR SurfaceKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT : m_surfaceKHR( surfaceKHR ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -1671,8 +2449,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DebugReportCallbackEXT() = default;
-    VULKAN_HPP_CONSTEXPR         DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() = default;
+
+    VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
       : m_debugReportCallbackEXT( debugReportCallbackEXT )
     {
@@ -1759,8 +2539,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DebugUtilsMessengerEXT() = default;
-    VULKAN_HPP_CONSTEXPR         DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() = default;
+
+    VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
     {
@@ -1841,8 +2623,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DisplayKHR() = default;
-    VULKAN_HPP_CONSTEXPR         DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DisplayKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT : m_displayKHR( displayKHR ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -1926,8 +2710,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
 
   public:
-    VULKAN_HPP_CONSTEXPR         SwapchainKHR() = default;
-    VULKAN_HPP_CONSTEXPR         SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR SwapchainKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT : m_swapchainKHR( swapchainKHR ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2011,8 +2797,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Semaphore() = default;
-    VULKAN_HPP_CONSTEXPR         Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Semaphore() = default;
+
+    VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT : m_semaphore( semaphore ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2096,8 +2884,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Fence() = default;
-    VULKAN_HPP_CONSTEXPR         Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Fence() = default;
+
+    VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT : m_fence( fence ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2181,8 +2971,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         PerformanceConfigurationINTEL() = default;
-    VULKAN_HPP_CONSTEXPR         PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() = default;
+
+    VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
     {
@@ -2263,8 +3055,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
 
   public:
-    VULKAN_HPP_CONSTEXPR         QueryPool() = default;
-    VULKAN_HPP_CONSTEXPR         QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR QueryPool() = default;
+
+    VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT : m_queryPool( queryPool ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2348,8 +3142,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Buffer() = default;
-    VULKAN_HPP_CONSTEXPR         Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Buffer() = default;
+
+    VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT : m_buffer( buffer ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2433,8 +3229,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
 
   public:
-    VULKAN_HPP_CONSTEXPR         PipelineLayout() = default;
-    VULKAN_HPP_CONSTEXPR         PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR PipelineLayout() = default;
+
+    VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT : m_pipelineLayout( pipelineLayout ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2518,8 +3316,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DescriptorSet() = default;
-    VULKAN_HPP_CONSTEXPR         DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DescriptorSet() = default;
+
+    VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT : m_descriptorSet( descriptorSet ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2603,8 +3403,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
 
   public:
-    VULKAN_HPP_CONSTEXPR         ImageView() = default;
-    VULKAN_HPP_CONSTEXPR         ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR ImageView() = default;
+
+    VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT : m_imageView( imageView ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2688,8 +3490,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Pipeline() = default;
-    VULKAN_HPP_CONSTEXPR         Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Pipeline() = default;
+
+    VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT : m_pipeline( pipeline ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2762,6 +3566,87 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
+  class ShaderEXT
+  {
+  public:
+    using CType      = VkShaderEXT;
+    using NativeType = VkShaderEXT;
+
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+      VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+  public:
+    VULKAN_HPP_CONSTEXPR ShaderEXT() = default;
+
+    VULKAN_HPP_CONSTEXPR ShaderEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT ShaderEXT( VkShaderEXT shaderEXT ) VULKAN_HPP_NOEXCEPT : m_shaderEXT( shaderEXT ) {}
+
+#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+    ShaderEXT & operator=( VkShaderEXT shaderEXT ) VULKAN_HPP_NOEXCEPT
+    {
+      m_shaderEXT = shaderEXT;
+      return *this;
+    }
+#endif
+
+    ShaderEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+    {
+      m_shaderEXT = {};
+      return *this;
+    }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ShaderEXT const & ) const = default;
+#else
+    bool operator==( ShaderEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT == rhs.m_shaderEXT;
+    }
+
+    bool operator!=( ShaderEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT != rhs.m_shaderEXT;
+    }
+
+    bool operator<( ShaderEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT < rhs.m_shaderEXT;
+    }
+#endif
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderEXT() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT != VK_NULL_HANDLE;
+    }
+
+    bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_shaderEXT == VK_NULL_HANDLE;
+    }
+
+  private:
+    VkShaderEXT m_shaderEXT = {};
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::ShaderEXT;
+  };
+
+  template <>
+  struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ShaderEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
+  };
+
   class Image
   {
   public:
@@ -2773,8 +3658,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Image() = default;
-    VULKAN_HPP_CONSTEXPR         Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Image() = default;
+
+    VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT : m_image( image ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -2858,8 +3745,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
 
   public:
-    VULKAN_HPP_CONSTEXPR         AccelerationStructureNV() = default;
-    VULKAN_HPP_CONSTEXPR         AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR AccelerationStructureNV() = default;
+
+    VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT
       : m_accelerationStructureNV( accelerationStructureNV )
     {
@@ -2946,8 +3835,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         OpticalFlowSessionNV() = default;
-    VULKAN_HPP_CONSTEXPR         OpticalFlowSessionNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR OpticalFlowSessionNV() = default;
+
+    VULKAN_HPP_CONSTEXPR OpticalFlowSessionNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT OpticalFlowSessionNV( VkOpticalFlowSessionNV opticalFlowSessionNV ) VULKAN_HPP_NOEXCEPT
       : m_opticalFlowSessionNV( opticalFlowSessionNV )
     {
@@ -3028,8 +3919,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DescriptorUpdateTemplate() = default;
-    VULKAN_HPP_CONSTEXPR         DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() = default;
+
+    VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
     {
@@ -3104,6 +3997,7 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
+
   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
 
   class Event
@@ -3117,8 +4011,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Event() = default;
-    VULKAN_HPP_CONSTEXPR         Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Event() = default;
+
+    VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT : m_event( event ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -3202,8 +4098,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
 
   public:
-    VULKAN_HPP_CONSTEXPR         AccelerationStructureKHR() = default;
-    VULKAN_HPP_CONSTEXPR         AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
       : m_accelerationStructureKHR( accelerationStructureKHR )
     {
@@ -3290,8 +4188,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         MicromapEXT() = default;
-    VULKAN_HPP_CONSTEXPR         MicromapEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR MicromapEXT() = default;
+
+    VULKAN_HPP_CONSTEXPR MicromapEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT MicromapEXT( VkMicromapEXT micromapEXT ) VULKAN_HPP_NOEXCEPT : m_micromapEXT( micromapEXT ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -3370,7 +4270,9 @@
 
   public:
     VULKAN_HPP_CONSTEXPR CommandBuffer() = default;
+
     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT : m_commandBuffer( commandBuffer ) {}
 
     CommandBuffer & operator=( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
@@ -4158,49 +5060,45 @@
                                Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo,
                               Dispatch const & d                                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo,
                               Dispatch const & d                                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo,
                             Dispatch const & d                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo,
                             Dispatch const & d                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo,
                                 Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo,
                                 Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_decode_queue ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pDecodeInfo,
                          Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo,
                          Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     //=== VK_EXT_transform_feedback ===
 
@@ -4318,20 +5216,6 @@
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void endRenderingKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 
-    //=== VK_KHR_dynamic_rendering ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,
-                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,
-                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void endRenderingKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-
     //=== VK_KHR_device_group ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -4421,6 +5305,14 @@
                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable,
+                                       Dispatch const & d           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode,
+                                     Dispatch const & d                            VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
     //=== VK_KHR_create_renderpass2 ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -4477,6 +5369,41 @@
                                    Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_AMDX_shader_enqueue ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                           Dispatch const & d                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                            const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
+                            Dispatch const & d                                       VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                            const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
+                            Dispatch const & d                                       VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                    const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
+                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                    const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
+                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                         VULKAN_HPP_NAMESPACE::DeviceAddress countInfo,
+                                         Dispatch const & d                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
     //=== VK_EXT_sample_locations ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -4564,6 +5491,49 @@
       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_ray_tracing_pipeline ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                       uint32_t                                                    width,
+                       uint32_t                                                    height,
+                       uint32_t                                                    depth,
+                       Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                       uint32_t                                                    width,
+                       uint32_t                                                    height,
+                       uint32_t                                                    depth,
+                       Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
+                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
+                               Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
+                               Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
     //=== VK_NV_shading_rate_image ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -4713,6 +5683,18 @@
     //=== VK_NV_scissor_exclusive ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setExclusiveScissorEnableNV( uint32_t                             firstExclusiveScissor,
+                                      uint32_t                             exclusiveScissorCount,
+                                      const VULKAN_HPP_NAMESPACE::Bool32 * pExclusiveScissorEnables,
+                                      Dispatch const & d                   VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setExclusiveScissorEnableNV( uint32_t                                                                     firstExclusiveScissor,
+                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables,
+                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void setExclusiveScissorNV( uint32_t                             firstExclusiveScissor,
                                 uint32_t                             exclusiveScissorCount,
                                 const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,
@@ -4893,16 +5875,38 @@
                                     uint32_t                                groupIndex,
                                     Dispatch const & d                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_EXT_depth_bias_control ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT * pDepthBiasInfo,
+                           Dispatch const & d                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo,
+                           Dispatch const & d                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     //=== VK_KHR_video_encode_queue ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo,
                          Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo,
                          Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV * pLaunchInfo,
+                             Dispatch const & d                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo,
+                             Dispatch const & d                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_ENABLE_BETA_EXTENSIONS*/
 
@@ -5081,49 +6085,6 @@
                            Dispatch const & d                              VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_KHR_ray_tracing_pipeline ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                       uint32_t                                                    width,
-                       uint32_t                                                    height,
-                       uint32_t                                                    depth,
-                       Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                       uint32_t                                                    width,
-                       uint32_t                                                    height,
-                       uint32_t                                                    depth,
-                       Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
-                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
-                               Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
-                               Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-
     //=== VK_EXT_vertex_input_dynamic_state ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -5279,6 +6240,19 @@
                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_HUAWEI_cluster_culling_shader ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void drawClusterHUAWEI( uint32_t           groupCountX,
+                            uint32_t           groupCountY,
+                            uint32_t           groupCountZ,
+                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                    VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                                    Dispatch const & d               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
     //=== VK_NV_copy_memory_indirect ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -5323,6 +6297,13 @@
                                           uint32_t                            stride,
                                           Dispatch const & d                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 
+    //=== VK_NV_device_generated_commands_compute ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
+                                         VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
+                                         Dispatch const & d                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
     //=== VK_EXT_extended_dynamic_state3 ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -5349,7 +6330,7 @@
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask,
-                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -5514,6 +6495,93 @@
                                Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_maintenance5 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                              VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                              VULKAN_HPP_NAMESPACE::DeviceSize size,
+                              VULKAN_HPP_NAMESPACE::IndexType  indexType,
+                              Dispatch const & d               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
+    //=== VK_EXT_shader_object ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindShadersEXT( uint32_t                                          stageCount,
+                         const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits * pStages,
+                         const VULKAN_HPP_NAMESPACE::ShaderEXT *           pShaders,
+                         Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
+                         VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &           shaders,
+                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,
+                                             Dispatch const & d                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
+    //=== VK_KHR_maintenance6 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR * pBindDescriptorSetsInfo,
+                                 Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo,
+                                 Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR * pPushConstantsInfo,
+                            Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo,
+                            Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR * pPushDescriptorSetInfo,
+                                Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo,
+                                Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR * pPushDescriptorSetWithTemplateInfo,
+                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo,
+                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindDescriptorBufferEmbeddedSamplers2EXT(
+      const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo,
+      Dispatch const & d                                                        VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void bindDescriptorBufferEmbeddedSamplers2EXT(
+      const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo,
+      Dispatch const & d                                                        VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
     {
       return m_commandBuffer;
@@ -5562,8 +6630,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DeviceMemory() = default;
-    VULKAN_HPP_CONSTEXPR         DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DeviceMemory() = default;
+
+    VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT : m_deviceMemory( deviceMemory ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -5636,7 +6706,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoSessionKHR
   {
   public:
@@ -5648,17 +6717,19 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         VideoSessionKHR() = default;
-    VULKAN_HPP_CONSTEXPR         VideoSessionKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR VideoSessionKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR VideoSessionKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT VideoSessionKHR( VkVideoSessionKHR videoSessionKHR ) VULKAN_HPP_NOEXCEPT : m_videoSessionKHR( videoSessionKHR ) {}
 
-#  if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
     VideoSessionKHR & operator=( VkVideoSessionKHR videoSessionKHR ) VULKAN_HPP_NOEXCEPT
     {
       m_videoSessionKHR = videoSessionKHR;
       return *this;
     }
-#  endif
+#endif
 
     VideoSessionKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
     {
@@ -5666,9 +6737,9 @@
       return *this;
     }
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return m_videoSessionKHR == rhs.m_videoSessionKHR;
@@ -5683,7 +6754,7 @@
     {
       return m_videoSessionKHR < rhs.m_videoSessionKHR;
     }
-#  endif
+#endif
 
     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkVideoSessionKHR() const VULKAN_HPP_NOEXCEPT
     {
@@ -5715,7 +6786,6 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   class DeferredOperationKHR
   {
@@ -5728,8 +6798,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DeferredOperationKHR() = default;
-    VULKAN_HPP_CONSTEXPR         DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DeferredOperationKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
       : m_deferredOperationKHR( deferredOperationKHR )
     {
@@ -5811,8 +6883,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
 
   public:
-    VULKAN_HPP_CONSTEXPR         BufferCollectionFUCHSIA() = default;
-    VULKAN_HPP_CONSTEXPR         BufferCollectionFUCHSIA( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR BufferCollectionFUCHSIA() = default;
+
+    VULKAN_HPP_CONSTEXPR BufferCollectionFUCHSIA( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT BufferCollectionFUCHSIA( VkBufferCollectionFUCHSIA bufferCollectionFUCHSIA ) VULKAN_HPP_NOEXCEPT
       : m_bufferCollectionFUCHSIA( bufferCollectionFUCHSIA )
     {
@@ -5900,8 +6974,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
 
   public:
-    VULKAN_HPP_CONSTEXPR         BufferView() = default;
-    VULKAN_HPP_CONSTEXPR         BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR BufferView() = default;
+
+    VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT : m_bufferView( bufferView ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -5985,8 +7061,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
 
   public:
-    VULKAN_HPP_CONSTEXPR         CommandPool() = default;
-    VULKAN_HPP_CONSTEXPR         CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR CommandPool() = default;
+
+    VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT : m_commandPool( commandPool ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6070,8 +7148,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
 
   public:
-    VULKAN_HPP_CONSTEXPR         PipelineCache() = default;
-    VULKAN_HPP_CONSTEXPR         PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR PipelineCache() = default;
+
+    VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT : m_pipelineCache( pipelineCache ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6155,8 +7235,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
 
   public:
-    VULKAN_HPP_CONSTEXPR         CuFunctionNVX() = default;
-    VULKAN_HPP_CONSTEXPR         CuFunctionNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR CuFunctionNVX() = default;
+
+    VULKAN_HPP_CONSTEXPR CuFunctionNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT CuFunctionNVX( VkCuFunctionNVX cuFunctionNVX ) VULKAN_HPP_NOEXCEPT : m_cuFunctionNVX( cuFunctionNVX ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6240,8 +7322,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
 
   public:
-    VULKAN_HPP_CONSTEXPR         CuModuleNVX() = default;
-    VULKAN_HPP_CONSTEXPR         CuModuleNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR CuModuleNVX() = default;
+
+    VULKAN_HPP_CONSTEXPR CuModuleNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT CuModuleNVX( VkCuModuleNVX cuModuleNVX ) VULKAN_HPP_NOEXCEPT : m_cuModuleNVX( cuModuleNVX ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6314,6 +7398,184 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  class CudaFunctionNV
+  {
+  public:
+    using CType      = VkCudaFunctionNV;
+    using NativeType = VkCudaFunctionNV;
+
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+      VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
+
+  public:
+    VULKAN_HPP_CONSTEXPR CudaFunctionNV() = default;
+
+    VULKAN_HPP_CONSTEXPR CudaFunctionNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT CudaFunctionNV( VkCudaFunctionNV cudaFunctionNV ) VULKAN_HPP_NOEXCEPT : m_cudaFunctionNV( cudaFunctionNV ) {}
+
+#  if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+    CudaFunctionNV & operator=( VkCudaFunctionNV cudaFunctionNV ) VULKAN_HPP_NOEXCEPT
+    {
+      m_cudaFunctionNV = cudaFunctionNV;
+      return *this;
+    }
+#  endif
+
+    CudaFunctionNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+    {
+      m_cudaFunctionNV = {};
+      return *this;
+    }
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CudaFunctionNV const & ) const = default;
+#  else
+    bool operator==( CudaFunctionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV == rhs.m_cudaFunctionNV;
+    }
+
+    bool operator!=( CudaFunctionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV != rhs.m_cudaFunctionNV;
+    }
+
+    bool operator<( CudaFunctionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV < rhs.m_cudaFunctionNV;
+    }
+#  endif
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCudaFunctionNV() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV != VK_NULL_HANDLE;
+    }
+
+    bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaFunctionNV == VK_NULL_HANDLE;
+    }
+
+  private:
+    VkCudaFunctionNV m_cudaFunctionNV = {};
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV;
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV;
+  };
+
+  template <>
+  struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaFunctionNV>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  class CudaModuleNV
+  {
+  public:
+    using CType      = VkCudaModuleNV;
+    using NativeType = VkCudaModuleNV;
+
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+      VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
+
+  public:
+    VULKAN_HPP_CONSTEXPR CudaModuleNV() = default;
+
+    VULKAN_HPP_CONSTEXPR CudaModuleNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT CudaModuleNV( VkCudaModuleNV cudaModuleNV ) VULKAN_HPP_NOEXCEPT : m_cudaModuleNV( cudaModuleNV ) {}
+
+#  if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+    CudaModuleNV & operator=( VkCudaModuleNV cudaModuleNV ) VULKAN_HPP_NOEXCEPT
+    {
+      m_cudaModuleNV = cudaModuleNV;
+      return *this;
+    }
+#  endif
+
+    CudaModuleNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+    {
+      m_cudaModuleNV = {};
+      return *this;
+    }
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CudaModuleNV const & ) const = default;
+#  else
+    bool operator==( CudaModuleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV == rhs.m_cudaModuleNV;
+    }
+
+    bool operator!=( CudaModuleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV != rhs.m_cudaModuleNV;
+    }
+
+    bool operator<( CudaModuleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV < rhs.m_cudaModuleNV;
+    }
+#  endif
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCudaModuleNV() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV != VK_NULL_HANDLE;
+    }
+
+    bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_cudaModuleNV == VK_NULL_HANDLE;
+    }
+
+  private:
+    VkCudaModuleNV m_cudaModuleNV = {};
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV;
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV;
+  };
+
+  template <>
+  struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaModuleNV>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   class DescriptorPool
   {
   public:
@@ -6325,8 +7587,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DescriptorPool() = default;
-    VULKAN_HPP_CONSTEXPR         DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DescriptorPool() = default;
+
+    VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT : m_descriptorPool( descriptorPool ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6410,8 +7674,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DescriptorSetLayout() = default;
-    VULKAN_HPP_CONSTEXPR         DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DescriptorSetLayout() = default;
+
+    VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
       : m_descriptorSetLayout( descriptorSetLayout )
     {
@@ -6498,8 +7764,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Framebuffer() = default;
-    VULKAN_HPP_CONSTEXPR         Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Framebuffer() = default;
+
+    VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT : m_framebuffer( framebuffer ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6583,8 +7851,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         IndirectCommandsLayoutNV() = default;
-    VULKAN_HPP_CONSTEXPR         IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() = default;
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
     {
@@ -6665,8 +7935,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         PrivateDataSlot() = default;
-    VULKAN_HPP_CONSTEXPR         PrivateDataSlot( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR PrivateDataSlot() = default;
+
+    VULKAN_HPP_CONSTEXPR PrivateDataSlot( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlot( VkPrivateDataSlot privateDataSlot ) VULKAN_HPP_NOEXCEPT : m_privateDataSlot( privateDataSlot ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6732,6 +8004,7 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
+
   using PrivateDataSlotEXT = PrivateDataSlot;
 
   class RenderPass
@@ -6745,8 +8018,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
 
   public:
-    VULKAN_HPP_CONSTEXPR         RenderPass() = default;
-    VULKAN_HPP_CONSTEXPR         RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR RenderPass() = default;
+
+    VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT : m_renderPass( renderPass ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6830,8 +8105,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
 
   public:
-    VULKAN_HPP_CONSTEXPR         Sampler() = default;
-    VULKAN_HPP_CONSTEXPR         Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR Sampler() = default;
+
+    VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT : m_sampler( sampler ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -6915,8 +8192,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
 
   public:
-    VULKAN_HPP_CONSTEXPR         SamplerYcbcrConversion() = default;
-    VULKAN_HPP_CONSTEXPR         SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() = default;
+
+    VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
       : m_samplerYcbcrConversion( samplerYcbcrConversion )
     {
@@ -6991,6 +8270,7 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
+
   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
 
   class ShaderModule
@@ -7004,8 +8284,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
 
   public:
-    VULKAN_HPP_CONSTEXPR         ShaderModule() = default;
-    VULKAN_HPP_CONSTEXPR         ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR ShaderModule() = default;
+
+    VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT : m_shaderModule( shaderModule ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -7089,8 +8371,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
 
   public:
-    VULKAN_HPP_CONSTEXPR         ValidationCacheEXT() = default;
-    VULKAN_HPP_CONSTEXPR         ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR ValidationCacheEXT() = default;
+
+    VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT : m_validationCacheEXT( validationCacheEXT )
     {
     }
@@ -7165,7 +8449,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   class VideoSessionParametersKHR
   {
   public:
@@ -7177,20 +8460,22 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
   public:
-    VULKAN_HPP_CONSTEXPR         VideoSessionParametersKHR() = default;
-    VULKAN_HPP_CONSTEXPR         VideoSessionParametersKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT VideoSessionParametersKHR( VkVideoSessionParametersKHR videoSessionParametersKHR ) VULKAN_HPP_NOEXCEPT
       : m_videoSessionParametersKHR( videoSessionParametersKHR )
     {
     }
 
-#  if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
     VideoSessionParametersKHR & operator=( VkVideoSessionParametersKHR videoSessionParametersKHR ) VULKAN_HPP_NOEXCEPT
     {
       m_videoSessionParametersKHR = videoSessionParametersKHR;
       return *this;
     }
-#  endif
+#endif
 
     VideoSessionParametersKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
     {
@@ -7198,9 +8483,9 @@
       return *this;
     }
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionParametersKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return m_videoSessionParametersKHR == rhs.m_videoSessionParametersKHR;
@@ -7215,7 +8500,7 @@
     {
       return m_videoSessionParametersKHR < rhs.m_videoSessionParametersKHR;
     }
-#  endif
+#endif
 
     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkVideoSessionParametersKHR() const VULKAN_HPP_NOEXCEPT
     {
@@ -7247,7 +8532,6 @@
   {
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   class Queue
   {
@@ -7261,7 +8545,9 @@
 
   public:
     VULKAN_HPP_CONSTEXPR Queue() = default;
+
     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT : m_queue( queue ) {}
 
     Queue & operator=( VkQueue queue ) VULKAN_HPP_NOEXCEPT
@@ -7346,22 +8632,6 @@
                Dispatch const & d                                                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_VERSION_1_3 ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      submit2( uint32_t                                  submitCount,
-               const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,
-               VULKAN_HPP_NAMESPACE::Fence               fence,
-               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
-      submit2( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
-               VULKAN_HPP_NAMESPACE::Fence fence                           VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
-               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
     //=== VK_KHR_swapchain ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -7410,7 +8680,7 @@
     template <typename CheckpointDataNVAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CheckpointDataNV>,
               typename Dispatch                  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                        = CheckpointDataNVAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, CheckpointDataNV>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CheckpointDataNV>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator>
       getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -7455,11 +8725,22 @@
     template <typename CheckpointData2NVAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CheckpointData2NV>,
               typename Dispatch                   = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                         = CheckpointData2NVAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, CheckpointData2NV>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CheckpointData2NV>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator>
       getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_NV_low_latency2 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo,
+                            Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo,
+                            Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkQueue() const VULKAN_HPP_NOEXCEPT
     {
       return m_queue;
@@ -7497,278 +8778,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
-#ifndef VULKAN_HPP_NO_SMART_HANDLE
-  class Device;
-  template <typename Dispatch>
-  class UniqueHandleTraits<AccelerationStructureKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<AccelerationStructureNV, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Buffer, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-  template <typename Dispatch>
-  class UniqueHandleTraits<BufferCollectionFUCHSIA, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueBufferCollectionFUCHSIA = UniqueHandle<BufferCollectionFUCHSIA, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-  template <typename Dispatch>
-  class UniqueHandleTraits<BufferView, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<CommandBuffer, Dispatch>
-  {
-  public:
-    using deleter = PoolFree<Device, CommandPool, Dispatch>;
-  };
-  using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<CommandPool, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<CuFunctionNVX, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueCuFunctionNVX = UniqueHandle<CuFunctionNVX, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<CuModuleNVX, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueCuModuleNVX = UniqueHandle<CuModuleNVX, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DeferredOperationKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DescriptorPool, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DescriptorSet, Dispatch>
-  {
-  public:
-    using deleter = PoolFree<Device, DescriptorPool, Dispatch>;
-  };
-  using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DescriptorSetLayout, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueDescriptorUpdateTemplate    = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DeviceMemory, Dispatch>
-  {
-  public:
-    using deleter = ObjectFree<Device, Dispatch>;
-  };
-  using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Event, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Fence, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Framebuffer, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Image, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<ImageView, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<MicromapEXT, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueMicromapEXT = UniqueHandle<MicromapEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<OpticalFlowSessionNV, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueOpticalFlowSessionNV = UniqueHandle<OpticalFlowSessionNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Pipeline, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<PipelineCache, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<PipelineLayout, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<PrivateDataSlot, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniquePrivateDataSlot    = UniqueHandle<PrivateDataSlot, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlot, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<QueryPool, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<RenderPass, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Sampler, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueSamplerYcbcrConversion    = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<Semaphore, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<ShaderModule, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<SwapchainKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<ValidationCacheEXT, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <typename Dispatch>
-  class UniqueHandleTraits<VideoSessionKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueVideoSessionKHR = UniqueHandle<VideoSessionKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <typename Dispatch>
-  class UniqueHandleTraits<VideoSessionParametersKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Device, Dispatch>;
-  };
-  using UniqueVideoSessionParametersKHR = UniqueHandle<VideoSessionParametersKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#endif   /*VULKAN_HPP_NO_SMART_HANDLE*/
-
   class Device
   {
   public:
@@ -7781,7 +8790,9 @@
 
   public:
     VULKAN_HPP_CONSTEXPR Device() = default;
+
     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     Device( VkDevice device ) VULKAN_HPP_NOEXCEPT : m_device( device ) {}
 
     Device & operator=( VkDevice device ) VULKAN_HPP_NOEXCEPT
@@ -8008,7 +9019,7 @@
     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>,
               typename Dispatch                               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                     = SparseImageMemoryRequirementsAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator>
                          getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image              image,
                                                            SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,
@@ -8585,10 +9596,10 @@
                                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                                   Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename PipelineAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
-              typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B0                                                                                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type = 0>
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
+              typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                          createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
                                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
@@ -8612,7 +9623,7 @@
     template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
               typename B0                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                          createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
                                                         VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
@@ -8642,10 +9653,10 @@
                                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename PipelineAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
-              typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B0                                                                                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type = 0>
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
+              typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                          createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
                                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
@@ -8669,7 +9680,7 @@
     template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
               typename B0                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                          createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
                                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
@@ -8899,7 +9910,7 @@
     template <typename DescriptorSetAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DescriptorSet>,
               typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B0                     = DescriptorSetAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, DescriptorSet>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::DescriptorSet>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator>>::type
       allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
                               DescriptorSetAllocator &                                descriptorSetAllocator,
@@ -8913,7 +9924,7 @@
     template <typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename DescriptorSetAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>>,
               typename B0                     = DescriptorSetAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type
       allocateDescriptorSetsUnique( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
                                     DescriptorSetAllocator &                                descriptorSetAllocator,
@@ -9119,7 +10130,7 @@
     template <typename CommandBufferAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CommandBuffer>,
               typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B0                     = CommandBufferAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, CommandBuffer>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::CommandBuffer>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator>>::type
       allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
                               CommandBufferAllocator &                                commandBufferAllocator,
@@ -9133,7 +10144,7 @@
     template <typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename CommandBufferAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>>,
               typename B0                     = CommandBufferAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator>>::type
       allocateCommandBuffersUnique( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
                                     CommandBufferAllocator &                                commandBufferAllocator,
@@ -9214,7 +10225,7 @@
                          getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,
                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,
                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9229,7 +10240,7 @@
                          getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,
                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,
                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9248,7 +10259,7 @@
     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>,
               typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                      = SparseImageMemoryRequirements2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                          getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
                                                             SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
@@ -9377,7 +10388,7 @@
                          getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9513,14 +10524,14 @@
 
 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    VULKAN_HPP_NODISCARD Result setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                 uint64_t                              objectHandle,
                                                 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                 uint64_t                              data,
                                                 Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #else
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    typename ResultValueType<void>::type setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    typename ResultValueType<void>::type setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                          uint64_t                              objectHandle,
                                                          VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                          uint64_t                              data,
@@ -9528,14 +10539,14 @@
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    void getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                          uint64_t                              objectHandle,
                          VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                          uint64_t *                            pData,
                          Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD uint64_t getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    VULKAN_HPP_NODISCARD uint64_t getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                   uint64_t                              objectHandle,
                                                   VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                   Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
@@ -9551,7 +10562,7 @@
                          getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9566,7 +10577,7 @@
                          getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9585,153 +10596,13 @@
     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>,
               typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                      = SparseImageMemoryRequirements2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                          getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                            SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
                                                            Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_VERSION_1_3 ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,
-                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
-                             VULKAN_HPP_NAMESPACE::PrivateDataSlot *                 pPrivateDataSlot,
-                             Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::type
-      createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,
-                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
-                                                VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                             Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  ifndef VULKAN_HPP_NO_SMART_HANDLE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>>::type
-      createPrivateDataSlotUnique( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,
-                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
-                                                      VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-#endif   /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void
-      destroyPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
-                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void destroyPrivateDataSlot(
-      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
-      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
-                         VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
-                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
-                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
-                                     VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                      uint64_t                              objectHandle,
-                      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                      uint64_t                              data,
-                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#else
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    typename ResultValueType<void>::type
-      setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                      uint64_t                              objectHandle,
-                      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                      uint64_t                              data,
-                      Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                         uint64_t                              objectHandle,
-                         VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                         uint64_t *                            pData,
-                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD uint64_t
-      getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
-                      uint64_t                              objectHandle,
-                      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,
-                                      VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                  pMemoryRequirements,
-                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const
-      VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
-                                     VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
-                                     Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const
-      VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getImageSparseMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
-      uint32_t *                                                  pSparseMemoryRequirementCount,
-      VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 *      pSparseMemoryRequirements,
-      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>,
-              typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
-      getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>,
-              typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B                                       = SparseImageMemoryRequirements2Allocator,
-              typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value,
-                                      int>::type               = 0>
-    VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
-                         getImageSparseMemoryRequirements(
-                           const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
-                           SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
-                           Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
     //=== VK_KHR_swapchain ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -9785,10 +10656,10 @@
     template <typename ImageAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator>>::type
       getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename ImageAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Image>,
-              typename Dispatch                                                                       = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B1                                                                             = ImageAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, Image>::value, int>::type = 0>
+    template <typename ImageAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Image>,
+              typename Dispatch       = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1             = ImageAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::Image>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator>>::type getSwapchainImagesKHR(
       VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -9855,7 +10726,7 @@
     template <typename SwapchainKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::SwapchainKHR>,
               typename Dispatch              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B0                    = SwapchainKHRAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, SwapchainKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator>>::type
       createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
@@ -9876,7 +10747,7 @@
     template <typename Dispatch              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename SwapchainKHRAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>,
               typename B0                    = SwapchainKHRAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type
       createSharedSwapchainsKHRUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
@@ -9912,7 +10783,6 @@
                                    Dispatch const & d                                         VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -9920,49 +10790,49 @@
                                                        const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
                                                        VULKAN_HPP_NAMESPACE::VideoSessionKHR *                 pVideoSession,
                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionKHR>::type
       createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &             createInfo,
                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                              Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>>::type
       createVideoSessionKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &             createInfo,
                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                    Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
                                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession                  VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
                   Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR                               videoSession,
                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                   Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
                                                                       uint32_t *                                                pMemoryRequirementsCount,
                                                                       VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR * pMemoryRequirements,
                                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename VideoSessionMemoryRequirementsKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>,
               typename Dispatch                                   = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD
@@ -9972,81 +10842,80 @@
     template <typename VideoSessionMemoryRequirementsKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>,
               typename Dispatch                                   = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                         = VideoSessionMemoryRequirementsKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, VideoSessionMemoryRequirementsKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator>>::type
       getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR        videoSession,
                                             VideoSessionMemoryRequirementsKHRAllocator & videoSessionMemoryRequirementsKHRAllocator,
                                             Dispatch const & d                           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result bindVideoSessionMemoryKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                       videoSession,
                                                            uint32_t                                                    bindSessionMemoryInfoCount,
                                                            const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos,
                                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
       bindVideoSessionMemoryKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                                                               videoSession,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos,
                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result createVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR * pCreateInfo,
                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                 pAllocator,
                                                                  VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR *                 pVideoSessionParameters,
                                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>::type
       createVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR &   createInfo,
                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                        Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR, Dispatch>>::type
       createVideoSessionParametersKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR &   createInfo,
                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                   videoSessionParameters,
                                                                  const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo,
                                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
       updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                   videoSessionParameters,
                                        const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo,
                                        Dispatch const & d                                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
                   Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                     videoSessionParameters,
                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                   Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     //=== VK_NVX_binary_import ===
 
@@ -10459,7 +11328,7 @@
     template <typename PastPresentationTimingGOOGLEAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>,
               typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                    = PastPresentationTimingGOOGLEAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PastPresentationTimingGOOGLE>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type
       getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR      swapchain,
                                        PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,
@@ -10611,7 +11480,7 @@
     VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type
       getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<StructureChain<X, Y, Z...>>::type
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
       getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -10627,6 +11496,94 @@
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_AMDX_shader_enqueue ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createExecutionGraphPipelinesAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
+                                                                   uint32_t                                                           createInfoCount,
+                                                                   const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,
+                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                  pAllocator,
+                                                                   VULKAN_HPP_NAMESPACE::Pipeline *                                   pPipelines,
+                                                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                         createExecutionGraphPipelinesAMDX( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
+                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+                                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                            Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
+              typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                         createExecutionGraphPipelinesAMDX( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
+                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+                                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+                                                            PipelineAllocator & pipelineAllocator,
+                                                            Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
+                         createExecutionGraphPipelineAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
+                                                           const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX &  createInfo,
+                                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                           Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                         createExecutionGraphPipelinesAMDXUnique(
+                           VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                           Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                         createExecutionGraphPipelinesAMDXUnique(
+                           VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
+                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
+                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
+                           PipelineAllocator &                                                                                        pipelineAllocator,
+                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>> createExecutionGraphPipelineAMDXUnique(
+      VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
+      const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX &  createInfo,
+      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+      Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result
+      getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                executionGraph,
+                                                VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX * pSizeInfo,
+                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>::type
+      getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline executionGraph,
+                                                Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getExecutionGraphPipelineNodeIndexAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                      executionGraph,
+                                                                        const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,
+                                                                        uint32_t *                                                          pNodeIndex,
+                                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<uint32_t>::type
+      getExecutionGraphPipelineNodeIndexAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                      executionGraph,
+                                              const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo,
+                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+
     //=== VK_KHR_get_memory_requirements2 ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -10639,7 +11596,7 @@
                          getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,
                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,
                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -10654,7 +11611,7 @@
                          getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,
                                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,
                                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -10673,7 +11630,7 @@
     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>,
               typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                      = SparseImageMemoryRequirements2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                          getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
                                                                SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
@@ -10835,6 +11792,119 @@
       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_ray_tracing_pipeline ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
+                                                              VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
+                                                              uint32_t                                                      createInfoCount,
+                                                              const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,
+                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *             pAllocator,
+                                                              VULKAN_HPP_NAMESPACE::Pipeline *                              pPipelines,
+                                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                         createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
+                                                       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
+                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                       Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
+              typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
+                         createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
+                                                       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
+                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+                                                       PipelineAllocator &                                                                                   pipelineAllocator,
+                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
+                         createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                          deferredOperation,
+                                                      VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
+                                                      const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR &       createInfo,
+                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                      Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                         createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
+                                                             VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
+                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                             Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
+                         createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
+                                                             VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
+                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
+                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
+                                                             PipelineAllocator & pipelineAllocator,
+                                                             Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
+                         createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                          deferredOperation,
+                                                            VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
+                                                            const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR &       createInfo,
+                                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                                            Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                                                    uint32_t                       firstGroup,
+                                                                    uint32_t                       groupCount,
+                                                                    size_t                         dataSize,
+                                                                    void *                         pData,
+                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename DataType, typename DataTypeAllocator = std::allocator<DataType>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
+      getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                          uint32_t                       firstGroup,
+                                          uint32_t                       groupCount,
+                                          size_t                         dataSize,
+                                          Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename DataType, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<DataType>::type getRayTracingShaderGroupHandleKHR(
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result
+      getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                                       uint32_t                       firstGroup,
+                                                       uint32_t                       groupCount,
+                                                       size_t                         dataSize,
+                                                       void *                         pData,
+                                                       Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename DataType, typename DataTypeAllocator = std::allocator<DataType>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
+      getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
+                                                       uint32_t                       firstGroup,
+                                                       uint32_t                       groupCount,
+                                                       size_t                         dataSize,
+                                                       Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename DataType, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<DataType>::type getRayTracingCaptureReplayShaderGroupHandleKHR(
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline             pipeline,
+                                                     uint32_t                                   group,
+                                                     VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
+                                                     Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
     //=== VK_KHR_sampler_ycbcr_conversion ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -11034,7 +12104,7 @@
                          getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,
                                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,
                                                                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -11064,10 +12134,10 @@
                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
                                                       Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename PipelineAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
-              typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B0                                                                                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type = 0>
+    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
+              typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                = PipelineAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
                          createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache                                                                  pipelineCache,
                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
@@ -11091,7 +12161,7 @@
     template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
               typename B0                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
                          createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                                  pipelineCache,
                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
@@ -11165,7 +12235,7 @@
                          getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
                                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -11189,26 +12259,26 @@
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result getCalibratedTimestampsEXT( uint32_t                                                 timestampCount,
-                                                            const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,
+                                                            const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
                                                             uint64_t *                                               pTimestamps,
                                                             uint64_t *                                               pMaxDeviation,
                                                             Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
-      getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,
+      getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename Uint64_tAllocator                                                                 = std::allocator<uint64_t>,
               typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B0                                                                                = Uint64_tAllocator,
               typename std::enable_if<std::is_same<typename B0::value_type, uint64_t>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
-      getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,
+      getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
                                   Uint64_tAllocator &                                                                              uint64_tAllocator,
                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
-      getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo,
+      getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo,
                                  Dispatch const & d                                       VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -11342,23 +12412,6 @@
                                                                          Dispatch const & d                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    //=== VK_KHR_present_wait ===
-
-#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
-                         uint64_t                           presentId,
-                         uint64_t                           timeout,
-                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#else
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
-                                                   uint64_t                           presentId,
-                                                   uint64_t                           timeout,
-                                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     //=== VK_EXT_full_screen_exclusive ===
 
@@ -11514,7 +12567,7 @@
     template <typename PipelineExecutablePropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>,
               typename Dispatch                                 = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                       = PipelineExecutablePropertiesKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutablePropertiesKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type
       getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo,
@@ -11537,7 +12590,7 @@
     template <typename PipelineExecutableStatisticKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>,
               typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                      = PipelineExecutableStatisticKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutableStatisticKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type
       getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,
@@ -11558,10 +12611,11 @@
       std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type
       getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,
                                                        Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>,
-              typename Dispatch                                             = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B1                                                   = PipelineExecutableInternalRepresentationKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
+    template <
+      typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>,
+      typename Dispatch                                             = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+      typename B1                                                   = PipelineExecutableInternalRepresentationKHRAllocator,
+      typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<
       std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type
       getPipelineExecutableInternalRepresentationsKHR(
@@ -11570,6 +12624,88 @@
         Dispatch const & d                                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_EXT_host_image_copy ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo,
+                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
+      copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo,
+                            Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo,
+                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
+      copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo,
+                            Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT * pCopyImageToImageInfo,
+                                                     Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
+      copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo,
+                           Dispatch const & d                                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result transitionImageLayoutEXT( uint32_t                                                       transitionCount,
+                                                          const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT * pTransitions,
+                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type
+      transitionImageLayoutEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions,
+                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
+                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource,
+                                        VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *      pLayout,
+                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                         getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource,
+                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource,
+                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    //=== VK_KHR_map_memory2 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR * pMemoryMapInfo,
+                                               void **                                        ppData,
+                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<void *>::type mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo,
+                                                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    Result unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR * pMemoryUnmapInfo,
+                            Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo,
+                          Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     //=== VK_EXT_swapchain_maintenance1 ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -11593,7 +12729,7 @@
                          getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,
                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,
                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -11675,14 +12811,14 @@
 
 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    VULKAN_HPP_NODISCARD Result setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                    uint64_t                              objectHandle,
                                                    VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                    uint64_t                              data,
                                                    Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #else
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    typename ResultValueType<void>::type setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    typename ResultValueType<void>::type setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                             uint64_t                              objectHandle,
                                                             VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                             uint64_t                              data,
@@ -11690,19 +12826,169 @@
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                             uint64_t                              objectHandle,
                             VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                             uint64_t *                            pData,
                             Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType,
+    VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                      uint64_t                              objectHandle,
                                                      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                      Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_video_encode_queue ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result
+      getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
+                                           VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
+                                           size_t *                                                             pDataSize,
+                                           void *                                                               pData,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD
+      typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
+      getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Uint8_tAllocator                                                                 = std::allocator<uint8_t>,
+              typename Dispatch                                                                         = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B2                                                                               = Uint8_tAllocator,
+              typename std::enable_if<std::is_same<typename B2::value_type, uint8_t>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD
+      typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
+      getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                           Uint8_tAllocator &                                                   uint8_tAllocator,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename X,
+              typename Y,
+              typename... Z,
+              typename Uint8_tAllocator = std::allocator<uint8_t>,
+              typename Dispatch         = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
+      getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename X,
+              typename Y,
+              typename... Z,
+              typename Uint8_tAllocator                                                                 = std::allocator<uint8_t>,
+              typename Dispatch                                                                         = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B2                                                                               = Uint8_tAllocator,
+              typename std::enable_if<std::is_same<typename B2::value_type, uint8_t>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
+      getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
+                                           Uint8_tAllocator &                                                   uint8_tAllocator,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV * pCreateInfo,
+                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
+                                                    VULKAN_HPP_NAMESPACE::CudaModuleNV *                 pModule,
+                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaModuleNV>::type
+      createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &                createInfo,
+                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                          Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaModuleNV, Dispatch>>::type
+      createCudaModuleNVUnique( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &                createInfo,
+                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module,
+                                                      size_t *                           pCacheSize,
+                                                      void *                             pCacheData,
+                                                      Dispatch const & d                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+      getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Uint8_tAllocator                                                                 = std::allocator<uint8_t>,
+              typename Dispatch                                                                         = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1                                                                               = Uint8_tAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, uint8_t>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getCudaModuleCacheNV(
+      VULKAN_HPP_NAMESPACE::CudaModuleNV module, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV * pCreateInfo,
+                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
+                                                      VULKAN_HPP_NAMESPACE::CudaFunctionNV *                 pFunction,
+                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::type
+      createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &              createInfo,
+                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                            Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaFunctionNV, Dispatch>>::type
+      createCudaFunctionNVUnique( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &              createInfo,
+                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#    endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
+                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                              Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                                  module,
+                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
+                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                                  module,
+                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
+                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV                                function,
+                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
+                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV                                function,
+                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #if defined( VK_USE_PLATFORM_METAL_EXT )
     //=== VK_EXT_metal_objects ===
 
@@ -11714,7 +13000,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT
                          exportMetalObjectsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          exportMetalObjectsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 #endif   /*VK_USE_PLATFORM_METAL_EXT*/
@@ -11751,6 +13037,11 @@
                            void *                                             pDescriptor,
                            Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
+                           size_t                                             dataSize,
+                           void *                                             pDescriptor,
+                           Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename DescriptorType, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD DescriptorType getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
                                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
@@ -11815,26 +13106,6 @@
                                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_EXT_image_compression_control ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    void getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
-                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT * pSubresource,
-                                        VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT *      pLayout,
-                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT
-                         getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
-                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource,
-                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
-                         getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                        image,
-                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource,
-                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
     //=== VK_EXT_device_fault ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -11847,119 +13118,6 @@
                          getFaultInfoEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_KHR_ray_tracing_pipeline ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
-                                                              VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
-                                                              uint32_t                                                      createInfoCount,
-                                                              const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,
-                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *             pAllocator,
-                                                              VULKAN_HPP_NAMESPACE::Pipeline *                              pPipelines,
-                                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename PipelineAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
-                         createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
-                                                       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
-                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                                                       Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename PipelineAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Pipeline>,
-              typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B0                                                                                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, Pipeline>::value, int>::type = 0>
-    VULKAN_HPP_NODISCARD ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
-                         createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
-                                                       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
-                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-                                                       PipelineAllocator &                                                                                   pipelineAllocator,
-                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
-                         createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                          deferredOperation,
-                                                      VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
-                                                      const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR &       createInfo,
-                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                                                      Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  ifndef VULKAN_HPP_NO_SMART_HANDLE
-    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>>
-    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
-                         createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
-                                                             VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
-                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                                                             Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename Dispatch          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename PipelineAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>,
-              typename B0                = PipelineAllocator,
-              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
-    VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
-                         createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
-                                                             VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
-                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
-                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
-                                                             PipelineAllocator & pipelineAllocator,
-                                                             Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
-                         createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                          deferredOperation,
-                                                            VULKAN_HPP_NAMESPACE::PipelineCache                                 pipelineCache,
-                                                            const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR &       createInfo,
-                                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
-                                                            Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
-#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                                                    uint32_t                       firstGroup,
-                                                                    uint32_t                       groupCount,
-                                                                    size_t                         dataSize,
-                                                                    void *                         pData,
-                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename DataType, typename DataTypeAllocator = std::allocator<DataType>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
-      getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                          uint32_t                       firstGroup,
-                                          uint32_t                       groupCount,
-                                          size_t                         dataSize,
-                                          Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename DataType, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<DataType>::type getRayTracingShaderGroupHandleKHR(
-      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                                       uint32_t                       firstGroup,
-                                                       uint32_t                       groupCount,
-                                                       size_t                         dataSize,
-                                                       void *                         pData,
-                                                       Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename DataType, typename DataTypeAllocator = std::allocator<DataType>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
-      getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
-                                                       uint32_t                       firstGroup,
-                                                       uint32_t                       groupCount,
-                                                       size_t                         dataSize,
-                                                       Dispatch const & d             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename DataType, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<DataType>::type getRayTracingCaptureReplayShaderGroupHandleKHR(
-      VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline             pipeline,
-                                                     uint32_t                                   group,
-                                                     VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
-                                                     Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     //=== VK_FUCHSIA_external_memory ===
 
@@ -12293,7 +13451,7 @@
                          getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,
                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -12308,7 +13466,7 @@
                          getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -12327,7 +13485,7 @@
     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>,
               typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                      = SparseImageMemoryRequirements2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
                          getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
                                                               SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
@@ -12357,6 +13515,32 @@
                                                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_NV_device_generated_commands_compute ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfo,
+                                                  VULKAN_HPP_NAMESPACE::MemoryRequirements2 *             pMemoryRequirements,
+                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
+                         getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
+                                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
+                                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    DeviceAddress getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV * pInfo,
+                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NAMESPACE::DeviceAddress getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info,
+                                                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     //=== VK_EXT_shader_module_identifier ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -12442,6 +13626,143 @@
                                         Dispatch const & d                                     VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
+    //=== VK_KHR_maintenance5 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR * pRenderingAreaInfo,
+                                         VULKAN_HPP_NAMESPACE::Extent2D *                   pGranularity,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D
+                         getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo,
+                                                         Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR * pInfo,
+                                       VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *               pLayout,
+                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                         getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info,
+                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info,
+                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getImageSubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::Image                        image,
+                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource,
+                                        VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR *      pLayout,
+                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                         getImageSubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource,
+                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getImageSubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::Image                        image,
+                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource,
+                                                        Dispatch const & d                                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    //=== VK_EXT_shader_object ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createShadersEXT( uint32_t                                          createInfoCount,
+                                                  const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT * pCreateInfos,
+                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                  VULKAN_HPP_NAMESPACE::ShaderEXT *                 pShaders,
+                                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename ShaderEXTAllocator = std::allocator<VULKAN_HPP_NAMESPACE::ShaderEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>::type
+      createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                        Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename ShaderEXTAllocator = std::allocator<VULKAN_HPP_NAMESPACE::ShaderEXT>,
+              typename Dispatch           = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                 = ShaderEXTAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, VULKAN_HPP_NAMESPACE::ShaderEXT>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>::type
+      createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                        ShaderEXTAllocator &                                                                      shaderEXTAllocator,
+                        Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderEXT>::type
+      createShaderEXT( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &                   createInfo,
+                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                       Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch           = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename ShaderEXTAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>::type
+      createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                              Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch           = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename ShaderEXTAllocator = std::allocator<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>,
+              typename B0                 = ShaderEXTAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>::type
+      createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
+                              ShaderEXTAllocator &                                                                      shaderEXTAllocator,
+                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::type
+      createShaderEXTUnique( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &                   createInfo,
+                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                             Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
+                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                           Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                                     shader,
+                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
+                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                                     shader,
+                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader,
+                                                        size_t *                        pDataSize,
+                                                        void *                          pData,
+                                                        Dispatch const & d              VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
+      getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Uint8_tAllocator                                                                 = std::allocator<uint8_t>,
+              typename Dispatch                                                                         = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1                                                                               = Uint8_tAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, uint8_t>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getShaderBinaryDataEXT(
+      VULKAN_HPP_NAMESPACE::ShaderEXT shader, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     //=== VK_QCOM_tile_properties ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -12457,7 +13778,7 @@
     template <typename TilePropertiesQCOMAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>,
               typename Dispatch                    = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                          = TilePropertiesQCOMAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, TilePropertiesQCOM>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator>>::type
       getFramebufferTilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,
                                         TilePropertiesQCOMAllocator &     tilePropertiesQCOMAllocator,
@@ -12475,6 +13796,96 @@
                                                                 Dispatch const & d                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_NV_low_latency2 ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                       const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo,
+                                                       Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    typename ResultValueType<void>::type setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                                                                const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo,
+                                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR               swapchain,
+                                                const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo,
+                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    typename ResultValueType<void>::type latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR               swapchain,
+                                                         const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo,
+                                                         Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                             const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo,
+                             Dispatch const & d                                   VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
+                             const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo,
+                             Dispatch const & d                                   VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR             swapchain,
+                              VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,
+                              Dispatch const & d                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV
+                         getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
+                                              Dispatch const & d                 VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    //=== VK_QNX_external_memory_screen_buffer ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getScreenBufferPropertiesQNX( const struct _screen_buffer *                     buffer,
+                                                              VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX * pProperties,
+                                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>::type
+      getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
+      getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif   /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+    //=== VK_KHR_calibrated_timestamps ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getCalibratedTimestampsKHR( uint32_t                                                 timestampCount,
+                                                            const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
+                                                            uint64_t *                                               pTimestamps,
+                                                            uint64_t *                                               pMaxDeviation,
+                                                            Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
+      getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
+                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Uint64_tAllocator                                                                 = std::allocator<uint64_t>,
+              typename Dispatch                                                                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B0                                                                                = Uint64_tAllocator,
+              typename std::enable_if<std::is_same<typename B0::value_type, uint64_t>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
+      getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
+                                  Uint64_tAllocator &                                                                              uint64_tAllocator,
+                                  Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
+      getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo,
+                                 Dispatch const & d                                       VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkDevice() const VULKAN_HPP_NOEXCEPT
     {
       return m_device;
@@ -12523,8 +13934,10 @@
       VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
 
   public:
-    VULKAN_HPP_CONSTEXPR         DisplayModeKHR() = default;
-    VULKAN_HPP_CONSTEXPR         DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+    VULKAN_HPP_CONSTEXPR DisplayModeKHR() = default;
+
+    VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT : m_displayModeKHR( displayModeKHR ) {}
 
 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
@@ -12597,16 +14010,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
-#ifndef VULKAN_HPP_NO_SMART_HANDLE
-  template <typename Dispatch>
-  class UniqueHandleTraits<Device, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<NoParent, Dispatch>;
-  };
-  using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-
   class PhysicalDevice
   {
   public:
@@ -12619,7 +14022,9 @@
 
   public:
     VULKAN_HPP_CONSTEXPR PhysicalDevice() = default;
+
     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT : m_physicalDevice( physicalDevice ) {}
 
     PhysicalDevice & operator=( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
@@ -12714,7 +14119,7 @@
     template <typename QueueFamilyPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::QueueFamilyProperties>,
               typename Dispatch                       = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                             = QueueFamilyPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator>
                          getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator,
                                                    Dispatch const & d               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -12763,7 +14168,7 @@
     template <typename ExtensionPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::ExtensionProperties>,
               typename Dispatch                     = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                           = ExtensionPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, ExtensionProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
       enumerateDeviceExtensionProperties( Optional<const std::string>    layerName,
                                           ExtensionPropertiesAllocator & extensionPropertiesAllocator,
@@ -12781,7 +14186,7 @@
     template <typename LayerPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::LayerProperties>,
               typename Dispatch                 = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                       = LayerPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, LayerProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
       enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -12808,7 +14213,7 @@
     template <typename SparseImageFormatPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>,
               typename Dispatch                             = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                   = SparseImageFormatPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator>
                          getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
                                                          VULKAN_HPP_NAMESPACE::ImageType           type,
@@ -12827,9 +14232,10 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
-      getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -12838,9 +14244,10 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
-      getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -12852,7 +14259,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2
       getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12866,7 +14273,7 @@
       getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
                                  Dispatch const & d                                           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<StructureChain<X, Y, Z...>>::type
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
       getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
                                  Dispatch const & d                                           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -12883,7 +14290,7 @@
     template <typename QueueFamilyProperties2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>,
               typename Dispatch                        = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                              = QueueFamilyProperties2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
                          getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,
                                                     Dispatch const & d                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -12907,9 +14314,9 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
-      getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -12927,7 +14334,7 @@
     template <typename SparseImageFormatProperties2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>,
               typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                    = SparseImageFormatProperties2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
                          getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
                                                           SparseImageFormatProperties2Allocator &                            sparseImageFormatProperties2Allocator,
@@ -12981,36 +14388,12 @@
     template <typename PhysicalDeviceToolPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>,
               typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                    = PhysicalDeviceToolPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceToolProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
       getToolProperties( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,
                          Dispatch const & d                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
-    //=== VK_VERSION_1_3 ===
-
-    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD Result
-      getToolProperties( uint32_t *                                           pToolCount,
-                         VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,
-                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename PhysicalDeviceToolPropertiesAllocator = std::allocator<PhysicalDeviceToolProperties>,
-              typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD
-      typename ResultValueType<std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
-      getToolProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <
-      typename PhysicalDeviceToolPropertiesAllocator = std::allocator<PhysicalDeviceToolProperties>,
-      typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-      typename B                                     = PhysicalDeviceToolPropertiesAllocator,
-      typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolProperties>::value, int>::type = 0>
-    VULKAN_HPP_NODISCARD
-      typename ResultValueType<std::vector<PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
-      getToolProperties( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,
-                         Dispatch const & d                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
     //=== VK_KHR_surface ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -13048,7 +14431,7 @@
     template <typename SurfaceFormatKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>,
               typename Dispatch                  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                        = SurfaceFormatKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SurfaceFormatKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type
       getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
                             SurfaceFormatKHRAllocator &      surfaceFormatKHRAllocator,
@@ -13068,7 +14451,7 @@
     template <typename PresentModeKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PresentModeKHR>,
               typename Dispatch                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                      = PresentModeKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PresentModeKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
       getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
                                  PresentModeKHRAllocator &        presentModeKHRAllocator,
@@ -13086,10 +14469,10 @@
     template <typename Rect2DAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator>>::type
       getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename Rect2DAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::Rect2D>,
-              typename Dispatch                                                                        = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B1                                                                              = Rect2DAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, Rect2D>::value, int>::type = 0>
+    template <typename Rect2DAllocator = std::allocator<VULKAN_HPP_NAMESPACE::Rect2D>,
+              typename Dispatch        = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1              = Rect2DAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::Rect2D>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator>>::type getPresentRectanglesKHR(
       VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -13108,7 +14491,7 @@
     template <typename DisplayPropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>,
               typename Dispatch                      = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                            = DisplayPropertiesKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayPropertiesKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type
       getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator,
                                Dispatch const & d              VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13126,7 +14509,7 @@
     template <typename DisplayPlanePropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>,
               typename Dispatch                           = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                 = DisplayPlanePropertiesKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayPlanePropertiesKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type
       getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator,
                                     Dispatch const & d                   VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13141,10 +14524,10 @@
     template <typename DisplayKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator>>::type
       getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename DisplayKHRAllocator                                                                 = std::allocator<VULKAN_HPP_NAMESPACE::DisplayKHR>,
-              typename Dispatch                                                                            = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B1                                                                                  = DisplayKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayKHR>::value, int>::type = 0>
+    template <typename DisplayKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayKHR>,
+              typename Dispatch            = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1                  = DisplayKHRAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator>>::type getDisplayPlaneSupportedDisplaysKHR(
       uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -13162,7 +14545,7 @@
     template <typename DisplayModePropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>,
               typename Dispatch                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                = DisplayModePropertiesKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayModePropertiesKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type
       getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR    display,
                                    DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,
@@ -13259,30 +14642,29 @@
     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile,
                                                          VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR *      pCapabilities,
                                                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>::type
       getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile,
                                Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<StructureChain<X, Y, Z...>>::type
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
       getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile,
                                Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
                                                              uint32_t *                                                     pVideoFormatPropertyCount,
                                                              VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR *               pVideoFormatProperties,
                                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename VideoFormatPropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>,
               typename Dispatch                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
@@ -13291,13 +14673,12 @@
     template <typename VideoFormatPropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>,
               typename Dispatch                          = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                = VideoFormatPropertiesKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, VideoFormatPropertiesKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
       getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,
                                    VideoFormatPropertiesKHRAllocator &                            videoFormatPropertiesKHRAllocator,
                                    Dispatch const & d                                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
-#endif   /*VK_ENABLE_BETA_EXTENSIONS*/
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     //=== VK_NV_external_memory_capabilities ===
 
@@ -13330,9 +14711,10 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
-      getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -13341,9 +14723,10 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
-      getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -13355,7 +14738,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2
       getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13369,7 +14752,7 @@
       getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
                                     Dispatch const & d                                           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<StructureChain<X, Y, Z...>>::type
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
       getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
                                     Dispatch const & d                                           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -13386,7 +14769,7 @@
     template <typename QueueFamilyProperties2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>,
               typename Dispatch                        = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                              = QueueFamilyProperties2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, QueueFamilyProperties2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
                          getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,
                                                        Dispatch const & d                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13394,7 +14777,7 @@
               typename StructureChainAllocator = std::allocator<StructureChain>,
               typename Dispatch                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator>
-      getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+                         getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename StructureChain,
               typename StructureChainAllocator                                                                 = std::allocator<StructureChain>,
               typename Dispatch                                                                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
@@ -13410,9 +14793,9 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
-      getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+                         getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                          getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
@@ -13430,7 +14813,7 @@
     template <typename SparseImageFormatProperties2Allocator = std::allocator<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>,
               typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                    = SparseImageFormatProperties2Allocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SparseImageFormatProperties2>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
                          getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
                                                              SparseImageFormatProperties2Allocator &                            sparseImageFormatProperties2Allocator,
@@ -13550,8 +14933,8 @@
               typename Dispatch                                  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                        = PerformanceCounterKHRAllocator,
               typename B2                                        = PerformanceCounterDescriptionKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PerformanceCounterKHR>::value &&
-                                        std::is_same<typename B2::value_type, PerformanceCounterDescriptionKHR>::value,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>::value &&
+                                        std::is_same<typename B2::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>::value,
                                       int>::type                 = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
@@ -13585,7 +14968,7 @@
       getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                                   Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<StructureChain<X, Y, Z...>>::type
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
       getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                                   Dispatch const & d                                          VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -13604,7 +14987,7 @@
     template <typename SurfaceFormat2KHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>,
               typename Dispatch                   = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                         = SurfaceFormat2KHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, SurfaceFormat2KHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type
       getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                              SurfaceFormat2KHRAllocator &                                surfaceFormat2KHRAllocator,
@@ -13640,7 +15023,7 @@
     template <typename DisplayProperties2KHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>,
               typename Dispatch                       = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                             = DisplayProperties2KHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayProperties2KHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type
       getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator,
                                 Dispatch const & d               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13658,7 +15041,7 @@
     template <typename DisplayPlaneProperties2KHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>,
               typename Dispatch                            = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                  = DisplayPlaneProperties2KHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayPlaneProperties2KHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type
       getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator,
                                      Dispatch const & d                    VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13677,7 +15060,7 @@
     template <typename DisplayModeProperties2KHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>,
               typename Dispatch                           = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                 = DisplayModeProperties2KHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, DisplayModeProperties2KHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type
       getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR     display,
                                     DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,
@@ -13712,18 +15095,18 @@
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsEXT( uint32_t *                            pTimeDomainCount,
-                                                                VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,
+                                                                VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
                                                                 Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
-    template <typename TimeDomainEXTAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
-    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator>>::type
+    template <typename TimeDomainKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
       getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-    template <typename TimeDomainEXTAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainEXT>,
+    template <typename TimeDomainKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainKHR>,
               typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
-              typename B1                     = TimeDomainEXTAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, TimeDomainEXT>::value, int>::type = 0>
-    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT, TimeDomainEXTAllocator>>::type
-      getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+              typename B1                     = TimeDomainKHRAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+      getCalibrateableTimeDomainsEXT( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
     //=== VK_KHR_fragment_shading_rate ===
@@ -13741,7 +15124,7 @@
     template <typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>,
               typename Dispatch                                      = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                            = PhysicalDeviceFragmentShadingRateKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type
       getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,
@@ -13762,7 +15145,7 @@
     template <typename PhysicalDeviceToolPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>,
               typename Dispatch                              = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                    = PhysicalDeviceToolPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceToolProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
       getToolPropertiesEXT( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,
                             Dispatch const & d                      VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
@@ -13783,7 +15166,7 @@
     template <typename CooperativeMatrixPropertiesNVAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>,
               typename Dispatch                               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                     = CooperativeMatrixPropertiesNVAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, CooperativeMatrixPropertiesNV>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type
       getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,
@@ -13806,7 +15189,7 @@
     template <typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>,
               typename Dispatch                                      = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                            = FramebufferMixedSamplesCombinationNVAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type
       getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator,
@@ -13829,7 +15212,7 @@
     template <typename PresentModeKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PresentModeKHR>,
               typename Dispatch                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                      = PresentModeKHRAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PresentModeKHR>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
       getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
                                   PresentModeKHRAllocator &                                   presentModeKHRAllocator,
@@ -13866,6 +15249,24 @@
 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_video_encode_queue ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result
+      getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
+                                               VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR *               pQualityLevelProperties,
+                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>::type
+      getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
+                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
+      getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
+                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
     //=== VK_NV_acquire_winrt_display ===
 
@@ -13942,7 +15343,7 @@
     template <typename OpticalFlowImageFormatPropertiesNVAllocator = std::allocator<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>,
               typename Dispatch                                    = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                          = OpticalFlowImageFormatPropertiesNVAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, OpticalFlowImageFormatPropertiesNV>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator>>::type
       getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,
@@ -13950,6 +15351,46 @@
                                     Dispatch const & d                                         VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_KHR_cooperative_matrix ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getCooperativeMatrixPropertiesKHR( uint32_t *                                             pPropertyCount,
+                                                                   VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR * pProperties,
+                                                                   Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename CooperativeMatrixPropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>,
+              typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD
+      typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
+      getCooperativeMatrixPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename CooperativeMatrixPropertiesKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>,
+              typename Dispatch                                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1                                      = CooperativeMatrixPropertiesKHRAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD
+      typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
+      getCooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHRAllocator & cooperativeMatrixPropertiesKHRAllocator,
+                                         Dispatch const & d                        VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    //=== VK_KHR_calibrated_timestamps ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsKHR( uint32_t *                            pTimeDomainCount,
+                                                                VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
+                                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename TimeDomainKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+      getCalibrateableTimeDomainsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+    template <typename TimeDomainKHRAllocator = std::allocator<VULKAN_HPP_NAMESPACE::TimeDomainKHR>,
+              typename Dispatch               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
+              typename B1                     = TimeDomainKHRAllocator,
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type = 0>
+    VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
+      getCalibrateableTimeDomainsKHR( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
     {
       return m_physicalDevice;
@@ -13987,31 +15428,6 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
-#ifndef VULKAN_HPP_NO_SMART_HANDLE
-  class Instance;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Instance, Dispatch>;
-  };
-  using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Instance, Dispatch>;
-  };
-  using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-  template <typename Dispatch>
-  class UniqueHandleTraits<SurfaceKHR, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<Instance, Dispatch>;
-  };
-  using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-
   class Instance
   {
   public:
@@ -14024,7 +15440,9 @@
 
   public:
     VULKAN_HPP_CONSTEXPR Instance() = default;
+
     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
     Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT : m_instance( instance ) {}
 
     Instance & operator=( VkInstance instance ) VULKAN_HPP_NOEXCEPT
@@ -14080,7 +15498,7 @@
     template <typename PhysicalDeviceAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDevice>,
               typename Dispatch                = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                      = PhysicalDeviceAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDevice>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDevice>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator>>::type
       enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -14107,7 +15525,7 @@
     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>,
               typename Dispatch                               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                     = PhysicalDeviceGroupPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
       enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,
@@ -14326,7 +15744,7 @@
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
-                                VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,
+                                VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
                                 uint64_t                                       object,
                                 size_t                                         location,
                                 int32_t                                        messageCode,
@@ -14336,7 +15754,7 @@
 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
     void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
-                                VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,
+                                VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
                                 uint64_t                                       object,
                                 size_t                                         location,
                                 int32_t                                        messageCode,
@@ -14408,7 +15826,7 @@
     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>,
               typename Dispatch                               = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
               typename B1                                     = PhysicalDeviceGroupPropertiesAllocator,
-              typename std::enable_if<std::is_same<typename B1::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
+              typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value, int>::type = 0>
     VULKAN_HPP_NODISCARD
       typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
       enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,
@@ -14677,16 +16095,6 @@
 
   //=== VK_VERSION_1_0 ===
 
-#ifndef VULKAN_HPP_NO_SMART_HANDLE
-  template <typename Dispatch>
-  class UniqueHandleTraits<Instance, Dispatch>
-  {
-  public:
-    using deleter = ObjectDestroy<NoParent, Dispatch>;
-  };
-  using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
-#endif /*VULKAN_HPP_NO_SMART_HANDLE*/
-
   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
   VULKAN_HPP_NODISCARD Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo *  pCreateInfo,
                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
@@ -14721,7 +16129,7 @@
   template <typename ExtensionPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::ExtensionProperties>,
             typename Dispatch                     = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
             typename B1                           = ExtensionPropertiesAllocator,
-            typename std::enable_if<std::is_same<typename B1::value_type, ExtensionProperties>::value, int>::type = 0>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type = 0>
   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
     enumerateInstanceExtensionProperties( Optional<const std::string>    layerName,
                                           ExtensionPropertiesAllocator & extensionPropertiesAllocator,
@@ -14739,7 +16147,7 @@
   template <typename LayerPropertiesAllocator = std::allocator<VULKAN_HPP_NAMESPACE::LayerProperties>,
             typename Dispatch                 = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE,
             typename B1                       = LayerPropertiesAllocator,
-            typename std::enable_if<std::is_same<typename B1::value_type, LayerProperties>::value, int>::type = 0>
+            typename std::enable_if<std::is_same<typename B1::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type = 0>
   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
     enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -14755,4 +16163,29 @@
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
 }  // namespace VULKAN_HPP_NAMESPACE
+
+// operators to compare vk::-handles with nullptr
+template <typename T>
+typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, bool>::type operator==( const T & v, std::nullptr_t )
+{
+  return !v;
+}
+
+template <typename T>
+typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, bool>::type operator==( std::nullptr_t, const T & v )
+{
+  return !v;
+}
+
+template <typename T>
+typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, bool>::type operator!=( const T & v, std::nullptr_t )
+{
+  return v;
+}
+
+template <typename T>
+typename std::enable_if<VULKAN_HPP_NAMESPACE::isVulkanHandleType<T>::value, bool>::type operator!=( std::nullptr_t, const T & v )
+{
+  return v;
+}
 #endif
diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp
index 2c39f22..fd846f5 100644
--- a/include/vulkan/vulkan_hash.hpp
+++ b/include/vulkan/vulkan_hash.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -340,7 +340,6 @@
     }
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
 
   template <>
@@ -360,7 +359,6 @@
       return std::hash<VkVideoSessionParametersKHR>{}( static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
     }
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NVX_binary_import ===
 
@@ -459,6 +457,28 @@
     }
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CudaModuleNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaModuleNV const & cudaModuleNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      return std::hash<VkCudaModuleNV>{}( static_cast<VkCudaModuleNV>( cudaModuleNV ) );
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CudaFunctionNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaFunctionNV const & cudaFunctionNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      return std::hash<VkCudaFunctionNV>{}( static_cast<VkCudaFunctionNV>( cudaFunctionNV ) );
+    }
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #if defined( VK_USE_PLATFORM_FUCHSIA )
   //=== VK_FUCHSIA_buffer_collection ===
 
@@ -494,6 +514,17 @@
     }
   };
 
+  //=== VK_EXT_shader_object ===
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ShaderEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderEXT const & shaderEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      return std::hash<VkShaderEXT>{}( static_cast<VkShaderEXT>( shaderEXT ) );
+    }
+  };
+
 #if 14 <= VULKAN_HPP_CPP_VERSION
   //======================================
   //=== HASH structures for structures ===
@@ -968,6 +999,23 @@
 
 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const & androidHardwareBufferFormatResolvePropertiesANDROID ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.colorAttachmentFormat );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>
   {
     std::size_t
@@ -1270,6 +1318,41 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT const & bindDescriptorBufferEmbeddedSamplersInfoEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.set );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR const & bindDescriptorSetsInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.firstSet );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.descriptorSetCount );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pDescriptorSets );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.dynamicOffsetCount );
+      VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pDynamicOffsets );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::Offset2D>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::Offset2D const & offset2D ) const VULKAN_HPP_NOEXCEPT
@@ -1365,6 +1448,30 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR const & bindMemoryStatusKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.pResult );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV const & bindPipelineIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindPipelineIndirectCommandNV.pipelineAddress );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const & bindShaderGroupIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
@@ -1519,7 +1626,6 @@
     }
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR>
   {
@@ -1535,7 +1641,19 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const & blitImageCubicWeightsInfoQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.cubicWeights );
+      return seed;
+    }
+  };
 
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers>
@@ -1904,6 +2022,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR const & bufferUsageFlags2CreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.usage );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & bufferViewCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -1921,14 +2052,14 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const & calibratedTimestampInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR const & calibratedTimestampInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.timeDomain );
+      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.timeDomain );
       return seed;
     }
   };
@@ -2267,6 +2398,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV const & computePipelineIndirectBufferInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.deviceAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.size );
+      VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.pipelineDeviceAddressCaptureReplay );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const & conditionalRenderingBeginInfoEXT ) const VULKAN_HPP_NOEXCEPT
@@ -2296,6 +2442,27 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR const & cooperativeMatrixPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.MSize );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.NSize );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.KSize );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.AType );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.BType );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.CType );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.ResultType );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.saturatingAccumulation );
+      VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.scope );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const & cooperativeMatrixPropertiesNV ) const VULKAN_HPP_NOEXCEPT
@@ -2448,6 +2615,60 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT const & copyImageToImageInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.srcImage );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.srcImageLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.dstImage );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.dstImageLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.regionCount );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.pRegions );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT const & imageToMemoryCopyEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.pHostPointer );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.memoryRowLength );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.memoryImageHeight );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageSubresource );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageExtent );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT const & copyImageToMemoryInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.srcImage );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.srcImageLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.regionCount );
+      VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.pRegions );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV const & copyMemoryIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
@@ -2477,6 +2698,41 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT const & memoryToImageCopyEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.pHostPointer );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.memoryRowLength );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.memoryImageHeight );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageSubresource );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageExtent );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT const & copyMemoryToImageInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.dstImage );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.dstImageLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.regionCount );
+      VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.pRegions );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT const & copyMicromapInfoEXT ) const VULKAN_HPP_NOEXCEPT
@@ -2546,6 +2802,67 @@
     }
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & cudaFunctionCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.module );
+      for ( const char * p = cudaFunctionCreateInfoNV.pName; *p != '\0'; ++p )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, *p );
+      }
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV const & cudaLaunchInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.function );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimX );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimY );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimZ );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimX );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimY );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimZ );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.sharedMemBytes );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.paramCount );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pParams );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.extraCount );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pExtras );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & cudaModuleCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.dataSize );
+      VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.pData );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR>
@@ -2864,6 +3181,35 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT const & depthBiasInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasConstantFactor );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasClamp );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasSlopeFactor );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT const & depthBiasRepresentationInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.depthBiasRepresentation );
+      VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.depthBiasExact );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT const & descriptorAddressInfoEXT ) const VULKAN_HPP_NOEXCEPT
@@ -3407,6 +3753,8 @@
       VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.applicationNameOffset );
       VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.applicationVersion );
       VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.engineNameOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.engineVersion );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.apiVersion );
       return seed;
     }
   };
@@ -3570,6 +3918,33 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource2KHR const & imageSubresource2KHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.imageSubresource );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR const & deviceImageSubresourceInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pCreateInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pSubresource );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const & deviceMemoryOpaqueCaptureAddressInfo ) const VULKAN_HPP_NOEXCEPT
@@ -3658,6 +4033,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM const & deviceQueueShaderCoreControlCreateInfoARM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.shaderCoreCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG const & directDriverLoadingInfoLUNARG ) const VULKAN_HPP_NOEXCEPT
@@ -4068,6 +4457,57 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & pipelineLibraryCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.libraryCount );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pLibraries );
+      return seed;
+    }
+  };
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & executionGraphPipelineCreateInfoAMDX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.stageCount );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pStages );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pLibraryInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.basePipelineHandle );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.basePipelineIndex );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX const & executionGraphPipelineScratchSizeAMDX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.size );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const & exportFenceCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -4385,6 +4825,21 @@
   };
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ExternalFormatQNX>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFormatQNX const & externalFormatQNX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.externalFormat );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties>
   {
@@ -4428,6 +4883,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const & externalMemoryAcquireUnmodifiedEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.acquireUnmodifiedMemory );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const & externalMemoryBufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -4595,6 +5063,27 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const & frameBoundaryEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.frameID );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.imageCount );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pImages );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.bufferCount );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pBuffers );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagName );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagSize );
+      VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pTag );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const & framebufferAttachmentImageInfo ) const VULKAN_HPP_NOEXCEPT
@@ -4717,6 +5206,46 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const & latencyTimingsFrameReportNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentID );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.inputSampleTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simEndTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitEndTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentEndTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverEndTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueEndTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderStartTimeUs );
+      VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderEndTimeUs );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const & getLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.timingCount );
+      VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const & vertexInputBindingDescription ) const VULKAN_HPP_NOEXCEPT
@@ -5061,6 +5590,37 @@
     }
   };
 
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT const & hostImageCopyDevicePerformanceQueryEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.optimalDeviceAccess );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.identicalMemoryLayout );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT const & hostImageLayoutTransitionInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.image );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.oldLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.newLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.subresourceRange );
+      return seed;
+    }
+  };
+
 #  if defined( VK_USE_PLATFORM_IOS_MVK )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK>
@@ -5399,19 +5959,6 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource2EXT const & imageSubresource2EXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.imageSubresource );
-      return seed;
-    }
-  };
-
-  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const & imageSwapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
@@ -5527,6 +6074,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT const & imageViewSlicedCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sliceOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sliceCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const & imageViewUsageCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -5744,6 +6305,21 @@
   };
 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
 
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX const & importScreenBufferInfoQNX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.buffer );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR>
   {
@@ -5898,6 +6474,62 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const & latencySleepInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.signalSemaphore );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.value );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const & latencySleepModeInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyMode );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyBoost );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.minimumIntervalUs );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const & latencySubmissionPresentIdNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.presentID );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const & latencySurfaceCapabilitiesNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.presentModeCount );
+      VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pPresentModes );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::LayerProperties>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerProperties const & layerProperties ) const VULKAN_HPP_NOEXCEPT
@@ -5917,6 +6549,41 @@
     }
   };
 
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LayerSettingEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerSettingEXT const & layerSettingEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      for ( const char * p = layerSettingEXT.pLayerName; *p != '\0'; ++p )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, *p );
+      }
+      for ( const char * p = layerSettingEXT.pSettingName; *p != '\0'; ++p )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, *p );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.type );
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.valueCount );
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.pValues );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT const & layerSettingsCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.settingCount );
+      VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.pSettings );
+      return seed;
+    }
+  };
+
 #  if defined( VK_USE_PLATFORM_MACOS_MVK )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK>
@@ -6133,6 +6800,22 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR const & memoryMapInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.memory );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.offset );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.size );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo>
   {
     std::size_t
@@ -6197,6 +6880,20 @@
     }
   };
 
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR const & memoryUnmapInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.memory );
+      return seed;
+    }
+  };
+
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>
@@ -6370,6 +7067,22 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & multiviewPerViewRenderAreasRenderPassBeginInfoQCOM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.perViewRenderAreaCount );
+      VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.pPerViewRenderAreas );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT const & mutableDescriptorTypeListEXT ) const VULKAN_HPP_NOEXCEPT
@@ -6488,6 +7201,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const & outOfBandQueueTypeInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.queueType );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const & pastPresentationTimingGOOGLE ) const VULKAN_HPP_NOEXCEPT
@@ -6740,6 +7466,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &
+                              physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.attachmentFeedbackLoopDynamicState );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &
@@ -6834,6 +7574,60 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & physicalDeviceClusterCullingShaderFeaturesHUAWEI )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.clustercullingShader );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.multiviewClusterCullingShader );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & physicalDeviceClusterCullingShaderPropertiesHUAWEI ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.pNext );
+      for ( size_t i = 0; i < 3; ++i )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxWorkGroupCount[i] );
+      }
+      for ( size_t i = 0; i < 3; ++i )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxWorkGroupSize[i] );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxOutputClusterCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.indirectBufferOffsetAlignment );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.clusterShadingRate );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD>
   {
     std::size_t
@@ -6914,6 +7708,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR const & physicalDeviceCooperativeMatrixFeaturesKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.cooperativeMatrix );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.cooperativeMatrixRobustBufferAccess );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV>
   {
     std::size_t
@@ -6929,6 +7738,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR const & physicalDeviceCooperativeMatrixPropertiesKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.cooperativeMatrixSupportedStages );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const & physicalDeviceCooperativeMatrixPropertiesNV ) const
@@ -6999,6 +7822,66 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const & physicalDeviceCubicClampFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.cubicRangeClamp );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const & physicalDeviceCubicWeightsFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.selectableCubicWeights );
+      return seed;
+    }
+  };
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV const & physicalDeviceCudaKernelLaunchFeaturesNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.cudaKernelLaunchFeatures );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV const & physicalDeviceCudaKernelLaunchPropertiesNV ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.computeCapabilityMinor );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.computeCapabilityMajor );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const & physicalDeviceCustomBorderColorFeaturesEXT ) const
@@ -7042,6 +7925,23 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT const & physicalDeviceDepthBiasControlFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.depthBiasControl );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.leastRepresentableValueForceUnormRepresentation );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.floatRepresentation );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.depthBiasExact );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const & physicalDeviceDepthClampZeroOneFeaturesEXT ) const
@@ -7247,6 +8147,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &
+                              physicalDeviceDescriptorPoolOverallocationFeaturesNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.descriptorPoolOverallocation );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
   {
     std::size_t
@@ -7262,6 +8176,22 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const &
+                              physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedCompute );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedComputePipelines );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedComputeCaptureReplay );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
   {
     std::size_t operator()(
@@ -7339,6 +8269,38 @@
     }
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV const & physicalDeviceDisplacementMicromapFeaturesNV ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.displacementMicromap );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV const & physicalDeviceDisplacementMicromapPropertiesNV ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.maxDisplacementMicromapSubdivisionLevel );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties>
   {
@@ -7394,6 +8356,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const &
+                              physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.dynamicRenderingUnusedAttachments );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV>
   {
     std::size_t
@@ -7496,6 +8472,37 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & physicalDeviceExtendedSparseAddressSpaceFeaturesNV ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.extendedSparseAddressSpace );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &
+                              physicalDeviceExtendedSparseAddressSpacePropertiesNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseAddressSpaceSize );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseImageUsageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseBufferUsageFlags );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const & physicalDeviceExternalBufferInfo ) const VULKAN_HPP_NOEXCEPT
@@ -7523,6 +8530,41 @@
     }
   };
 
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const & physicalDeviceExternalFormatResolveFeaturesANDROID ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.externalFormatResolve );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const &
+                              physicalDeviceExternalFormatResolvePropertiesANDROID ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.nullColorAttachmentWithExternalFormatResolve );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetX );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetY );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo>
   {
@@ -7565,6 +8607,23 @@
     }
   };
 
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & physicalDeviceExternalMemoryScreenBufferFeaturesQNX ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.screenBufferImport );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo>
   {
@@ -7864,6 +8923,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const & physicalDeviceFrameBoundaryFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.frameBoundary );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & physicalDeviceGlobalPriorityQueryFeaturesKHR ) const
@@ -7926,6 +8999,42 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT const & physicalDeviceHostImageCopyFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.hostImageCopy );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT const & physicalDeviceHostImageCopyPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.copySrcLayoutCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pCopySrcLayouts );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.copyDstLayoutCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pCopyDstLayouts );
+      for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.optimalTilingLayoutUUID[i] );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.identicalMemoryTypeRequirements );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const & physicalDeviceHostQueryResetFeatures ) const VULKAN_HPP_NOEXCEPT
@@ -8042,6 +9151,34 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const & physicalDeviceImageProcessing2FeaturesQCOM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.textureBlockMatch2 );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const & physicalDeviceImageProcessing2PropertiesQCOM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.maxBlockMatchWindow );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM>
   {
     std::size_t
@@ -8089,6 +9226,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & physicalDeviceImageSlicedViewOf3DFeaturesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.imageSlicedViewOf3D );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT>
   {
     std::size_t
@@ -8206,6 +9357,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const & physicalDeviceLayeredDriverPropertiesMSFT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.underlyingAPI );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT>
   {
     std::size_t
@@ -8441,6 +9606,69 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR const & physicalDeviceMaintenance5FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.maintenance5 );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR const & physicalDeviceMaintenance5PropertiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.earlyFragmentMultisampleCoverageAfterSampleCounting );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.earlyFragmentSampleMaskTestBeforeSampleCounting );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.depthStencilSwizzleOneSupport );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.polygonModePointSize );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.nonStrictSinglePixelWideLinesUseParallelogram );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.nonStrictWideLinesUseParallelogram );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR const & physicalDeviceMaintenance6FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.maintenance6 );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR const & physicalDeviceMaintenance6PropertiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.blockTexelViewCompatibleMultipleLayers );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.maxCombinedImageSamplerDescriptorCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.fragmentShadingRateClampCombinerInputs );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT>
   {
     std::size_t
@@ -8722,6 +9950,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const &
+                              physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.multiviewPerViewRenderAreas );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>
   {
     std::size_t
@@ -8765,6 +10007,36 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const & physicalDeviceNestedCommandBufferFeaturesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBuffer );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferRendering );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferSimultaneousUse );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const & physicalDeviceNestedCommandBufferPropertiesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.maxCommandBufferNestingLevel );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & physicalDeviceNonSeamlessCubeMapFeaturesEXT ) const
@@ -8879,6 +10151,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV const & physicalDevicePerStageDescriptorSetFeaturesNV ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.perStageDescriptorSet );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.dynamicPipelineLayout );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR>
   {
     std::size_t
@@ -8937,6 +10224,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const &
+                              physicalDevicePipelineLibraryGroupHandlesFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.pipelineLibraryGroupHandles );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const & physicalDevicePipelinePropertiesFeaturesEXT ) const
@@ -9406,6 +10707,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & physicalDeviceRayTracingPositionFetchFeaturesKHR )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.rayTracingPositionFetch );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const & physicalDeviceRayTracingPropertiesNV ) const VULKAN_HPP_NOEXCEPT
@@ -9426,6 +10741,49 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & physicalDeviceRelaxedLineRasterizationFeaturesIMG )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.relaxedLineRasterization );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM const & physicalDeviceRenderPassStripedFeaturesARM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.renderPassStriped );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM const & physicalDeviceRenderPassStripedPropertiesARM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.renderPassStripeGranularity );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.maxRenderPassStripes );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV>
   {
     std::size_t
@@ -9535,6 +10893,34 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM const & physicalDeviceSchedulingControlsFeaturesARM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.schedulingControls );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM const & physicalDeviceSchedulingControlsPropertiesARM ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.schedulingControlsFlags );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & physicalDeviceSeparateDepthStencilLayoutsFeatures )
@@ -9700,6 +11086,22 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM const & physicalDeviceShaderCorePropertiesARM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.pixelRate );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.texelRate );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.fmaRate );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const &
@@ -9741,6 +11143,42 @@
     }
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX const & physicalDeviceShaderEnqueueFeaturesAMDX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.shaderEnqueue );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX const & physicalDeviceShaderEnqueuePropertiesAMDX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphDepth );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderOutputNodes );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderPayloadSize );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderPayloadCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.executionGraphDispatchAddressAlignment );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features>
   {
@@ -9890,6 +11328,38 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT const & physicalDeviceShaderObjectFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.shaderObject );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT const & physicalDeviceShaderObjectPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.pNext );
+      for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.shaderBinaryUUID[i] );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.shaderBinaryVersion );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV>
   {
     std::size_t
@@ -9961,6 +11431,38 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT const & physicalDeviceShaderTileImageFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageColorReadAccess );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageDepthReadAccess );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageStencilReadAccess );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT const & physicalDeviceShaderTileImagePropertiesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageCoherentReadAccelerated );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageReadSampleFromPixelRateInvocation );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageReadFromHelperInvocation );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV>
   {
     std::size_t
@@ -10323,16 +11825,16 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR>
   {
     std::size_t operator()(
-      VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & physicalDeviceVertexAttributeDivisorFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+      VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & physicalDeviceVertexAttributeDivisorFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.vertexAttributeInstanceRateDivisor );
-      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.vertexAttributeInstanceRateZeroDivisor );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.vertexAttributeInstanceRateDivisor );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.vertexAttributeInstanceRateZeroDivisor );
       return seed;
     }
   };
@@ -10352,6 +11854,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & physicalDeviceVertexAttributeDivisorPropertiesKHR )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.maxVertexAttribDivisor );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.supportsNonZeroFirstInstance );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & physicalDeviceVertexInputDynamicStateFeaturesEXT )
@@ -10365,7 +11882,37 @@
     }
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const & videoProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.videoCodecOperation );
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaSubsampling );
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.lumaBitDepth );
+      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaBitDepth );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & physicalDeviceVideoEncodeQualityLevelInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.pVideoProfile );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.qualityLevel );
+      return seed;
+    }
+  };
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR>
   {
@@ -10378,7 +11925,20 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR const & physicalDeviceVideoMaintenance1FeaturesKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.videoMaintenance1 );
+      return seed;
+    }
+  };
 
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features>
@@ -10701,6 +12261,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const & physicalDeviceYcbcrDegammaFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.ycbcrDegamma );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT>
   {
     std::size_t
@@ -10855,6 +12429,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR const & pipelineCreateFlags2CreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.flags );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const & pipelineCreationFeedback ) const VULKAN_HPP_NOEXCEPT
@@ -10996,6 +12583,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV const & pipelineIndirectDeviceAddressInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pipelineBindPoint );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pipeline );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelineInfoKHR>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineInfoKHR const & pipelineInfoKHR ) const VULKAN_HPP_NOEXCEPT
@@ -11039,20 +12640,6 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & pipelineLibraryCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.libraryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pLibraries );
-      return seed;
-    }
-  };
-
-  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const & pipelinePropertiesIdentifierEXT ) const VULKAN_HPP_NOEXCEPT
@@ -11238,6 +12825,26 @@
     }
   };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX const & pipelineShaderStageNodeCreateInfoAMDX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.pNext );
+      for ( const char * p = pipelineShaderStageNodeCreateInfoAMDX.pName; *p != '\0'; ++p )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, *p );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.index );
+      return seed;
+    }
+  };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo>
   {
@@ -11267,29 +12874,29 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR>
   {
     std::size_t
-      operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const & vertexInputBindingDivisorDescriptionEXT ) const VULKAN_HPP_NOEXCEPT
+      operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR const & vertexInputBindingDivisorDescriptionKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionEXT.binding );
-      VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionEXT.divisor );
+      VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionKHR.binding );
+      VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionKHR.divisor );
       return seed;
     }
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const & pipelineVertexInputDivisorStateCreateInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR const & pipelineVertexInputDivisorStateCreateInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.vertexBindingDivisorCount );
-      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.pVertexBindingDivisors );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.vertexBindingDivisorCount );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.pVertexBindingDivisors );
       return seed;
     }
   };
@@ -11565,6 +13172,89 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR const & pushConstantsInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.offset );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.size );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.pValues );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSet>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSet const & writeDescriptorSet ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstSet );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstBinding );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstArrayElement );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorCount );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorType );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pImageInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pBufferInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pTexelBufferView );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR const & pushDescriptorSetInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.set );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.descriptorWriteCount );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.pDescriptorWrites );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR const & pushDescriptorSetWithTemplateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.descriptorUpdateTemplate );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.set );
+      VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.pData );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV const & queryLowLatencySupportNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.pQueriedLowLatencyData );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & queryPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -11610,6 +13300,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR const & queryPoolVideoEncodeFeedbackCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.encodeFeedbackFlags );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const & queueFamilyCheckpointProperties2NV ) const VULKAN_HPP_NOEXCEPT
@@ -11680,7 +13384,6 @@
     }
   };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR>
   {
@@ -11694,9 +13397,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR>
   {
@@ -11709,7 +13410,6 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>
@@ -12098,6 +13798,63 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM const & renderPassStripeInfoARM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.stripeArea );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM const & renderPassStripeBeginInfoARM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.stripeInfoCount );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.pStripeInfos );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const & semaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.semaphore );
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.value );
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.stageMask );
+      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.deviceIndex );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM const & renderPassStripeSubmitInfoARM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.stripeSemaphoreInfoCount );
+      VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.pStripeSemaphoreInfos );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const & renderPassSubpassFeedbackInfoEXT ) const VULKAN_HPP_NOEXCEPT
@@ -12141,6 +13898,23 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR const & renderingAreaInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.viewMask );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.colorAttachmentCount );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.pColorAttachmentFormats );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.depthAttachmentFormat );
+      VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.stencilAttachmentFormat );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const & renderingFragmentDensityMapAttachmentInfoEXT ) const
@@ -12210,6 +13984,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const & samplerBlockMatchWindowCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowExtent );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowCompareMode );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT>
   {
     std::size_t operator()(
@@ -12266,6 +14055,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const & samplerCubicWeightsCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.cubicWeights );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const & samplerReductionModeCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -12325,6 +14127,60 @@
     }
   };
 
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableYDegamma );
+      VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableCbCrDegamma );
+      return seed;
+    }
+  };
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX const & screenBufferFormatPropertiesQNX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.format );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.externalFormat );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.screenUsage );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.formatFeatures );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.samplerYcbcrConversionComponents );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYcbcrModel );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYcbcrRange );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedXChromaOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYChromaOffset );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX const & screenBufferPropertiesQNX ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.allocationSize );
+      VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.memoryTypeBits );
+      return seed;
+    }
+  };
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX>
@@ -12416,22 +14272,6 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const & semaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.semaphore );
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.value );
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.stageMask );
-      VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.deviceIndex );
-      return seed;
-    }
-  };
-
-  template <>
   struct hash<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const & semaphoreTypeCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -12462,6 +14302,38 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT const & setDescriptorBufferOffsetsInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.layout );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.firstSet );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.setCount );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pBufferIndices );
+      VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pOffsets );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const & setLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.presentID );
+      VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.marker );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const & setStateFlagsIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
@@ -12473,6 +14345,33 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & shaderCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.stage );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.nextStage );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.codeType );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.codeSize );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pCode );
+      for ( const char * p = shaderCreateInfoEXT.pName; *p != '\0'; ++p )
+      {
+        VULKAN_HPP_HASH_COMBINE( seed, *p );
+      }
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.setLayoutCount );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pSetLayouts );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pushConstantRangeCount );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pPushConstantRanges );
+      VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pSpecializationInfo );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & shaderModuleCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -12772,14 +14671,27 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>
+  struct hash<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT const & subresourceLayout2EXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT const & subresourceHostMemcpySizeEXT ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.subresourceLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.size );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR const & subresourceLayout2KHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.subresourceLayout );
       return seed;
     }
   };
@@ -13038,6 +14950,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const & swapchainLatencyCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.latencyModeEnable );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV const & swapchainPresentBarrierCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
@@ -13281,7 +15206,6 @@
   };
 #  endif /*VK_USE_PLATFORM_VI_NN*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR>
   {
@@ -13297,9 +15221,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR>
   {
@@ -13313,9 +15235,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR>
   {
@@ -13332,9 +15252,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>
   {
@@ -13355,9 +15273,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR>
   {
@@ -13370,9 +15286,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR>
   {
@@ -13385,212 +15299,186 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT const & videoDecodeH264CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR const & videoDecodeH264CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.maxLevelIdc );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.fieldOffsetGranularity );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.maxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.fieldOffsetGranularity );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT const & videoDecodeH264DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR const & videoDecodeH264DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.pStdReferenceInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.pStdReferenceInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT const & videoDecodeH264PictureInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR const & videoDecodeH264PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pStdPictureInfo );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.sliceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pSliceOffsets );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pStdPictureInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.sliceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pSliceOffsets );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT const & videoDecodeH264ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR const & videoDecodeH264ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.stdProfileIdc );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.pictureLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.stdProfileIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.pictureLayout );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT const & videoDecodeH264SessionParametersAddInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR const & videoDecodeH264SessionParametersAddInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.stdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pStdSPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.stdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pStdPPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.stdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pStdSPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.stdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pStdPPSs );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT const & videoDecodeH264SessionParametersCreateInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR const & videoDecodeH264SessionParametersCreateInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.maxStdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.maxStdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.pParametersAddInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.maxStdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.maxStdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.pParametersAddInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT const & videoDecodeH265CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR const & videoDecodeH265CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.maxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.maxLevelIdc );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT const & videoDecodeH265DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR const & videoDecodeH265DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.pStdReferenceInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.pStdReferenceInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT const & videoDecodeH265PictureInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR const & videoDecodeH265PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pStdPictureInfo );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.sliceSegmentCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pSliceSegmentOffsets );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pStdPictureInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.sliceSegmentCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pSliceSegmentOffsets );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT const & videoDecodeH265ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR const & videoDecodeH265ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.stdProfileIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.stdProfileIdc );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT const & videoDecodeH265SessionParametersAddInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR const & videoDecodeH265SessionParametersAddInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.stdVPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pStdVPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.stdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pStdSPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.stdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pStdPPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdVPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdVPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdSPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdPPSs );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT const & videoDecodeH265SessionParametersCreateInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR const & videoDecodeH265SessionParametersCreateInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxStdVPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxStdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxStdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.pParametersAddInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdVPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.pParametersAddInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR>
   {
@@ -13610,9 +15498,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR>
   {
@@ -13625,9 +15511,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR>
   {
@@ -13638,508 +15522,545 @@
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.pNext );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.flags );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.rateControlModes );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.rateControlLayerCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.qualityLevelCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.inputImageDataFillAlignment );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxRateControlLayers );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxBitrate );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxQualityLevels );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.encodeInputPictureGranularity );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.supportedEncodeFeedbackFlags );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const & videoEncodeH264CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR const & videoEncodeH264CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.flags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.inputModeFlags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.outputModeFlags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxPPictureL0ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBPictureL0ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxL1ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.motionVectorsOverPicBoundariesFlag );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBytesPerPicDenom );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBitsPerMbDenom );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.log2MaxMvLengthHorizontal );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.log2MaxMvLengthVertical );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxSliceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxPPictureL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxBPictureL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxL1ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxTemporalLayerCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.expectDyadicTemporalLayerPattern );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.minQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.prefersGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.requiresGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.stdSyntaxFlags );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const & videoEncodeH264DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR const & videoEncodeH264DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.slotIndex );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.pStdReferenceInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.pStdReferenceInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT const & videoEncodeH264EmitPictureParametersInfoEXT ) const
-      VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR const & videoEncodeH264FrameSizeKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.spsId );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.emitSpsEnable );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.ppsIdEntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.ppsIdEntries );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.frameISize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.framePSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.frameBSize );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & videoEncodeH264FrameSizeEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.frameISize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.framePSize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.frameBSize );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT const & videoEncodeH264ReferenceListsInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.referenceList0EntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pReferenceList0Entries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.referenceList1EntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pReferenceList1Entries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pMemMgmtCtrlOperations );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const & videoEncodeH264NaluSliceInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.mbCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pReferenceFinalLists );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pSliceHeaderStd );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const & videoEncodeH264ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.stdProfileIdc );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & videoEncodeH264QpEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpI );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpP );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpB );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const & videoEncodeH264RateControlInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.gopFrameCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.idrPeriod );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.consecutiveBFrameCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.rateControlStructure );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.temporalLayerCount );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR>
   {
     std::size_t
-      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const & videoEncodeH264RateControlLayerInfoEXT ) const VULKAN_HPP_NOEXCEPT
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR const & videoEncodeH264GopRemainingFrameInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.temporalLayerId );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useInitialRcQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.initialRcQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMinQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.minQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMaxQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.maxQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMaxFrameSize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.maxFrameSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.useGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingI );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingP );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingB );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const & videoEncodeH264SessionParametersAddInfoEXT ) const
-      VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR const & videoEncodeH264NaluSliceInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.stdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pStdSPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.stdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pStdPPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.constantQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.pStdSliceHeader );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const & videoEncodeH264SessionParametersCreateInfoEXT ) const
-      VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR const & videoEncodeH264PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.maxStdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.maxStdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.pParametersAddInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.naluSliceEntryCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pNaluSliceEntries );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pStdPictureInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.generatePrefixNalu );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT const & videoEncodeH264VclFrameInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR const & videoEncodeH264ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pReferenceFinalLists );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.naluSliceEntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pNaluSliceEntries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pCurrentPictureInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.stdProfileIdc );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const & videoEncodeH265CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const & videoEncodeH264QpKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.flags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.inputModeFlags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.outputModeFlags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.ctbSizes );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.transformBlockSizes );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxPPictureL0ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxBPictureL0ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxL1ReferenceCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxSubLayersCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minLog2MinLumaCodingBlockSizeMinus3 );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxLog2MinLumaCodingBlockSizeMinus3 );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minLog2MinLumaTransformBlockSizeMinus2 );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxLog2MinLumaTransformBlockSizeMinus2 );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxTransformHierarchyDepthInter );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxTransformHierarchyDepthInter );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxTransformHierarchyDepthIntra );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxTransformHierarchyDepthIntra );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxDiffCuQpDeltaDepth );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxNumMergeCand );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxNumMergeCand );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpI );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpP );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpB );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const & videoEncodeH265DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.slotIndex );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.pStdReferenceInfo );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT const & videoEncodeH265EmitPictureParametersInfoEXT ) const
-      VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.vpsId );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.spsId );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.emitVpsEnable );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.emitSpsEnable );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.ppsIdEntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.ppsIdEntries );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & videoEncodeH265FrameSizeEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.frameISize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.framePSize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.frameBSize );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT const & videoEncodeH265ReferenceListsInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.referenceList0EntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceList0Entries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.referenceList1EntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceList1Entries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceModifications );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR>
   {
     std::size_t
-      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const & videoEncodeH265NaluSliceSegmentInfoEXT ) const VULKAN_HPP_NOEXCEPT
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR const & videoEncodeH264QualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.ctbCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pReferenceFinalLists );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pSliceSegmentHeaderStd );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredRateControlFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredGopFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredIdrPeriod );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredConsecutiveBFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredTemporalLayerCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredConstantQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredMaxL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredMaxL1ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredStdEntropyCodingModeFlag );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const & videoEncodeH265ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR const & videoEncodeH264RateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.stdProfileIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.gopFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.idrPeriod );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.consecutiveBFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.temporalLayerCount );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & videoEncodeH265QpEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpI );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpP );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpB );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const & videoEncodeH265RateControlInfoEXT ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.gopFrameCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.idrPeriod );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.consecutiveBFrameCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.rateControlStructure );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.subLayerCount );
-      return seed;
-    }
-  };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-  template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR>
   {
     std::size_t
-      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const & videoEncodeH265RateControlLayerInfoEXT ) const VULKAN_HPP_NOEXCEPT
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR const & videoEncodeH264RateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.temporalId );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useInitialRcQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.initialRcQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMinQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.minQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMaxQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.maxQp );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMaxFrameSize );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.maxFrameSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMinQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.minQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMaxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.maxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMaxFrameSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.maxFrameSize );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const & videoEncodeH265SessionParametersAddInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR const & videoEncodeH264SessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.useMaxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.maxLevelIdc );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR const & videoEncodeH264SessionParametersAddInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.stdVPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pStdVPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.stdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pStdSPSs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.stdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pStdPPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.stdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pStdSPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.stdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pStdPPSs );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const & videoEncodeH265SessionParametersCreateInfoEXT ) const
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR const & videoEncodeH264SessionParametersCreateInfoKHR ) const
       VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxStdVPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxStdSPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxStdPPSCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.pParametersAddInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.maxStdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.maxStdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.pParametersAddInfo );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT const & videoEncodeH265VclFrameInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()(
+      VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR const & videoEncodeH264SessionParametersFeedbackInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pReferenceFinalLists );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.naluSliceSegmentEntryCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pNaluSliceSegmentEntries );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pCurrentPictureInfo );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.hasStdSPSOverrides );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.hasStdPPSOverrides );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR const & videoEncodeH264SessionParametersGetInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.writeStdSPS );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.writeStdPPS );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.stdSPSId );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.stdPPSId );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR const & videoEncodeH265CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxSliceSegmentCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxTiles );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.ctbSizes );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.transformBlockSizes );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxPPictureL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxBPictureL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxL1ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxSubLayerCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.expectDyadicTemporalSubLayerPattern );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.minQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.prefersGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.requiresGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.stdSyntaxFlags );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR const & videoEncodeH265DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.pStdReferenceInfo );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR const & videoEncodeH265FrameSizeKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.frameISize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.framePSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.frameBSize );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR const & videoEncodeH265GopRemainingFrameInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.useGopRemainingFrames );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingI );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingP );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingB );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR const & videoEncodeH265NaluSliceSegmentInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.constantQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.pStdSliceSegmentHeader );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR const & videoEncodeH265PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.naluSliceSegmentEntryCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pNaluSliceSegmentEntries );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pStdPictureInfo );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR const & videoEncodeH265ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.stdProfileIdc );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const & videoEncodeH265QpKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpI );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpP );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpB );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR const & videoEncodeH265QualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredRateControlFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredGopFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredIdrPeriod );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredConsecutiveBFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredSubLayerCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredConstantQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredMaxL0ReferenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredMaxL1ReferenceCount );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR const & videoEncodeH265RateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.gopFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.idrPeriod );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.consecutiveBFrameCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.subLayerCount );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR const & videoEncodeH265RateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMinQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.minQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMaxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.maxQp );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMaxFrameSize );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.maxFrameSize );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR const & videoEncodeH265SessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.useMaxLevelIdc );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.maxLevelIdc );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR const & videoEncodeH265SessionParametersAddInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdVPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdVPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdSPSs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdPPSs );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR const & videoEncodeH265SessionParametersCreateInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdVPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdSPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdPPSCount );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.pParametersAddInfo );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR>
+  {
+    std::size_t operator()(
+      VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR const & videoEncodeH265SessionParametersFeedbackInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdVPSOverrides );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdSPSOverrides );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdPPSOverrides );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR const & videoEncodeH265SessionParametersGetInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdVPS );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdSPS );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdPPS );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdVPSId );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdSPSId );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdPPSId );
+      return seed;
+    }
+  };
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR>
   {
@@ -14149,10 +16070,9 @@
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.sType );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pNext );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.flags );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.qualityLevel );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBuffer );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBufferOffset );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBufferMaxRange );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBuffer );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBufferOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBufferRange );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.srcPictureResource );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pSetupReferenceSlot );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.referenceSlotCount );
@@ -14161,9 +16081,34 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR const & videoEncodeQualityLevelInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.qualityLevel );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR const & videoEncodeQualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.preferredRateControlMode );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.preferredRateControlLayerCount );
+      return seed;
+    }
+  };
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>
   {
@@ -14176,14 +16121,10 @@
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.maxBitrate );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateNumerator );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateDenominator );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.virtualBufferSizeInMs );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.initialVirtualBufferSizeInMs );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR>
   {
@@ -14195,13 +16136,41 @@
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.flags );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.rateControlMode );
       VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.layerCount );
-      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pLayerConfigs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pLayers );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.virtualBufferSizeInMs );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.initialVirtualBufferSizeInMs );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR const & videoEncodeSessionParametersFeedbackInfoKHR ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.hasOverrides );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR const & videoEncodeSessionParametersGetInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.videoSessionParameters );
+      return seed;
+    }
+  };
+
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR>
   {
@@ -14216,9 +16185,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR>
   {
@@ -14231,9 +16198,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
   {
@@ -14251,27 +16216,22 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR>
+  struct hash<VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR>
   {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const & videoProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR const & videoInlineQueryInfoKHR ) const VULKAN_HPP_NOEXCEPT
     {
       std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.videoCodecOperation );
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaSubsampling );
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.lumaBitDepth );
-      VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaBitDepth );
+      VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.queryPool );
+      VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.firstQuery );
+      VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.queryCount );
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR>
   {
@@ -14285,9 +16245,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR>
   {
@@ -14308,9 +16266,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>
   {
@@ -14324,9 +16280,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR>
   {
@@ -14341,9 +16295,7 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR>
   {
@@ -14356,7 +16308,6 @@
       return seed;
     }
   };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
   template <>
@@ -14435,26 +16386,6 @@
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSet>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSet const & writeDescriptorSet ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.sType );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pNext );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstSet );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstBinding );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstArrayElement );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorCount );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorType );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pImageInfo );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pBufferInfo );
-      VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pTexelBufferView );
-      return seed;
-    }
-  };
-
-  template <>
   struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const & writeDescriptorSetAccelerationStructureKHR ) const
diff --git a/include/vulkan/vulkan_hpp_macros.hpp b/include/vulkan/vulkan_hpp_macros.hpp
new file mode 100644
index 0000000..9035af1
--- /dev/null
+++ b/include/vulkan/vulkan_hpp_macros.hpp
@@ -0,0 +1,297 @@
+// Copyright 2015-2024 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+//
+
+// This header is generated from the Khronos Vulkan XML API Registry.
+
+#ifndef VULKAN_HPP_MACROS_HPP
+#define VULKAN_HPP_MACROS_HPP
+
+#if defined( _MSVC_LANG )
+#  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
+#else
+#  define VULKAN_HPP_CPLUSPLUS __cplusplus
+#endif
+
+#if 202002L < VULKAN_HPP_CPLUSPLUS
+#  define VULKAN_HPP_CPP_VERSION 23
+#elif 201703L < VULKAN_HPP_CPLUSPLUS
+#  define VULKAN_HPP_CPP_VERSION 20
+#elif 201402L < VULKAN_HPP_CPLUSPLUS
+#  define VULKAN_HPP_CPP_VERSION 17
+#elif 201103L < VULKAN_HPP_CPLUSPLUS
+#  define VULKAN_HPP_CPP_VERSION 14
+#elif 199711L < VULKAN_HPP_CPLUSPLUS
+#  define VULKAN_HPP_CPP_VERSION 11
+#else
+#  error "vulkan.hpp needs at least c++ standard version 11"
+#endif
+
+// include headers holding feature-test macros
+#if 20 <= VULKAN_HPP_CPP_VERSION
+#  include <version>
+#else
+#  include <ciso646>
+#endif
+
+#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+#    define VULKAN_HPP_NO_SMART_HANDLE
+#  endif
+#endif
+
+#if defined( VULKAN_HPP_NO_CONSTRUCTORS )
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#    define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
+#  endif
+#  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
+#    define VULKAN_HPP_NO_UNION_CONSTRUCTORS
+#  endif
+#endif
+
+#if defined( VULKAN_HPP_NO_SETTERS )
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#    define VULKAN_HPP_NO_STRUCT_SETTERS
+#  endif
+#  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
+#    define VULKAN_HPP_NO_UNION_SETTERS
+#  endif
+#endif
+
+#if !defined( VULKAN_HPP_ASSERT )
+#  define VULKAN_HPP_ASSERT assert
+#endif
+
+#if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
+#  define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
+#endif
+
+#if !defined( VULKAN_HPP_STATIC_ASSERT )
+#  define VULKAN_HPP_STATIC_ASSERT static_assert
+#endif
+
+#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
+#  define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
+#endif
+
+#if !defined( __has_include )
+#  define __has_include( x ) false
+#endif
+
+#if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
+#  define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
+#endif
+
+#if ( 201803 <= __cpp_lib_span )
+#  define VULKAN_HPP_SUPPORT_SPAN
+#endif
+
+// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
+// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
+#if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
+#  if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+#    define VULKAN_HPP_TYPESAFE_CONVERSION
+#  endif
+#endif
+
+#if defined( __GNUC__ )
+#  define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
+#endif
+
+#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
+#  if defined( __clang__ )
+#    if __has_feature( cxx_unrestricted_unions )
+#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+#    endif
+#  elif defined( __GNUC__ )
+#    if 40600 <= GCC_VERSION
+#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+#    endif
+#  elif defined( _MSC_VER )
+#    if 1900 <= _MSC_VER
+#      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+#    endif
+#  endif
+#endif
+
+#if !defined( VULKAN_HPP_INLINE )
+#  if defined( __clang__ )
+#    if __has_attribute( always_inline )
+#      define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
+#    else
+#      define VULKAN_HPP_INLINE inline
+#    endif
+#  elif defined( __GNUC__ )
+#    define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
+#  elif defined( _MSC_VER )
+#    define VULKAN_HPP_INLINE inline
+#  else
+#    define VULKAN_HPP_INLINE inline
+#  endif
+#endif
+
+#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+#  define VULKAN_HPP_TYPESAFE_EXPLICIT
+#else
+#  define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
+#endif
+
+#if defined( __cpp_constexpr )
+#  define VULKAN_HPP_CONSTEXPR constexpr
+#  if 201304 <= __cpp_constexpr
+#    define VULKAN_HPP_CONSTEXPR_14 constexpr
+#  else
+#    define VULKAN_HPP_CONSTEXPR_14
+#  endif
+#  if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) )
+#    define VULKAN_HPP_CONSTEXPR_20 constexpr
+#  else
+#    define VULKAN_HPP_CONSTEXPR_20
+#  endif
+#  define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
+#else
+#  define VULKAN_HPP_CONSTEXPR
+#  define VULKAN_HPP_CONSTEXPR_14
+#  define VULKAN_HPP_CONST_OR_CONSTEXPR const
+#endif
+
+#if !defined( VULKAN_HPP_CONSTEXPR_INLINE )
+#  if 201606L <= __cpp_inline_variables
+#    define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR inline
+#  else
+#    define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR
+#  endif
+#endif
+
+#if !defined( VULKAN_HPP_NOEXCEPT )
+#  if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
+#    define VULKAN_HPP_NOEXCEPT
+#  else
+#    define VULKAN_HPP_NOEXCEPT     noexcept
+#    define VULKAN_HPP_HAS_NOEXCEPT 1
+#    if defined( VULKAN_HPP_NO_EXCEPTIONS )
+#      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
+#    else
+#      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
+#    endif
+#  endif
+#endif
+
+#if 14 <= VULKAN_HPP_CPP_VERSION
+#  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
+#else
+#  define VULKAN_HPP_DEPRECATED( msg )
+#endif
+
+#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
+#  define VULKAN_HPP_NODISCARD [[nodiscard]]
+#  if defined( VULKAN_HPP_NO_EXCEPTIONS )
+#    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
+#  else
+#    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
+#  endif
+#else
+#  define VULKAN_HPP_NODISCARD
+#  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
+#endif
+
+#if !defined( VULKAN_HPP_NAMESPACE )
+#  define VULKAN_HPP_NAMESPACE vk
+#endif
+
+#define VULKAN_HPP_STRINGIFY2( text ) #text
+#define VULKAN_HPP_STRINGIFY( text )  VULKAN_HPP_STRINGIFY2( text )
+#define VULKAN_HPP_NAMESPACE_STRING   VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
+
+#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
+#  if defined( VK_NO_PROTOTYPES )
+#    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
+#  else
+#    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
+#  endif
+#endif
+
+#if !defined( VULKAN_HPP_STORAGE_API )
+#  if defined( VULKAN_HPP_STORAGE_SHARED )
+#    if defined( _MSC_VER )
+#      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
+#        define VULKAN_HPP_STORAGE_API __declspec( dllexport )
+#      else
+#        define VULKAN_HPP_STORAGE_API __declspec( dllimport )
+#      endif
+#    elif defined( __clang__ ) || defined( __GNUC__ )
+#      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
+#        define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
+#      else
+#        define VULKAN_HPP_STORAGE_API
+#      endif
+#    else
+#      define VULKAN_HPP_STORAGE_API
+#      pragma warning Unknown import / export semantics
+#    endif
+#  else
+#    define VULKAN_HPP_STORAGE_API
+#  endif
+#endif
+
+namespace VULKAN_HPP_NAMESPACE
+{
+  class DispatchLoaderDynamic;
+}  // namespace VULKAN_HPP_NAMESPACE
+
+#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
+#  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
+#    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
+#    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE                                             \
+      namespace VULKAN_HPP_NAMESPACE                                                                       \
+      {                                                                                                    \
+        VULKAN_HPP_STORAGE_API ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic defaultDispatchLoaderDynamic; \
+      }
+
+namespace VULKAN_HPP_NAMESPACE
+{
+  extern VULKAN_HPP_STORAGE_API VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic defaultDispatchLoaderDynamic;
+}  // namespace VULKAN_HPP_NAMESPACE
+#  else
+#    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic()
+#    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
+#  endif
+#endif
+
+#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
+#  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
+#    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
+#  else
+#    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
+#  endif
+#endif
+
+#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
+#  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
+#  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
+#  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
+#else
+#  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT         = {}
+#  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
+#  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT       = VULKAN_HPP_DEFAULT_DISPATCHER
+#endif
+
+#if !defined( VULKAN_HPP_EXPECTED ) && ( 23 <= VULKAN_HPP_CPP_VERSION ) && defined( __cpp_lib_expected )
+#  include <expected>
+#  define VULKAN_HPP_EXPECTED   std::expected
+#  define VULKAN_HPP_UNEXPECTED std::unexpected
+#endif
+
+#if !defined( VULKAN_HPP_RAII_NAMESPACE )
+#  define VULKAN_HPP_RAII_NAMESPACE raii
+#endif
+
+#if defined( VULKAN_HPP_NO_EXCEPTIONS ) && defined( VULKAN_HPP_EXPECTED )
+#  define VULKAN_HPP_RAII_NO_EXCEPTIONS
+#  define VULKAN_HPP_RAII_CREATE_NOEXCEPT noexcept
+#else
+#  define VULKAN_HPP_RAII_CREATE_NOEXCEPT
+#endif
+
+#endif
\ No newline at end of file
diff --git a/include/vulkan/vulkan_ios.h b/include/vulkan/vulkan_ios.h
index 5792205..22ed2c0 100644
--- a/include/vulkan/vulkan_ios.h
+++ b/include/vulkan/vulkan_ios.h
@@ -2,7 +2,7 @@
 #define VULKAN_IOS_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_MVK_ios_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_MVK_ios_surface 1
 #define VK_MVK_IOS_SURFACE_SPEC_VERSION   3
 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
diff --git a/include/vulkan/vulkan_macos.h b/include/vulkan/vulkan_macos.h
index 8e197c7..a7f5613 100644
--- a/include/vulkan/vulkan_macos.h
+++ b/include/vulkan/vulkan_macos.h
@@ -2,7 +2,7 @@
 #define VULKAN_MACOS_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_MVK_macos_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_MVK_macos_surface 1
 #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3
 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
diff --git a/include/vulkan/vulkan_metal.h b/include/vulkan/vulkan_metal.h
index 11b9640..e6f7bf7 100644
--- a/include/vulkan/vulkan_metal.h
+++ b/include/vulkan/vulkan_metal.h
@@ -2,7 +2,7 @@
 #define VULKAN_METAL_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_EXT_metal_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_metal_surface 1
 #ifdef __OBJC__
 @class CAMetalLayer;
@@ -47,6 +48,7 @@
 #endif
 
 
+// VK_EXT_metal_objects is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_metal_objects 1
 #ifdef __OBJC__
 @protocol MTLDevice;
diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp
index c3dbbb1..49af076 100644
--- a/include/vulkan/vulkan_raii.hpp
+++ b/include/vulkan/vulkan_raii.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -8,15 +8,11 @@
 #ifndef VULKAN_RAII_HPP
 #define VULKAN_RAII_HPP
 
-#include <memory>
+#include <memory>   // std::unique_ptr
 #include <utility>  // std::exchange, std::forward
 #include <vulkan/vulkan.hpp>
 
-#if !defined( VULKAN_HPP_RAII_NAMESPACE )
-#  define VULKAN_HPP_RAII_NAMESPACE raii
-#endif
-
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) && !defined( VULKAN_HPP_NO_EXCEPTIONS )
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
 namespace VULKAN_HPP_NAMESPACE
 {
   namespace VULKAN_HPP_RAII_NAMESPACE
@@ -33,6 +29,17 @@
 #  endif
     }
 
+    template <class T>
+    class CreateReturnType
+    {
+    public:
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      using Type = VULKAN_HPP_EXPECTED<T, VULKAN_HPP_NAMESPACE::Result>;
+#  else
+      using Type                                                              = T;
+#  endif
+    };
+
     class ContextDispatcher : public DispatchLoaderBase
     {
     public:
@@ -108,92 +115,21 @@
         //=== VK_VERSION_1_3 ===
         vkGetPhysicalDeviceToolProperties = PFN_vkGetPhysicalDeviceToolProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" ) );
 
-        //=== VK_EXT_acquire_drm_display ===
-        vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
-        vkGetDrmDisplayEXT     = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
+        //=== VK_KHR_surface ===
+        vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
+        vkGetPhysicalDeviceSurfaceSupportKHR =
+          PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
+        vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
+          PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
+        vkGetPhysicalDeviceSurfaceFormatsKHR =
+          PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
+        vkGetPhysicalDeviceSurfacePresentModesKHR =
+          PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
 
-#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
-        //=== VK_EXT_acquire_xlib_display ===
-        vkAcquireXlibDisplayEXT    = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
-        vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
-#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-
-        //=== VK_EXT_calibrated_timestamps ===
-        vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
-          PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
-
-        //=== VK_EXT_debug_report ===
-        vkCreateDebugReportCallbackEXT  = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
-        vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
-        vkDebugReportMessageEXT         = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
-
-        //=== VK_EXT_debug_utils ===
-        vkCreateDebugUtilsMessengerEXT  = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
-        vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
-        vkSubmitDebugUtilsMessageEXT    = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
-
-        //=== VK_EXT_direct_mode_display ===
-        vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
-
-#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
-        //=== VK_EXT_directfb_surface ===
-        vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
-        vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
-          PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
-#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
-
-        //=== VK_EXT_display_surface_counter ===
-        vkGetPhysicalDeviceSurfaceCapabilities2EXT =
-          PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_EXT_full_screen_exclusive ===
-        vkGetPhysicalDeviceSurfacePresentModes2EXT =
-          PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_EXT_headless_surface ===
-        vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
-
-#  if defined( VK_USE_PLATFORM_METAL_EXT )
-        //=== VK_EXT_metal_surface ===
-        vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
-#  endif /*VK_USE_PLATFORM_METAL_EXT*/
-
-        //=== VK_EXT_sample_locations ===
-        vkGetPhysicalDeviceMultisamplePropertiesEXT =
-          PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
-
-        //=== VK_EXT_tooling_info ===
-        vkGetPhysicalDeviceToolPropertiesEXT =
-          PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
-        if ( !vkGetPhysicalDeviceToolProperties )
-          vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-        //=== VK_FUCHSIA_imagepipe_surface ===
-        vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_GGP )
-        //=== VK_GGP_stream_descriptor_surface ===
-        vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
-#  endif /*VK_USE_PLATFORM_GGP*/
-
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
-        //=== VK_KHR_android_surface ===
-        vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-
-        //=== VK_KHR_device_group ===
+        //=== VK_KHR_swapchain ===
         vkGetPhysicalDevicePresentRectanglesKHR =
           PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
 
-        //=== VK_KHR_device_group_creation ===
-        vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
-        if ( !vkEnumeratePhysicalDeviceGroups )
-          vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
-
         //=== VK_KHR_display ===
         vkGetPhysicalDeviceDisplayPropertiesKHR =
           PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
@@ -206,35 +142,58 @@
         vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
         vkCreateDisplayPlaneSurfaceKHR   = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
 
-        //=== VK_KHR_external_fence_capabilities ===
-        vkGetPhysicalDeviceExternalFencePropertiesKHR =
-          PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
-        if ( !vkGetPhysicalDeviceExternalFenceProperties )
-          vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
+#  if defined( VK_USE_PLATFORM_XLIB_KHR )
+        //=== VK_KHR_xlib_surface ===
+        vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
+        vkGetPhysicalDeviceXlibPresentationSupportKHR =
+          PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
+#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
 
-        //=== VK_KHR_external_memory_capabilities ===
-        vkGetPhysicalDeviceExternalBufferPropertiesKHR =
-          PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
-        if ( !vkGetPhysicalDeviceExternalBufferProperties )
-          vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
+#  if defined( VK_USE_PLATFORM_XCB_KHR )
+        //=== VK_KHR_xcb_surface ===
+        vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
+        vkGetPhysicalDeviceXcbPresentationSupportKHR =
+          PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
+#  endif /*VK_USE_PLATFORM_XCB_KHR*/
 
-        //=== VK_KHR_external_semaphore_capabilities ===
-        vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
-          PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
-        if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
-          vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
+#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+        //=== VK_KHR_wayland_surface ===
+        vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
+        vkGetPhysicalDeviceWaylandPresentationSupportKHR =
+          PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
+#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
 
-        //=== VK_KHR_fragment_shading_rate ===
-        vkGetPhysicalDeviceFragmentShadingRatesKHR =
-          PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+        //=== VK_KHR_android_surface ===
+        vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
-        //=== VK_KHR_get_display_properties2 ===
-        vkGetPhysicalDeviceDisplayProperties2KHR =
-          PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
-        vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
-          PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
-        vkGetDisplayModeProperties2KHR    = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
-        vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_KHR_win32_surface ===
+        vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
+        vkGetPhysicalDeviceWin32PresentationSupportKHR =
+          PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+        //=== VK_EXT_debug_report ===
+        vkCreateDebugReportCallbackEXT  = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
+        vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
+        vkDebugReportMessageEXT         = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
+
+        //=== VK_KHR_video_queue ===
+        vkGetPhysicalDeviceVideoCapabilitiesKHR =
+          PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
+        vkGetPhysicalDeviceVideoFormatPropertiesKHR =
+          PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
+
+#  if defined( VK_USE_PLATFORM_GGP )
+        //=== VK_GGP_stream_descriptor_surface ===
+        vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
+#  endif /*VK_USE_PLATFORM_GGP*/
+
+        //=== VK_NV_external_memory_capabilities ===
+        vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
+          PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
 
         //=== VK_KHR_get_physical_device_properties2 ===
         vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
@@ -264,11 +223,46 @@
         if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
           vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
 
-        //=== VK_KHR_get_surface_capabilities2 ===
-        vkGetPhysicalDeviceSurfaceCapabilities2KHR =
-          PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
-        vkGetPhysicalDeviceSurfaceFormats2KHR =
-          PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
+#  if defined( VK_USE_PLATFORM_VI_NN )
+        //=== VK_NN_vi_surface ===
+        vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
+#  endif /*VK_USE_PLATFORM_VI_NN*/
+
+        //=== VK_KHR_device_group_creation ===
+        vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
+        if ( !vkEnumeratePhysicalDeviceGroups )
+          vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
+
+        //=== VK_KHR_external_memory_capabilities ===
+        vkGetPhysicalDeviceExternalBufferPropertiesKHR =
+          PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
+        if ( !vkGetPhysicalDeviceExternalBufferProperties )
+          vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
+
+        //=== VK_KHR_external_semaphore_capabilities ===
+        vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
+          PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
+        if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
+          vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
+
+        //=== VK_EXT_direct_mode_display ===
+        vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
+
+#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+        //=== VK_EXT_acquire_xlib_display ===
+        vkAcquireXlibDisplayEXT    = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
+        vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
+#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+        //=== VK_EXT_display_surface_counter ===
+        vkGetPhysicalDeviceSurfaceCapabilities2EXT =
+          PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
+
+        //=== VK_KHR_external_fence_capabilities ===
+        vkGetPhysicalDeviceExternalFencePropertiesKHR =
+          PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
+        if ( !vkGetPhysicalDeviceExternalFenceProperties )
+          vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
 
         //=== VK_KHR_performance_query ===
         vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
@@ -276,52 +270,19 @@
         vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
           vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
 
-        //=== VK_KHR_surface ===
-        vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
-        vkGetPhysicalDeviceSurfaceSupportKHR =
-          PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
-        vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
-          PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
-        vkGetPhysicalDeviceSurfaceFormatsKHR =
-          PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
-        vkGetPhysicalDeviceSurfacePresentModesKHR =
-          PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
+        //=== VK_KHR_get_surface_capabilities2 ===
+        vkGetPhysicalDeviceSurfaceCapabilities2KHR =
+          PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
+        vkGetPhysicalDeviceSurfaceFormats2KHR =
+          PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-        //=== VK_KHR_video_queue ===
-        vkGetPhysicalDeviceVideoCapabilitiesKHR =
-          PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
-        vkGetPhysicalDeviceVideoFormatPropertiesKHR =
-          PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
-        //=== VK_KHR_wayland_surface ===
-        vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
-        vkGetPhysicalDeviceWaylandPresentationSupportKHR =
-          PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
-#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_KHR_win32_surface ===
-        vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
-        vkGetPhysicalDeviceWin32PresentationSupportKHR =
-          PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-#  if defined( VK_USE_PLATFORM_XCB_KHR )
-        //=== VK_KHR_xcb_surface ===
-        vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
-        vkGetPhysicalDeviceXcbPresentationSupportKHR =
-          PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
-#  endif /*VK_USE_PLATFORM_XCB_KHR*/
-
-#  if defined( VK_USE_PLATFORM_XLIB_KHR )
-        //=== VK_KHR_xlib_surface ===
-        vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
-        vkGetPhysicalDeviceXlibPresentationSupportKHR =
-          PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
-#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
+        //=== VK_KHR_get_display_properties2 ===
+        vkGetPhysicalDeviceDisplayProperties2KHR =
+          PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
+        vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
+          PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
+        vkGetDisplayModeProperties2KHR    = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
+        vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
 
 #  if defined( VK_USE_PLATFORM_IOS_MVK )
         //=== VK_MVK_ios_surface ===
@@ -333,16 +294,40 @@
         vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
 
-#  if defined( VK_USE_PLATFORM_VI_NN )
-        //=== VK_NN_vi_surface ===
-        vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
-#  endif /*VK_USE_PLATFORM_VI_NN*/
+        //=== VK_EXT_debug_utils ===
+        vkCreateDebugUtilsMessengerEXT  = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
+        vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
+        vkSubmitDebugUtilsMessageEXT    = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
 
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_NV_acquire_winrt_display ===
-        vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
-        vkGetWinrtDisplayNV     = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+        //=== VK_EXT_sample_locations ===
+        vkGetPhysicalDeviceMultisamplePropertiesEXT =
+          PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
+
+        //=== VK_EXT_calibrated_timestamps ===
+        vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
+          PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
+        if ( !vkGetPhysicalDeviceCalibrateableTimeDomainsKHR )
+          vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+        //=== VK_FUCHSIA_imagepipe_surface ===
+        vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_METAL_EXT )
+        //=== VK_EXT_metal_surface ===
+        vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
+#  endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+        //=== VK_KHR_fragment_shading_rate ===
+        vkGetPhysicalDeviceFragmentShadingRatesKHR =
+          PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
+
+        //=== VK_EXT_tooling_info ===
+        vkGetPhysicalDeviceToolPropertiesEXT =
+          PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
+        if ( !vkGetPhysicalDeviceToolProperties )
+          vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
 
         //=== VK_NV_cooperative_matrix ===
         vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
@@ -352,13 +337,35 @@
         vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
           vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
 
-        //=== VK_NV_external_memory_capabilities ===
-        vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
-          PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_EXT_full_screen_exclusive ===
+        vkGetPhysicalDeviceSurfacePresentModes2EXT =
+          PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-        //=== VK_NV_optical_flow ===
-        vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
-          PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) );
+        //=== VK_EXT_headless_surface ===
+        vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
+
+        //=== VK_EXT_acquire_drm_display ===
+        vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
+        vkGetDrmDisplayEXT     = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
+
+        //=== VK_KHR_video_encode_queue ===
+        vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
+          vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" ) );
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_NV_acquire_winrt_display ===
+        vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
+        vkGetWinrtDisplayNV     = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+        //=== VK_EXT_directfb_surface ===
+        vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
+        vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
+          PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
+#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
         //=== VK_QNX_screen_surface ===
@@ -367,6 +374,18 @@
           PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
 
+        //=== VK_NV_optical_flow ===
+        vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
+          PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) );
+
+        //=== VK_KHR_cooperative_matrix ===
+        vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR =
+          PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) );
+
+        //=== VK_KHR_calibrated_timestamps ===
+        vkGetPhysicalDeviceCalibrateableTimeDomainsKHR =
+          PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" ) );
+
         vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
       }
 
@@ -402,97 +421,16 @@
       //=== VK_VERSION_1_3 ===
       PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties = 0;
 
-      //=== VK_EXT_acquire_drm_display ===
-      PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
-      PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
+      //=== VK_KHR_surface ===
+      PFN_vkDestroySurfaceKHR                       vkDestroySurfaceKHR                       = 0;
+      PFN_vkGetPhysicalDeviceSurfaceSupportKHR      vkGetPhysicalDeviceSurfaceSupportKHR      = 0;
+      PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
+      PFN_vkGetPhysicalDeviceSurfaceFormatsKHR      vkGetPhysicalDeviceSurfaceFormatsKHR      = 0;
+      PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
 
-#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
-      //=== VK_EXT_acquire_xlib_display ===
-      PFN_vkAcquireXlibDisplayEXT    vkAcquireXlibDisplayEXT    = 0;
-      PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
-#  else
-      PFN_dummy vkAcquireXlibDisplayEXT_placeholder                           = 0;
-      PFN_dummy vkGetRandROutputDisplayEXT_placeholder                        = 0;
-#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-
-      //=== VK_EXT_calibrated_timestamps ===
-      PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
-
-      //=== VK_EXT_debug_report ===
-      PFN_vkCreateDebugReportCallbackEXT  vkCreateDebugReportCallbackEXT  = 0;
-      PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
-      PFN_vkDebugReportMessageEXT         vkDebugReportMessageEXT         = 0;
-
-      //=== VK_EXT_debug_utils ===
-      PFN_vkCreateDebugUtilsMessengerEXT  vkCreateDebugUtilsMessengerEXT  = 0;
-      PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
-      PFN_vkSubmitDebugUtilsMessageEXT    vkSubmitDebugUtilsMessageEXT    = 0;
-
-      //=== VK_EXT_direct_mode_display ===
-      PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
-      //=== VK_EXT_directfb_surface ===
-      PFN_vkCreateDirectFBSurfaceEXT                        vkCreateDirectFBSurfaceEXT                        = 0;
-      PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
-#  else
-      PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder                        = 0;
-      PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
-#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
-
-      //=== VK_EXT_display_surface_counter ===
-      PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_EXT_full_screen_exclusive ===
-      PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
-#  else
-      PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder        = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_EXT_headless_surface ===
-      PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_METAL_EXT )
-      //=== VK_EXT_metal_surface ===
-      PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
-#  else
-      PFN_dummy vkCreateMetalSurfaceEXT_placeholder                           = 0;
-#  endif /*VK_USE_PLATFORM_METAL_EXT*/
-
-      //=== VK_EXT_sample_locations ===
-      PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
-
-      //=== VK_EXT_tooling_info ===
-      PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-      //=== VK_FUCHSIA_imagepipe_surface ===
-      PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
-#  else
-      PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder                   = 0;
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_GGP )
-      //=== VK_GGP_stream_descriptor_surface ===
-      PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
-#  else
-      PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder                = 0;
-#  endif /*VK_USE_PLATFORM_GGP*/
-
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
-      //=== VK_KHR_android_surface ===
-      PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
-#  else
-      PFN_dummy vkCreateAndroidSurfaceKHR_placeholder                         = 0;
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-
-      //=== VK_KHR_device_group ===
+      //=== VK_KHR_swapchain ===
       PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
 
-      //=== VK_KHR_device_group_creation ===
-      PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
-
       //=== VK_KHR_display ===
       PFN_vkGetPhysicalDeviceDisplayPropertiesKHR      vkGetPhysicalDeviceDisplayPropertiesKHR      = 0;
       PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
@@ -502,74 +440,14 @@
       PFN_vkGetDisplayPlaneCapabilitiesKHR             vkGetDisplayPlaneCapabilitiesKHR             = 0;
       PFN_vkCreateDisplayPlaneSurfaceKHR               vkCreateDisplayPlaneSurfaceKHR               = 0;
 
-      //=== VK_KHR_external_fence_capabilities ===
-      PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
-
-      //=== VK_KHR_external_memory_capabilities ===
-      PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
-
-      //=== VK_KHR_external_semaphore_capabilities ===
-      PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
-
-      //=== VK_KHR_fragment_shading_rate ===
-      PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
-
-      //=== VK_KHR_get_display_properties2 ===
-      PFN_vkGetPhysicalDeviceDisplayProperties2KHR      vkGetPhysicalDeviceDisplayProperties2KHR      = 0;
-      PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
-      PFN_vkGetDisplayModeProperties2KHR                vkGetDisplayModeProperties2KHR                = 0;
-      PFN_vkGetDisplayPlaneCapabilities2KHR             vkGetDisplayPlaneCapabilities2KHR             = 0;
-
-      //=== VK_KHR_get_physical_device_properties2 ===
-      PFN_vkGetPhysicalDeviceFeatures2KHR                    vkGetPhysicalDeviceFeatures2KHR                    = 0;
-      PFN_vkGetPhysicalDeviceProperties2KHR                  vkGetPhysicalDeviceProperties2KHR                  = 0;
-      PFN_vkGetPhysicalDeviceFormatProperties2KHR            vkGetPhysicalDeviceFormatProperties2KHR            = 0;
-      PFN_vkGetPhysicalDeviceImageFormatProperties2KHR       vkGetPhysicalDeviceImageFormatProperties2KHR       = 0;
-      PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR       vkGetPhysicalDeviceQueueFamilyProperties2KHR       = 0;
-      PFN_vkGetPhysicalDeviceMemoryProperties2KHR            vkGetPhysicalDeviceMemoryProperties2KHR            = 0;
-      PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
-
-      //=== VK_KHR_get_surface_capabilities2 ===
-      PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
-      PFN_vkGetPhysicalDeviceSurfaceFormats2KHR      vkGetPhysicalDeviceSurfaceFormats2KHR      = 0;
-
-      //=== VK_KHR_performance_query ===
-      PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
-      PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         = 0;
-
-      //=== VK_KHR_surface ===
-      PFN_vkDestroySurfaceKHR                       vkDestroySurfaceKHR                       = 0;
-      PFN_vkGetPhysicalDeviceSurfaceSupportKHR      vkGetPhysicalDeviceSurfaceSupportKHR      = 0;
-      PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
-      PFN_vkGetPhysicalDeviceSurfaceFormatsKHR      vkGetPhysicalDeviceSurfaceFormatsKHR      = 0;
-      PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-      //=== VK_KHR_video_queue ===
-      PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
-      PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+#  if defined( VK_USE_PLATFORM_XLIB_KHR )
+      //=== VK_KHR_xlib_surface ===
+      PFN_vkCreateXlibSurfaceKHR                        vkCreateXlibSurfaceKHR                        = 0;
+      PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
 #  else
-      PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder           = 0;
-      PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder       = 0;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
-      //=== VK_KHR_wayland_surface ===
-      PFN_vkCreateWaylandSurfaceKHR                        vkCreateWaylandSurfaceKHR                        = 0;
-      PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
-#  else
-      PFN_dummy vkCreateWaylandSurfaceKHR_placeholder                         = 0;
-      PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder  = 0;
-#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_KHR_win32_surface ===
-      PFN_vkCreateWin32SurfaceKHR                        vkCreateWin32SurfaceKHR                        = 0;
-      PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
-#  else
-      PFN_dummy vkCreateWin32SurfaceKHR_placeholder                           = 0;
-      PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder    = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+      PFN_dummy vkCreateXlibSurfaceKHR_placeholder                            = 0;
+      PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder     = 0;
+#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
 
 #  if defined( VK_USE_PLATFORM_XCB_KHR )
       //=== VK_KHR_xcb_surface ===
@@ -580,14 +458,106 @@
       PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder      = 0;
 #  endif /*VK_USE_PLATFORM_XCB_KHR*/
 
-#  if defined( VK_USE_PLATFORM_XLIB_KHR )
-      //=== VK_KHR_xlib_surface ===
-      PFN_vkCreateXlibSurfaceKHR                        vkCreateXlibSurfaceKHR                        = 0;
-      PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
+#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+      //=== VK_KHR_wayland_surface ===
+      PFN_vkCreateWaylandSurfaceKHR                        vkCreateWaylandSurfaceKHR                        = 0;
+      PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
 #  else
-      PFN_dummy vkCreateXlibSurfaceKHR_placeholder                            = 0;
-      PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder     = 0;
-#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
+      PFN_dummy vkCreateWaylandSurfaceKHR_placeholder                         = 0;
+      PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder  = 0;
+#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      //=== VK_KHR_android_surface ===
+      PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
+#  else
+      PFN_dummy vkCreateAndroidSurfaceKHR_placeholder                         = 0;
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_KHR_win32_surface ===
+      PFN_vkCreateWin32SurfaceKHR                        vkCreateWin32SurfaceKHR                        = 0;
+      PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
+#  else
+      PFN_dummy vkCreateWin32SurfaceKHR_placeholder                           = 0;
+      PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder    = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_EXT_debug_report ===
+      PFN_vkCreateDebugReportCallbackEXT  vkCreateDebugReportCallbackEXT  = 0;
+      PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
+      PFN_vkDebugReportMessageEXT         vkDebugReportMessageEXT         = 0;
+
+      //=== VK_KHR_video_queue ===
+      PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
+      PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+
+#  if defined( VK_USE_PLATFORM_GGP )
+      //=== VK_GGP_stream_descriptor_surface ===
+      PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
+#  else
+      PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder                = 0;
+#  endif /*VK_USE_PLATFORM_GGP*/
+
+      //=== VK_NV_external_memory_capabilities ===
+      PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
+
+      //=== VK_KHR_get_physical_device_properties2 ===
+      PFN_vkGetPhysicalDeviceFeatures2KHR                    vkGetPhysicalDeviceFeatures2KHR                    = 0;
+      PFN_vkGetPhysicalDeviceProperties2KHR                  vkGetPhysicalDeviceProperties2KHR                  = 0;
+      PFN_vkGetPhysicalDeviceFormatProperties2KHR            vkGetPhysicalDeviceFormatProperties2KHR            = 0;
+      PFN_vkGetPhysicalDeviceImageFormatProperties2KHR       vkGetPhysicalDeviceImageFormatProperties2KHR       = 0;
+      PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR       vkGetPhysicalDeviceQueueFamilyProperties2KHR       = 0;
+      PFN_vkGetPhysicalDeviceMemoryProperties2KHR            vkGetPhysicalDeviceMemoryProperties2KHR            = 0;
+      PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
+
+#  if defined( VK_USE_PLATFORM_VI_NN )
+      //=== VK_NN_vi_surface ===
+      PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
+#  else
+      PFN_dummy vkCreateViSurfaceNN_placeholder                               = 0;
+#  endif /*VK_USE_PLATFORM_VI_NN*/
+
+      //=== VK_KHR_device_group_creation ===
+      PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
+
+      //=== VK_KHR_external_memory_capabilities ===
+      PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
+
+      //=== VK_KHR_external_semaphore_capabilities ===
+      PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
+
+      //=== VK_EXT_direct_mode_display ===
+      PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
+
+#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+      //=== VK_EXT_acquire_xlib_display ===
+      PFN_vkAcquireXlibDisplayEXT    vkAcquireXlibDisplayEXT    = 0;
+      PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
+#  else
+      PFN_dummy vkAcquireXlibDisplayEXT_placeholder                           = 0;
+      PFN_dummy vkGetRandROutputDisplayEXT_placeholder                        = 0;
+#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+      //=== VK_EXT_display_surface_counter ===
+      PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
+
+      //=== VK_KHR_external_fence_capabilities ===
+      PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
+
+      //=== VK_KHR_performance_query ===
+      PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
+      PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         = 0;
+
+      //=== VK_KHR_get_surface_capabilities2 ===
+      PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
+      PFN_vkGetPhysicalDeviceSurfaceFormats2KHR      vkGetPhysicalDeviceSurfaceFormats2KHR      = 0;
+
+      //=== VK_KHR_get_display_properties2 ===
+      PFN_vkGetPhysicalDeviceDisplayProperties2KHR      vkGetPhysicalDeviceDisplayProperties2KHR      = 0;
+      PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
+      PFN_vkGetDisplayModeProperties2KHR                vkGetDisplayModeProperties2KHR                = 0;
+      PFN_vkGetDisplayPlaneCapabilities2KHR             vkGetDisplayPlaneCapabilities2KHR             = 0;
 
 #  if defined( VK_USE_PLATFORM_IOS_MVK )
       //=== VK_MVK_ios_surface ===
@@ -603,12 +573,59 @@
       PFN_dummy vkCreateMacOSSurfaceMVK_placeholder                           = 0;
 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
 
-#  if defined( VK_USE_PLATFORM_VI_NN )
-      //=== VK_NN_vi_surface ===
-      PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
+      //=== VK_EXT_debug_utils ===
+      PFN_vkCreateDebugUtilsMessengerEXT  vkCreateDebugUtilsMessengerEXT  = 0;
+      PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
+      PFN_vkSubmitDebugUtilsMessageEXT    vkSubmitDebugUtilsMessageEXT    = 0;
+
+      //=== VK_EXT_sample_locations ===
+      PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
+
+      //=== VK_EXT_calibrated_timestamps ===
+      PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+      //=== VK_FUCHSIA_imagepipe_surface ===
+      PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
 #  else
-      PFN_dummy vkCreateViSurfaceNN_placeholder                               = 0;
-#  endif /*VK_USE_PLATFORM_VI_NN*/
+      PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder                   = 0;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_METAL_EXT )
+      //=== VK_EXT_metal_surface ===
+      PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
+#  else
+      PFN_dummy vkCreateMetalSurfaceEXT_placeholder                           = 0;
+#  endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+      //=== VK_KHR_fragment_shading_rate ===
+      PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
+
+      //=== VK_EXT_tooling_info ===
+      PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
+
+      //=== VK_NV_cooperative_matrix ===
+      PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
+
+      //=== VK_NV_coverage_reduction_mode ===
+      PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_EXT_full_screen_exclusive ===
+      PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
+#  else
+      PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder        = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_EXT_headless_surface ===
+      PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
+
+      //=== VK_EXT_acquire_drm_display ===
+      PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
+      PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
+
+      //=== VK_KHR_video_encode_queue ===
+      PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 0;
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
       //=== VK_NV_acquire_winrt_display ===
@@ -619,17 +636,14 @@
       PFN_dummy vkGetWinrtDisplayNV_placeholder                               = 0;
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-      //=== VK_NV_cooperative_matrix ===
-      PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
-
-      //=== VK_NV_coverage_reduction_mode ===
-      PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
-
-      //=== VK_NV_external_memory_capabilities ===
-      PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
-
-      //=== VK_NV_optical_flow ===
-      PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0;
+#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+      //=== VK_EXT_directfb_surface ===
+      PFN_vkCreateDirectFBSurfaceEXT                        vkCreateDirectFBSurfaceEXT                        = 0;
+      PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
+#  else
+      PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder                        = 0;
+      PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
+#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
       //=== VK_QNX_screen_surface ===
@@ -640,6 +654,15 @@
       PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder   = 0;
 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
 
+      //=== VK_NV_optical_flow ===
+      PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0;
+
+      //=== VK_KHR_cooperative_matrix ===
+      PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0;
+
+      //=== VK_KHR_calibrated_timestamps ===
+      PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 0;
+
       PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
     };
 
@@ -844,11 +867,63 @@
         vkGetDeviceImageSparseMemoryRequirements =
           PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" ) );
 
-        //=== VK_AMD_buffer_marker ===
-        vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
+        //=== VK_KHR_swapchain ===
+        vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
+        vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
+        vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
+        vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
+        vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
+        vkGetDeviceGroupPresentCapabilitiesKHR =
+          PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
+        vkGetDeviceGroupSurfacePresentModesKHR =
+          PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
+        vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
 
-        //=== VK_AMD_display_native_hdr ===
-        vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
+        //=== VK_KHR_display_swapchain ===
+        vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
+
+        //=== VK_EXT_debug_marker ===
+        vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
+        vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
+        vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
+        vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
+        vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
+
+        //=== VK_KHR_video_queue ===
+        vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
+        vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
+        vkGetVideoSessionMemoryRequirementsKHR =
+          PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
+        vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
+        vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
+        vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
+        vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
+        vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
+        vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
+        vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
+
+        //=== VK_KHR_video_decode_queue ===
+        vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
+
+        //=== VK_EXT_transform_feedback ===
+        vkCmdBindTransformFeedbackBuffersEXT =
+          PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
+        vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
+        vkCmdEndTransformFeedbackEXT   = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
+        vkCmdBeginQueryIndexedEXT      = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
+        vkCmdEndQueryIndexedEXT        = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
+        vkCmdDrawIndirectByteCountEXT  = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
+
+        //=== VK_NVX_binary_import ===
+        vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
+        vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
+        vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
+        vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
+        vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
+
+        //=== VK_NVX_image_view_handle ===
+        vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
+        vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
 
         //=== VK_AMD_draw_indirect_count ===
         vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
@@ -861,35 +936,129 @@
         //=== VK_AMD_shader_info ===
         vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
 
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
-        //=== VK_ANDROID_external_memory_android_hardware_buffer ===
-        vkGetAndroidHardwareBufferPropertiesANDROID =
-          PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
-        vkGetMemoryAndroidHardwareBufferANDROID =
-          PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+        //=== VK_KHR_dynamic_rendering ===
+        vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
+        if ( !vkCmdBeginRendering )
+          vkCmdBeginRendering = vkCmdBeginRenderingKHR;
+        vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
+        if ( !vkCmdEndRendering )
+          vkCmdEndRendering = vkCmdEndRenderingKHR;
 
-        //=== VK_EXT_buffer_device_address ===
-        vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
-        if ( !vkGetBufferDeviceAddress )
-          vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_NV_external_memory_win32 ===
+        vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-        //=== VK_EXT_calibrated_timestamps ===
-        vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+        //=== VK_KHR_device_group ===
+        vkGetDeviceGroupPeerMemoryFeaturesKHR =
+          PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
+        if ( !vkGetDeviceGroupPeerMemoryFeatures )
+          vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
+        vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
+        if ( !vkCmdSetDeviceMask )
+          vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
+        vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
+        if ( !vkCmdDispatchBase )
+          vkCmdDispatchBase = vkCmdDispatchBaseKHR;
 
-        //=== VK_EXT_color_write_enable ===
-        vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
+        //=== VK_KHR_maintenance1 ===
+        vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
+        if ( !vkTrimCommandPool )
+          vkTrimCommandPool = vkTrimCommandPoolKHR;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_KHR_external_memory_win32 ===
+        vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
+        vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+        //=== VK_KHR_external_memory_fd ===
+        vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
+        vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_KHR_external_semaphore_win32 ===
+        vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
+        vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+        //=== VK_KHR_external_semaphore_fd ===
+        vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
+        vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
+
+        //=== VK_KHR_push_descriptor ===
+        vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
+        vkCmdPushDescriptorSetWithTemplateKHR =
+          PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
 
         //=== VK_EXT_conditional_rendering ===
         vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
         vkCmdEndConditionalRenderingEXT   = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
 
-        //=== VK_EXT_debug_marker ===
-        vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
-        vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
-        vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
-        vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
-        vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
+        //=== VK_KHR_descriptor_update_template ===
+        vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
+        if ( !vkCreateDescriptorUpdateTemplate )
+          vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
+        vkDestroyDescriptorUpdateTemplateKHR =
+          PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
+        if ( !vkDestroyDescriptorUpdateTemplate )
+          vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
+        vkUpdateDescriptorSetWithTemplateKHR =
+          PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
+        if ( !vkUpdateDescriptorSetWithTemplate )
+          vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
+
+        //=== VK_NV_clip_space_w_scaling ===
+        vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
+
+        //=== VK_EXT_display_control ===
+        vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
+        vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
+        vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
+        vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
+
+        //=== VK_GOOGLE_display_timing ===
+        vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
+        vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
+
+        //=== VK_EXT_discard_rectangles ===
+        vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
+        vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" ) );
+        vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" ) );
+
+        //=== VK_EXT_hdr_metadata ===
+        vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
+
+        //=== VK_KHR_create_renderpass2 ===
+        vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
+        if ( !vkCreateRenderPass2 )
+          vkCreateRenderPass2 = vkCreateRenderPass2KHR;
+        vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
+        if ( !vkCmdBeginRenderPass2 )
+          vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
+        vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
+        if ( !vkCmdNextSubpass2 )
+          vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
+        vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
+        if ( !vkCmdEndRenderPass2 )
+          vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
+
+        //=== VK_KHR_shared_presentable_image ===
+        vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_KHR_external_fence_win32 ===
+        vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
+        vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+        //=== VK_KHR_external_fence_fd ===
+        vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
+        vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
+
+        //=== VK_KHR_performance_query ===
+        vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
+        vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
 
         //=== VK_EXT_debug_utils ===
         vkSetDebugUtilsObjectNameEXT    = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
@@ -901,37 +1070,238 @@
         vkCmdEndDebugUtilsLabelEXT      = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
         vkCmdInsertDebugUtilsLabelEXT   = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
 
-        //=== VK_EXT_descriptor_buffer ===
-        vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" ) );
-        vkGetDescriptorSetLayoutBindingOffsetEXT =
-          PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
-        vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" ) );
-        vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" ) );
-        vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
-        vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
-          PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
-        vkGetBufferOpaqueCaptureDescriptorDataEXT =
-          PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
-        vkGetImageOpaqueCaptureDescriptorDataEXT =
-          PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
-        vkGetImageViewOpaqueCaptureDescriptorDataEXT =
-          PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
-        vkGetSamplerOpaqueCaptureDescriptorDataEXT =
-          PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
-        vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
-          vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+        //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+        vkGetAndroidHardwareBufferPropertiesANDROID =
+          PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
+        vkGetMemoryAndroidHardwareBufferANDROID =
+          PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
-        //=== VK_EXT_device_fault ===
-        vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) );
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+        //=== VK_AMDX_shader_enqueue ===
+        vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetDeviceProcAddr( device, "vkCreateExecutionGraphPipelinesAMDX" ) );
+        vkGetExecutionGraphPipelineScratchSizeAMDX =
+          PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) );
+        vkGetExecutionGraphPipelineNodeIndexAMDX =
+          PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) );
+        vkCmdInitializeGraphScratchMemoryAMDX =
+          PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetDeviceProcAddr( device, "vkCmdInitializeGraphScratchMemoryAMDX" ) );
+        vkCmdDispatchGraphAMDX              = PFN_vkCmdDispatchGraphAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphAMDX" ) );
+        vkCmdDispatchGraphIndirectAMDX      = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectAMDX" ) );
+        vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectCountAMDX" ) );
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-        //=== VK_EXT_discard_rectangles ===
-        vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
+        //=== VK_EXT_sample_locations ===
+        vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
 
-        //=== VK_EXT_display_control ===
-        vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
-        vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
-        vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
-        vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
+        //=== VK_KHR_get_memory_requirements2 ===
+        vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
+        if ( !vkGetImageMemoryRequirements2 )
+          vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
+        vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
+        if ( !vkGetBufferMemoryRequirements2 )
+          vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
+        vkGetImageSparseMemoryRequirements2KHR =
+          PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
+        if ( !vkGetImageSparseMemoryRequirements2 )
+          vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
+
+        //=== VK_KHR_acceleration_structure ===
+        vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
+        vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
+        vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
+        vkCmdBuildAccelerationStructuresIndirectKHR =
+          PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
+        vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
+        vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
+        vkCopyAccelerationStructureToMemoryKHR =
+          PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
+        vkCopyMemoryToAccelerationStructureKHR =
+          PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
+        vkWriteAccelerationStructuresPropertiesKHR =
+          PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+        vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
+        vkCmdCopyAccelerationStructureToMemoryKHR =
+          PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+        vkCmdCopyMemoryToAccelerationStructureKHR =
+          PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
+        vkGetAccelerationStructureDeviceAddressKHR =
+          PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
+        vkCmdWriteAccelerationStructuresPropertiesKHR =
+          PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
+        vkGetDeviceAccelerationStructureCompatibilityKHR =
+          PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
+        vkGetAccelerationStructureBuildSizesKHR =
+          PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
+
+        //=== VK_KHR_ray_tracing_pipeline ===
+        vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
+        vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
+        vkGetRayTracingShaderGroupHandlesKHR =
+          PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
+        vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
+          PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+        vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
+        vkGetRayTracingShaderGroupStackSizeKHR =
+          PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
+        vkCmdSetRayTracingPipelineStackSizeKHR =
+          PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
+        //=== VK_KHR_sampler_ycbcr_conversion ===
+        vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
+        if ( !vkCreateSamplerYcbcrConversion )
+          vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
+        vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
+        if ( !vkDestroySamplerYcbcrConversion )
+          vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
+
+        //=== VK_KHR_bind_memory2 ===
+        vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
+        if ( !vkBindBufferMemory2 )
+          vkBindBufferMemory2 = vkBindBufferMemory2KHR;
+        vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
+        if ( !vkBindImageMemory2 )
+          vkBindImageMemory2 = vkBindImageMemory2KHR;
+
+        //=== VK_EXT_image_drm_format_modifier ===
+        vkGetImageDrmFormatModifierPropertiesEXT =
+          PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
+
+        //=== VK_EXT_validation_cache ===
+        vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
+        vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
+        vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
+        vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
+
+        //=== VK_NV_shading_rate_image ===
+        vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
+        vkCmdSetViewportShadingRatePaletteNV =
+          PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
+        vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
+
+        //=== VK_NV_ray_tracing ===
+        vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
+        vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
+        vkGetAccelerationStructureMemoryRequirementsNV =
+          PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
+        vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
+        vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
+        vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
+        vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
+        vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
+        vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
+        if ( !vkGetRayTracingShaderGroupHandlesKHR )
+          vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+        vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
+        vkCmdWriteAccelerationStructuresPropertiesNV =
+          PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
+        vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+
+        //=== VK_KHR_maintenance3 ===
+        vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
+        if ( !vkGetDescriptorSetLayoutSupport )
+          vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
+
+        //=== VK_KHR_draw_indirect_count ===
+        vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
+        if ( !vkCmdDrawIndirectCount )
+          vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
+        vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
+        if ( !vkCmdDrawIndexedIndirectCount )
+          vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
+
+        //=== VK_EXT_external_memory_host ===
+        vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
+
+        //=== VK_AMD_buffer_marker ===
+        vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
+
+        //=== VK_EXT_calibrated_timestamps ===
+        vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+        if ( !vkGetCalibratedTimestampsKHR )
+          vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT;
+
+        //=== VK_NV_mesh_shader ===
+        vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
+        vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
+        vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
+
+        //=== VK_NV_scissor_exclusive ===
+        vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" ) );
+        vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
+
+        //=== VK_NV_device_diagnostic_checkpoints ===
+        vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
+        vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
+
+        //=== VK_KHR_timeline_semaphore ===
+        vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
+        if ( !vkGetSemaphoreCounterValue )
+          vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
+        vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
+        if ( !vkWaitSemaphores )
+          vkWaitSemaphores = vkWaitSemaphoresKHR;
+        vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
+        if ( !vkSignalSemaphore )
+          vkSignalSemaphore = vkSignalSemaphoreKHR;
+
+        //=== VK_INTEL_performance_query ===
+        vkInitializePerformanceApiINTEL   = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
+        vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
+        vkCmdSetPerformanceMarkerINTEL    = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
+        vkCmdSetPerformanceStreamMarkerINTEL =
+          PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
+        vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
+        vkAcquirePerformanceConfigurationINTEL =
+          PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
+        vkReleasePerformanceConfigurationINTEL =
+          PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
+        vkQueueSetPerformanceConfigurationINTEL =
+          PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
+        vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
+
+        //=== VK_AMD_display_native_hdr ===
+        vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
+
+        //=== VK_KHR_fragment_shading_rate ===
+        vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
+
+        //=== VK_EXT_buffer_device_address ===
+        vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
+        if ( !vkGetBufferDeviceAddress )
+          vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+
+        //=== VK_KHR_present_wait ===
+        vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+        //=== VK_EXT_full_screen_exclusive ===
+        vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
+        vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
+        vkGetDeviceGroupSurfacePresentModes2EXT =
+          PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+        //=== VK_KHR_buffer_device_address ===
+        vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
+        if ( !vkGetBufferDeviceAddress )
+          vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
+        vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
+        if ( !vkGetBufferOpaqueCaptureAddress )
+          vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
+        vkGetDeviceMemoryOpaqueCaptureAddressKHR =
+          PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
+        if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
+          vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
+
+        //=== VK_EXT_line_rasterization ===
+        vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
+
+        //=== VK_EXT_host_query_reset ===
+        vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
+        if ( !vkResetQueryPool )
+          vkResetQueryPool = vkResetQueryPoolEXT;
 
         //=== VK_EXT_extended_dynamic_state ===
         vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
@@ -971,6 +1341,200 @@
         if ( !vkCmdSetStencilOp )
           vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
 
+        //=== VK_KHR_deferred_host_operations ===
+        vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
+        vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
+        vkGetDeferredOperationMaxConcurrencyKHR =
+          PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
+        vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
+        vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
+
+        //=== VK_KHR_pipeline_executable_properties ===
+        vkGetPipelineExecutablePropertiesKHR =
+          PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
+        vkGetPipelineExecutableStatisticsKHR =
+          PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
+        vkGetPipelineExecutableInternalRepresentationsKHR =
+          PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+        //=== VK_EXT_host_image_copy ===
+        vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToImageEXT" ) );
+        vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyImageToMemoryEXT" ) );
+        vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetDeviceProcAddr( device, "vkCopyImageToImageEXT" ) );
+        vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetDeviceProcAddr( device, "vkTransitionImageLayoutEXT" ) );
+        vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
+        if ( !vkGetImageSubresourceLayout2KHR )
+          vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT;
+
+        //=== VK_KHR_map_memory2 ===
+        vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetDeviceProcAddr( device, "vkMapMemory2KHR" ) );
+        vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" ) );
+
+        //=== VK_EXT_swapchain_maintenance1 ===
+        vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) );
+
+        //=== VK_NV_device_generated_commands ===
+        vkGetGeneratedCommandsMemoryRequirementsNV =
+          PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
+        vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
+        vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
+        vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
+        vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
+        vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
+
+        //=== VK_EXT_depth_bias_control ===
+        vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias2EXT" ) );
+
+        //=== VK_EXT_private_data ===
+        vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
+        if ( !vkCreatePrivateDataSlot )
+          vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
+        vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
+        if ( !vkDestroyPrivateDataSlot )
+          vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
+        vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
+        if ( !vkSetPrivateData )
+          vkSetPrivateData = vkSetPrivateDataEXT;
+        vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
+        if ( !vkGetPrivateData )
+          vkGetPrivateData = vkGetPrivateDataEXT;
+
+        //=== VK_KHR_video_encode_queue ===
+        vkGetEncodedVideoSessionParametersKHR =
+          PFN_vkGetEncodedVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkGetEncodedVideoSessionParametersKHR" ) );
+        vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+        //=== VK_NV_cuda_kernel_launch ===
+        vkCreateCudaModuleNV    = PFN_vkCreateCudaModuleNV( vkGetDeviceProcAddr( device, "vkCreateCudaModuleNV" ) );
+        vkGetCudaModuleCacheNV  = PFN_vkGetCudaModuleCacheNV( vkGetDeviceProcAddr( device, "vkGetCudaModuleCacheNV" ) );
+        vkCreateCudaFunctionNV  = PFN_vkCreateCudaFunctionNV( vkGetDeviceProcAddr( device, "vkCreateCudaFunctionNV" ) );
+        vkDestroyCudaModuleNV   = PFN_vkDestroyCudaModuleNV( vkGetDeviceProcAddr( device, "vkDestroyCudaModuleNV" ) );
+        vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetDeviceProcAddr( device, "vkDestroyCudaFunctionNV" ) );
+        vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetDeviceProcAddr( device, "vkCmdCudaLaunchKernelNV" ) );
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_METAL_EXT )
+        //=== VK_EXT_metal_objects ===
+        vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) );
+#  endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+        //=== VK_KHR_synchronization2 ===
+        vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
+        if ( !vkCmdSetEvent2 )
+          vkCmdSetEvent2 = vkCmdSetEvent2KHR;
+        vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
+        if ( !vkCmdResetEvent2 )
+          vkCmdResetEvent2 = vkCmdResetEvent2KHR;
+        vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
+        if ( !vkCmdWaitEvents2 )
+          vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
+        vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
+        if ( !vkCmdPipelineBarrier2 )
+          vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
+        vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
+        if ( !vkCmdWriteTimestamp2 )
+          vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
+        vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
+        if ( !vkQueueSubmit2 )
+          vkQueueSubmit2 = vkQueueSubmit2KHR;
+        vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
+        vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
+
+        //=== VK_EXT_descriptor_buffer ===
+        vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" ) );
+        vkGetDescriptorSetLayoutBindingOffsetEXT =
+          PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
+        vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" ) );
+        vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" ) );
+        vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
+        vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
+          PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
+        vkGetBufferOpaqueCaptureDescriptorDataEXT =
+          PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
+        vkGetImageOpaqueCaptureDescriptorDataEXT =
+          PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
+        vkGetImageViewOpaqueCaptureDescriptorDataEXT =
+          PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
+        vkGetSamplerOpaqueCaptureDescriptorDataEXT =
+          PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
+        vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
+          vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
+
+        //=== VK_NV_fragment_shading_rate_enums ===
+        vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
+
+        //=== VK_EXT_mesh_shader ===
+        vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) );
+        vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) );
+        vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
+
+        //=== VK_KHR_copy_commands2 ===
+        vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
+        if ( !vkCmdCopyBuffer2 )
+          vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
+        vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
+        if ( !vkCmdCopyImage2 )
+          vkCmdCopyImage2 = vkCmdCopyImage2KHR;
+        vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
+        if ( !vkCmdCopyBufferToImage2 )
+          vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
+        vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
+        if ( !vkCmdCopyImageToBuffer2 )
+          vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
+        vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
+        if ( !vkCmdBlitImage2 )
+          vkCmdBlitImage2 = vkCmdBlitImage2KHR;
+        vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
+        if ( !vkCmdResolveImage2 )
+          vkCmdResolveImage2 = vkCmdResolveImage2KHR;
+
+        //=== VK_EXT_device_fault ===
+        vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) );
+
+        //=== VK_EXT_vertex_input_dynamic_state ===
+        vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+        //=== VK_FUCHSIA_external_memory ===
+        vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
+        vkGetMemoryZirconHandlePropertiesFUCHSIA =
+          PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+        //=== VK_FUCHSIA_external_semaphore ===
+        vkImportSemaphoreZirconHandleFUCHSIA =
+          PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
+        vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+        //=== VK_FUCHSIA_buffer_collection ===
+        vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
+        vkSetBufferCollectionImageConstraintsFUCHSIA =
+          PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
+        vkSetBufferCollectionBufferConstraintsFUCHSIA =
+          PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
+        vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
+        vkGetBufferCollectionPropertiesFUCHSIA =
+          PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+        //=== VK_HUAWEI_subpass_shading ===
+        vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
+          PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
+        vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
+
+        //=== VK_HUAWEI_invocation_mask ===
+        vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
+
+        //=== VK_NV_external_memory_rdma ===
+        vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
+
+        //=== VK_EXT_pipeline_properties ===
+        vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) );
+
         //=== VK_EXT_extended_dynamic_state2 ===
         vkCmdSetPatchControlPointsEXT      = PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
         vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
@@ -984,6 +1548,74 @@
         if ( !vkCmdSetPrimitiveRestartEnable )
           vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
 
+        //=== VK_EXT_color_write_enable ===
+        vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
+
+        //=== VK_KHR_ray_tracing_maintenance1 ===
+        vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) );
+
+        //=== VK_EXT_multi_draw ===
+        vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
+        vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
+
+        //=== VK_EXT_opacity_micromap ===
+        vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" ) );
+        vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" ) );
+        vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" ) );
+        vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" ) );
+        vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" ) );
+        vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" ) );
+        vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" ) );
+        vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" ) );
+        vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" ) );
+        vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" ) );
+        vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" ) );
+        vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" ) );
+        vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) );
+        vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) );
+
+        //=== VK_HUAWEI_cluster_culling_shader ===
+        vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" ) );
+        vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" ) );
+
+        //=== VK_EXT_pageable_device_local_memory ===
+        vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
+
+        //=== VK_KHR_maintenance4 ===
+        vkGetDeviceBufferMemoryRequirementsKHR =
+          PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
+        if ( !vkGetDeviceBufferMemoryRequirements )
+          vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
+        vkGetDeviceImageMemoryRequirementsKHR =
+          PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
+        if ( !vkGetDeviceImageMemoryRequirements )
+          vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
+        vkGetDeviceImageSparseMemoryRequirementsKHR =
+          PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
+        if ( !vkGetDeviceImageSparseMemoryRequirements )
+          vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
+
+        //=== VK_VALVE_descriptor_set_host_mapping ===
+        vkGetDescriptorSetLayoutHostMappingInfoVALVE =
+          PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
+        vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) );
+
+        //=== VK_NV_copy_memory_indirect ===
+        vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" ) );
+        vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" ) );
+
+        //=== VK_NV_memory_decompression ===
+        vkCmdDecompressMemoryNV = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) );
+        vkCmdDecompressMemoryIndirectCountNV =
+          PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) );
+
+        //=== VK_NV_device_generated_commands_compute ===
+        vkGetPipelineIndirectMemoryRequirementsNV =
+          PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
+        vkCmdUpdatePipelineIndirectBufferNV = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetDeviceProcAddr( device, "vkCmdUpdatePipelineIndirectBufferNV" ) );
+        vkGetPipelineIndirectDeviceAddressNV =
+          PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectDeviceAddressNV" ) );
+
         //=== VK_EXT_extended_dynamic_state3 ===
         vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" ) );
         vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" ) );
@@ -1022,581 +1654,63 @@
           PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) );
         vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) );
 
-        //=== VK_EXT_external_memory_host ===
-        vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_EXT_full_screen_exclusive ===
-        vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
-        vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
-        vkGetDeviceGroupSurfacePresentModes2EXT =
-          PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_EXT_hdr_metadata ===
-        vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
-
-        //=== VK_EXT_host_query_reset ===
-        vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
-        if ( !vkResetQueryPool )
-          vkResetQueryPool = vkResetQueryPoolEXT;
-
-        //=== VK_EXT_image_compression_control ===
-        vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
-
-        //=== VK_EXT_image_drm_format_modifier ===
-        vkGetImageDrmFormatModifierPropertiesEXT =
-          PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
-
-        //=== VK_EXT_line_rasterization ===
-        vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
-
-        //=== VK_EXT_mesh_shader ===
-        vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) );
-        vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) );
-        vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
-
-#  if defined( VK_USE_PLATFORM_METAL_EXT )
-        //=== VK_EXT_metal_objects ===
-        vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) );
-#  endif /*VK_USE_PLATFORM_METAL_EXT*/
-
-        //=== VK_EXT_multi_draw ===
-        vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
-        vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
-
-        //=== VK_EXT_opacity_micromap ===
-        vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" ) );
-        vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" ) );
-        vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" ) );
-        vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" ) );
-        vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" ) );
-        vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" ) );
-        vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" ) );
-        vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" ) );
-        vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" ) );
-        vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" ) );
-        vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" ) );
-        vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" ) );
-        vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) );
-        vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) );
-
-        //=== VK_EXT_pageable_device_local_memory ===
-        vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
-
-        //=== VK_EXT_pipeline_properties ===
-        vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) );
-
-        //=== VK_EXT_private_data ===
-        vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
-        if ( !vkCreatePrivateDataSlot )
-          vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
-        vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
-        if ( !vkDestroyPrivateDataSlot )
-          vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
-        vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
-        if ( !vkSetPrivateData )
-          vkSetPrivateData = vkSetPrivateDataEXT;
-        vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
-        if ( !vkGetPrivateData )
-          vkGetPrivateData = vkGetPrivateDataEXT;
-
-        //=== VK_EXT_sample_locations ===
-        vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
-
         //=== VK_EXT_shader_module_identifier ===
         vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) );
         vkGetShaderModuleCreateInfoIdentifierEXT =
           PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
 
-        //=== VK_EXT_swapchain_maintenance1 ===
-        vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) );
-
-        //=== VK_EXT_transform_feedback ===
-        vkCmdBindTransformFeedbackBuffersEXT =
-          PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
-        vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
-        vkCmdEndTransformFeedbackEXT   = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
-        vkCmdBeginQueryIndexedEXT      = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
-        vkCmdEndQueryIndexedEXT        = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
-        vkCmdDrawIndirectByteCountEXT  = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
-
-        //=== VK_EXT_validation_cache ===
-        vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
-        vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
-        vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
-        vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
-
-        //=== VK_EXT_vertex_input_dynamic_state ===
-        vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-        //=== VK_FUCHSIA_buffer_collection ===
-        vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
-        vkSetBufferCollectionImageConstraintsFUCHSIA =
-          PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
-        vkSetBufferCollectionBufferConstraintsFUCHSIA =
-          PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
-        vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
-        vkGetBufferCollectionPropertiesFUCHSIA =
-          PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-        //=== VK_FUCHSIA_external_memory ===
-        vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
-        vkGetMemoryZirconHandlePropertiesFUCHSIA =
-          PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-        //=== VK_FUCHSIA_external_semaphore ===
-        vkImportSemaphoreZirconHandleFUCHSIA =
-          PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
-        vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-        //=== VK_GOOGLE_display_timing ===
-        vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
-        vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
-
-        //=== VK_HUAWEI_invocation_mask ===
-        vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
-
-        //=== VK_HUAWEI_subpass_shading ===
-        vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
-          PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
-        vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
-
-        //=== VK_INTEL_performance_query ===
-        vkInitializePerformanceApiINTEL   = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
-        vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
-        vkCmdSetPerformanceMarkerINTEL    = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
-        vkCmdSetPerformanceStreamMarkerINTEL =
-          PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
-        vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
-        vkAcquirePerformanceConfigurationINTEL =
-          PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
-        vkReleasePerformanceConfigurationINTEL =
-          PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
-        vkQueueSetPerformanceConfigurationINTEL =
-          PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
-        vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
-
-        //=== VK_KHR_acceleration_structure ===
-        vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
-        vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
-        vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
-        vkCmdBuildAccelerationStructuresIndirectKHR =
-          PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
-        vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
-        vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
-        vkCopyAccelerationStructureToMemoryKHR =
-          PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
-        vkCopyMemoryToAccelerationStructureKHR =
-          PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
-        vkWriteAccelerationStructuresPropertiesKHR =
-          PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
-        vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
-        vkCmdCopyAccelerationStructureToMemoryKHR =
-          PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
-        vkCmdCopyMemoryToAccelerationStructureKHR =
-          PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
-        vkGetAccelerationStructureDeviceAddressKHR =
-          PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
-        vkCmdWriteAccelerationStructuresPropertiesKHR =
-          PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
-        vkGetDeviceAccelerationStructureCompatibilityKHR =
-          PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
-        vkGetAccelerationStructureBuildSizesKHR =
-          PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
-
-        //=== VK_KHR_bind_memory2 ===
-        vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
-        if ( !vkBindBufferMemory2 )
-          vkBindBufferMemory2 = vkBindBufferMemory2KHR;
-        vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
-        if ( !vkBindImageMemory2 )
-          vkBindImageMemory2 = vkBindImageMemory2KHR;
-
-        //=== VK_KHR_buffer_device_address ===
-        vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
-        if ( !vkGetBufferDeviceAddress )
-          vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
-        vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
-        if ( !vkGetBufferOpaqueCaptureAddress )
-          vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
-        vkGetDeviceMemoryOpaqueCaptureAddressKHR =
-          PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
-        if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
-          vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
-
-        //=== VK_KHR_copy_commands2 ===
-        vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
-        if ( !vkCmdCopyBuffer2 )
-          vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
-        vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
-        if ( !vkCmdCopyImage2 )
-          vkCmdCopyImage2 = vkCmdCopyImage2KHR;
-        vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
-        if ( !vkCmdCopyBufferToImage2 )
-          vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
-        vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
-        if ( !vkCmdCopyImageToBuffer2 )
-          vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
-        vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
-        if ( !vkCmdBlitImage2 )
-          vkCmdBlitImage2 = vkCmdBlitImage2KHR;
-        vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
-        if ( !vkCmdResolveImage2 )
-          vkCmdResolveImage2 = vkCmdResolveImage2KHR;
-
-        //=== VK_KHR_create_renderpass2 ===
-        vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
-        if ( !vkCreateRenderPass2 )
-          vkCreateRenderPass2 = vkCreateRenderPass2KHR;
-        vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
-        if ( !vkCmdBeginRenderPass2 )
-          vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
-        vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
-        if ( !vkCmdNextSubpass2 )
-          vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
-        vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
-        if ( !vkCmdEndRenderPass2 )
-          vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
-
-        //=== VK_KHR_deferred_host_operations ===
-        vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
-        vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
-        vkGetDeferredOperationMaxConcurrencyKHR =
-          PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
-        vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
-        vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
-
-        //=== VK_KHR_descriptor_update_template ===
-        vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
-        if ( !vkCreateDescriptorUpdateTemplate )
-          vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
-        vkDestroyDescriptorUpdateTemplateKHR =
-          PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
-        if ( !vkDestroyDescriptorUpdateTemplate )
-          vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
-        vkUpdateDescriptorSetWithTemplateKHR =
-          PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
-        if ( !vkUpdateDescriptorSetWithTemplate )
-          vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
-        vkCmdPushDescriptorSetWithTemplateKHR =
-          PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
-
-        //=== VK_KHR_device_group ===
-        vkGetDeviceGroupPeerMemoryFeaturesKHR =
-          PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
-        if ( !vkGetDeviceGroupPeerMemoryFeatures )
-          vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
-        vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
-        if ( !vkCmdSetDeviceMask )
-          vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
-        vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
-        if ( !vkCmdDispatchBase )
-          vkCmdDispatchBase = vkCmdDispatchBaseKHR;
-        vkGetDeviceGroupPresentCapabilitiesKHR =
-          PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
-        vkGetDeviceGroupSurfacePresentModesKHR =
-          PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
-        vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
-
-        //=== VK_KHR_display_swapchain ===
-        vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
-
-        //=== VK_KHR_draw_indirect_count ===
-        vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
-        if ( !vkCmdDrawIndirectCount )
-          vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
-        vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
-        if ( !vkCmdDrawIndexedIndirectCount )
-          vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
-
-        //=== VK_KHR_dynamic_rendering ===
-        vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
-        if ( !vkCmdBeginRendering )
-          vkCmdBeginRendering = vkCmdBeginRenderingKHR;
-        vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
-        if ( !vkCmdEndRendering )
-          vkCmdEndRendering = vkCmdEndRenderingKHR;
-
-        //=== VK_KHR_external_fence_fd ===
-        vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
-        vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_KHR_external_fence_win32 ===
-        vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
-        vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_KHR_external_memory_fd ===
-        vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
-        vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_KHR_external_memory_win32 ===
-        vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
-        vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_KHR_external_semaphore_fd ===
-        vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
-        vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_KHR_external_semaphore_win32 ===
-        vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
-        vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_KHR_fragment_shading_rate ===
-        vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
-
-        //=== VK_KHR_get_memory_requirements2 ===
-        vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
-        if ( !vkGetImageMemoryRequirements2 )
-          vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
-        vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
-        if ( !vkGetBufferMemoryRequirements2 )
-          vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
-        vkGetImageSparseMemoryRequirements2KHR =
-          PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
-        if ( !vkGetImageSparseMemoryRequirements2 )
-          vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
-
-        //=== VK_KHR_maintenance1 ===
-        vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
-        if ( !vkTrimCommandPool )
-          vkTrimCommandPool = vkTrimCommandPoolKHR;
-
-        //=== VK_KHR_maintenance3 ===
-        vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
-        if ( !vkGetDescriptorSetLayoutSupport )
-          vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
-
-        //=== VK_KHR_maintenance4 ===
-        vkGetDeviceBufferMemoryRequirementsKHR =
-          PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
-        if ( !vkGetDeviceBufferMemoryRequirements )
-          vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
-        vkGetDeviceImageMemoryRequirementsKHR =
-          PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
-        if ( !vkGetDeviceImageMemoryRequirements )
-          vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
-        vkGetDeviceImageSparseMemoryRequirementsKHR =
-          PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
-        if ( !vkGetDeviceImageSparseMemoryRequirements )
-          vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
-
-        //=== VK_KHR_performance_query ===
-        vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
-        vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
-
-        //=== VK_KHR_pipeline_executable_properties ===
-        vkGetPipelineExecutablePropertiesKHR =
-          PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
-        vkGetPipelineExecutableStatisticsKHR =
-          PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
-        vkGetPipelineExecutableInternalRepresentationsKHR =
-          PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
-
-        //=== VK_KHR_present_wait ===
-        vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
-
-        //=== VK_KHR_push_descriptor ===
-        vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
-
-        //=== VK_KHR_ray_tracing_maintenance1 ===
-        vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) );
-
-        //=== VK_KHR_ray_tracing_pipeline ===
-        vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
-        vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
-        vkGetRayTracingShaderGroupHandlesKHR =
-          PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
-        vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
-          PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
-        vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
-        vkGetRayTracingShaderGroupStackSizeKHR =
-          PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
-        vkCmdSetRayTracingPipelineStackSizeKHR =
-          PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
-
-        //=== VK_KHR_sampler_ycbcr_conversion ===
-        vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
-        if ( !vkCreateSamplerYcbcrConversion )
-          vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
-        vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
-        if ( !vkDestroySamplerYcbcrConversion )
-          vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
-
-        //=== VK_KHR_shared_presentable_image ===
-        vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
-
-        //=== VK_KHR_swapchain ===
-        vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
-        vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
-        vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
-        vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
-        vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
-
-        //=== VK_KHR_synchronization2 ===
-        vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
-        if ( !vkCmdSetEvent2 )
-          vkCmdSetEvent2 = vkCmdSetEvent2KHR;
-        vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
-        if ( !vkCmdResetEvent2 )
-          vkCmdResetEvent2 = vkCmdResetEvent2KHR;
-        vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
-        if ( !vkCmdWaitEvents2 )
-          vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
-        vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
-        if ( !vkCmdPipelineBarrier2 )
-          vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
-        vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
-        if ( !vkCmdWriteTimestamp2 )
-          vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
-        vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
-        if ( !vkQueueSubmit2 )
-          vkQueueSubmit2 = vkQueueSubmit2KHR;
-        vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
-        vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
-
-        //=== VK_KHR_timeline_semaphore ===
-        vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
-        if ( !vkGetSemaphoreCounterValue )
-          vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
-        vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
-        if ( !vkWaitSemaphores )
-          vkWaitSemaphores = vkWaitSemaphoresKHR;
-        vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
-        if ( !vkSignalSemaphore )
-          vkSignalSemaphore = vkSignalSemaphoreKHR;
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-        //=== VK_KHR_video_decode_queue ===
-        vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-        //=== VK_KHR_video_encode_queue ===
-        vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-        //=== VK_KHR_video_queue ===
-        vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
-        vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
-        vkGetVideoSessionMemoryRequirementsKHR =
-          PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
-        vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
-        vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
-        vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
-        vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
-        vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
-        vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
-        vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-        //=== VK_NVX_binary_import ===
-        vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
-        vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
-        vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
-        vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
-        vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
-
-        //=== VK_NVX_image_view_handle ===
-        vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
-        vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
-
-        //=== VK_NV_clip_space_w_scaling ===
-        vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
-
-        //=== VK_NV_copy_memory_indirect ===
-        vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" ) );
-        vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" ) );
-
-        //=== VK_NV_device_diagnostic_checkpoints ===
-        vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
-        vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
-
-        //=== VK_NV_device_generated_commands ===
-        vkGetGeneratedCommandsMemoryRequirementsNV =
-          PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
-        vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
-        vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
-        vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
-        vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
-        vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
-
-        //=== VK_NV_external_memory_rdma ===
-        vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-        //=== VK_NV_external_memory_win32 ===
-        vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-        //=== VK_NV_fragment_shading_rate_enums ===
-        vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
-
-        //=== VK_NV_memory_decompression ===
-        vkCmdDecompressMemoryNV = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) );
-        vkCmdDecompressMemoryIndirectCountNV =
-          PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) );
-
-        //=== VK_NV_mesh_shader ===
-        vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
-        vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
-        vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
-
         //=== VK_NV_optical_flow ===
         vkCreateOpticalFlowSessionNV    = PFN_vkCreateOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkCreateOpticalFlowSessionNV" ) );
         vkDestroyOpticalFlowSessionNV   = PFN_vkDestroyOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkDestroyOpticalFlowSessionNV" ) );
         vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" ) );
         vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" ) );
 
-        //=== VK_NV_ray_tracing ===
-        vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
-        vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
-        vkGetAccelerationStructureMemoryRequirementsNV =
-          PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
-        vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
-        vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
-        vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
-        vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
-        vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
-        vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
-        if ( !vkGetRayTracingShaderGroupHandlesKHR )
-          vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
-        vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
-        vkCmdWriteAccelerationStructuresPropertiesNV =
-          PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
-        vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+        //=== VK_KHR_maintenance5 ===
+        vkCmdBindIndexBuffer2KHR         = PFN_vkCmdBindIndexBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer2KHR" ) );
+        vkGetRenderingAreaGranularityKHR = PFN_vkGetRenderingAreaGranularityKHR( vkGetDeviceProcAddr( device, "vkGetRenderingAreaGranularityKHR" ) );
+        vkGetDeviceImageSubresourceLayoutKHR =
+          PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSubresourceLayoutKHR" ) );
+        vkGetImageSubresourceLayout2KHR = PFN_vkGetImageSubresourceLayout2KHR( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2KHR" ) );
 
-        //=== VK_NV_scissor_exclusive ===
-        vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
-
-        //=== VK_NV_shading_rate_image ===
-        vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
-        vkCmdSetViewportShadingRatePaletteNV =
-          PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
-        vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
+        //=== VK_EXT_shader_object ===
+        vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
+        vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
+        vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
+        vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
 
         //=== VK_QCOM_tile_properties ===
         vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
         vkGetDynamicRenderingTilePropertiesQCOM =
           PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
 
-        //=== VK_VALVE_descriptor_set_host_mapping ===
-        vkGetDescriptorSetLayoutHostMappingInfoVALVE =
-          PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
-        vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) );
+        //=== VK_NV_low_latency2 ===
+        vkSetLatencySleepModeNV  = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) );
+        vkLatencySleepNV         = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) );
+        vkSetLatencyMarkerNV     = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) );
+        vkGetLatencyTimingsNV    = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) );
+        vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) );
+
+        //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+        vkCmdSetAttachmentFeedbackLoopEnableEXT =
+          PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+        //=== VK_QNX_external_memory_screen_buffer ===
+        vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetDeviceProcAddr( device, "vkGetScreenBufferPropertiesQNX" ) );
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+        //=== VK_KHR_calibrated_timestamps ===
+        vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsKHR" ) );
+
+        //=== VK_KHR_maintenance6 ===
+        vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets2KHR" ) );
+        vkCmdPushConstants2KHR      = PFN_vkCmdPushConstants2KHR( vkGetDeviceProcAddr( device, "vkCmdPushConstants2KHR" ) );
+        vkCmdPushDescriptorSet2KHR  = PFN_vkCmdPushDescriptorSet2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSet2KHR" ) );
+        vkCmdPushDescriptorSetWithTemplate2KHR =
+          PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplate2KHR" ) );
+        vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
+        vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
+          PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
       }
 
     public:
@@ -1794,11 +1908,59 @@
       PFN_vkGetDeviceImageMemoryRequirements       vkGetDeviceImageMemoryRequirements       = 0;
       PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0;
 
-      //=== VK_AMD_buffer_marker ===
-      PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
+      //=== VK_KHR_swapchain ===
+      PFN_vkCreateSwapchainKHR                   vkCreateSwapchainKHR                   = 0;
+      PFN_vkDestroySwapchainKHR                  vkDestroySwapchainKHR                  = 0;
+      PFN_vkGetSwapchainImagesKHR                vkGetSwapchainImagesKHR                = 0;
+      PFN_vkAcquireNextImageKHR                  vkAcquireNextImageKHR                  = 0;
+      PFN_vkQueuePresentKHR                      vkQueuePresentKHR                      = 0;
+      PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
+      PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
+      PFN_vkAcquireNextImage2KHR                 vkAcquireNextImage2KHR                 = 0;
 
-      //=== VK_AMD_display_native_hdr ===
-      PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
+      //=== VK_KHR_display_swapchain ===
+      PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
+
+      //=== VK_EXT_debug_marker ===
+      PFN_vkDebugMarkerSetObjectTagEXT  vkDebugMarkerSetObjectTagEXT  = 0;
+      PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
+      PFN_vkCmdDebugMarkerBeginEXT      vkCmdDebugMarkerBeginEXT      = 0;
+      PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
+      PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
+
+      //=== VK_KHR_video_queue ===
+      PFN_vkCreateVideoSessionKHR                vkCreateVideoSessionKHR                = 0;
+      PFN_vkDestroyVideoSessionKHR               vkDestroyVideoSessionKHR               = 0;
+      PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
+      PFN_vkBindVideoSessionMemoryKHR            vkBindVideoSessionMemoryKHR            = 0;
+      PFN_vkCreateVideoSessionParametersKHR      vkCreateVideoSessionParametersKHR      = 0;
+      PFN_vkUpdateVideoSessionParametersKHR      vkUpdateVideoSessionParametersKHR      = 0;
+      PFN_vkDestroyVideoSessionParametersKHR     vkDestroyVideoSessionParametersKHR     = 0;
+      PFN_vkCmdBeginVideoCodingKHR               vkCmdBeginVideoCodingKHR               = 0;
+      PFN_vkCmdEndVideoCodingKHR                 vkCmdEndVideoCodingKHR                 = 0;
+      PFN_vkCmdControlVideoCodingKHR             vkCmdControlVideoCodingKHR             = 0;
+
+      //=== VK_KHR_video_decode_queue ===
+      PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
+
+      //=== VK_EXT_transform_feedback ===
+      PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
+      PFN_vkCmdBeginTransformFeedbackEXT       vkCmdBeginTransformFeedbackEXT       = 0;
+      PFN_vkCmdEndTransformFeedbackEXT         vkCmdEndTransformFeedbackEXT         = 0;
+      PFN_vkCmdBeginQueryIndexedEXT            vkCmdBeginQueryIndexedEXT            = 0;
+      PFN_vkCmdEndQueryIndexedEXT              vkCmdEndQueryIndexedEXT              = 0;
+      PFN_vkCmdDrawIndirectByteCountEXT        vkCmdDrawIndirectByteCountEXT        = 0;
+
+      //=== VK_NVX_binary_import ===
+      PFN_vkCreateCuModuleNVX    vkCreateCuModuleNVX    = 0;
+      PFN_vkCreateCuFunctionNVX  vkCreateCuFunctionNVX  = 0;
+      PFN_vkDestroyCuModuleNVX   vkDestroyCuModuleNVX   = 0;
+      PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
+      PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
+
+      //=== VK_NVX_image_view_handle ===
+      PFN_vkGetImageViewHandleNVX  vkGetImageViewHandleNVX  = 0;
+      PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
 
       //=== VK_AMD_draw_indirect_count ===
       PFN_vkCmdDrawIndirectCountAMD        vkCmdDrawIndirectCountAMD        = 0;
@@ -1807,34 +1969,110 @@
       //=== VK_AMD_shader_info ===
       PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
 
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
-      //=== VK_ANDROID_external_memory_android_hardware_buffer ===
-      PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
-      PFN_vkGetMemoryAndroidHardwareBufferANDROID     vkGetMemoryAndroidHardwareBufferANDROID     = 0;
+      //=== VK_KHR_dynamic_rendering ===
+      PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
+      PFN_vkCmdEndRenderingKHR   vkCmdEndRenderingKHR   = 0;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_NV_external_memory_win32 ===
+      PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
 #  else
-      PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder       = 0;
-      PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder           = 0;
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      PFN_dummy vkGetMemoryWin32HandleNV_placeholder                          = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-      //=== VK_EXT_buffer_device_address ===
-      PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
+      //=== VK_KHR_device_group ===
+      PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
+      PFN_vkCmdSetDeviceMaskKHR                 vkCmdSetDeviceMaskKHR                 = 0;
+      PFN_vkCmdDispatchBaseKHR                  vkCmdDispatchBaseKHR                  = 0;
 
-      //=== VK_EXT_calibrated_timestamps ===
-      PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
+      //=== VK_KHR_maintenance1 ===
+      PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
 
-      //=== VK_EXT_color_write_enable ===
-      PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_KHR_external_memory_win32 ===
+      PFN_vkGetMemoryWin32HandleKHR           vkGetMemoryWin32HandleKHR           = 0;
+      PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
+#  else
+      PFN_dummy vkGetMemoryWin32HandleKHR_placeholder                         = 0;
+      PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder               = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_KHR_external_memory_fd ===
+      PFN_vkGetMemoryFdKHR           vkGetMemoryFdKHR           = 0;
+      PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_KHR_external_semaphore_win32 ===
+      PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
+      PFN_vkGetSemaphoreWin32HandleKHR    vkGetSemaphoreWin32HandleKHR    = 0;
+#  else
+      PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder                   = 0;
+      PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder                      = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_KHR_external_semaphore_fd ===
+      PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
+      PFN_vkGetSemaphoreFdKHR    vkGetSemaphoreFdKHR    = 0;
+
+      //=== VK_KHR_push_descriptor ===
+      PFN_vkCmdPushDescriptorSetKHR             vkCmdPushDescriptorSetKHR             = 0;
+      PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
 
       //=== VK_EXT_conditional_rendering ===
       PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
       PFN_vkCmdEndConditionalRenderingEXT   vkCmdEndConditionalRenderingEXT   = 0;
 
-      //=== VK_EXT_debug_marker ===
-      PFN_vkDebugMarkerSetObjectTagEXT  vkDebugMarkerSetObjectTagEXT  = 0;
-      PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
-      PFN_vkCmdDebugMarkerBeginEXT      vkCmdDebugMarkerBeginEXT      = 0;
-      PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
-      PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
+      //=== VK_KHR_descriptor_update_template ===
+      PFN_vkCreateDescriptorUpdateTemplateKHR  vkCreateDescriptorUpdateTemplateKHR  = 0;
+      PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
+      PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
+
+      //=== VK_NV_clip_space_w_scaling ===
+      PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
+
+      //=== VK_EXT_display_control ===
+      PFN_vkDisplayPowerControlEXT  vkDisplayPowerControlEXT  = 0;
+      PFN_vkRegisterDeviceEventEXT  vkRegisterDeviceEventEXT  = 0;
+      PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
+      PFN_vkGetSwapchainCounterEXT  vkGetSwapchainCounterEXT  = 0;
+
+      //=== VK_GOOGLE_display_timing ===
+      PFN_vkGetRefreshCycleDurationGOOGLE   vkGetRefreshCycleDurationGOOGLE   = 0;
+      PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
+
+      //=== VK_EXT_discard_rectangles ===
+      PFN_vkCmdSetDiscardRectangleEXT       vkCmdSetDiscardRectangleEXT       = 0;
+      PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT = 0;
+      PFN_vkCmdSetDiscardRectangleModeEXT   vkCmdSetDiscardRectangleModeEXT   = 0;
+
+      //=== VK_EXT_hdr_metadata ===
+      PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
+
+      //=== VK_KHR_create_renderpass2 ===
+      PFN_vkCreateRenderPass2KHR   vkCreateRenderPass2KHR   = 0;
+      PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
+      PFN_vkCmdNextSubpass2KHR     vkCmdNextSubpass2KHR     = 0;
+      PFN_vkCmdEndRenderPass2KHR   vkCmdEndRenderPass2KHR   = 0;
+
+      //=== VK_KHR_shared_presentable_image ===
+      PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_KHR_external_fence_win32 ===
+      PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
+      PFN_vkGetFenceWin32HandleKHR    vkGetFenceWin32HandleKHR    = 0;
+#  else
+      PFN_dummy vkImportFenceWin32HandleKHR_placeholder                       = 0;
+      PFN_dummy vkGetFenceWin32HandleKHR_placeholder                          = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_KHR_external_fence_fd ===
+      PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
+      PFN_vkGetFenceFdKHR    vkGetFenceFdKHR    = 0;
+
+      //=== VK_KHR_performance_query ===
+      PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
+      PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
 
       //=== VK_EXT_debug_utils ===
       PFN_vkSetDebugUtilsObjectNameEXT    vkSetDebugUtilsObjectNameEXT    = 0;
@@ -1846,30 +2084,183 @@
       PFN_vkCmdEndDebugUtilsLabelEXT      vkCmdEndDebugUtilsLabelEXT      = 0;
       PFN_vkCmdInsertDebugUtilsLabelEXT   vkCmdInsertDebugUtilsLabelEXT   = 0;
 
-      //=== VK_EXT_descriptor_buffer ===
-      PFN_vkGetDescriptorSetLayoutSizeEXT                          vkGetDescriptorSetLayoutSizeEXT                          = 0;
-      PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 vkGetDescriptorSetLayoutBindingOffsetEXT                 = 0;
-      PFN_vkGetDescriptorEXT                                       vkGetDescriptorEXT                                       = 0;
-      PFN_vkCmdBindDescriptorBuffersEXT                            vkCmdBindDescriptorBuffersEXT                            = 0;
-      PFN_vkCmdSetDescriptorBufferOffsetsEXT                       vkCmdSetDescriptorBufferOffsetsEXT                       = 0;
-      PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = 0;
-      PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                vkGetBufferOpaqueCaptureDescriptorDataEXT                = 0;
-      PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 vkGetImageOpaqueCaptureDescriptorDataEXT                 = 0;
-      PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             vkGetImageViewOpaqueCaptureDescriptorDataEXT             = 0;
-      PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               vkGetSamplerOpaqueCaptureDescriptorDataEXT               = 0;
-      PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = 0;
+#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+      PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
+      PFN_vkGetMemoryAndroidHardwareBufferANDROID     vkGetMemoryAndroidHardwareBufferANDROID     = 0;
+#  else
+      PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder       = 0;
+      PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder           = 0;
+#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
-      //=== VK_EXT_device_fault ===
-      PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0;
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
+      PFN_vkCreateExecutionGraphPipelinesAMDX        vkCreateExecutionGraphPipelinesAMDX        = 0;
+      PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX = 0;
+      PFN_vkGetExecutionGraphPipelineNodeIndexAMDX   vkGetExecutionGraphPipelineNodeIndexAMDX   = 0;
+      PFN_vkCmdInitializeGraphScratchMemoryAMDX      vkCmdInitializeGraphScratchMemoryAMDX      = 0;
+      PFN_vkCmdDispatchGraphAMDX                     vkCmdDispatchGraphAMDX                     = 0;
+      PFN_vkCmdDispatchGraphIndirectAMDX             vkCmdDispatchGraphIndirectAMDX             = 0;
+      PFN_vkCmdDispatchGraphIndirectCountAMDX        vkCmdDispatchGraphIndirectCountAMDX        = 0;
+#  else
+      PFN_dummy vkCreateExecutionGraphPipelinesAMDX_placeholder               = 0;
+      PFN_dummy vkGetExecutionGraphPipelineScratchSizeAMDX_placeholder        = 0;
+      PFN_dummy vkGetExecutionGraphPipelineNodeIndexAMDX_placeholder          = 0;
+      PFN_dummy vkCmdInitializeGraphScratchMemoryAMDX_placeholder             = 0;
+      PFN_dummy vkCmdDispatchGraphAMDX_placeholder                            = 0;
+      PFN_dummy vkCmdDispatchGraphIndirectAMDX_placeholder                    = 0;
+      PFN_dummy vkCmdDispatchGraphIndirectCountAMDX_placeholder               = 0;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-      //=== VK_EXT_discard_rectangles ===
-      PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
+      //=== VK_EXT_sample_locations ===
+      PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
 
-      //=== VK_EXT_display_control ===
-      PFN_vkDisplayPowerControlEXT  vkDisplayPowerControlEXT  = 0;
-      PFN_vkRegisterDeviceEventEXT  vkRegisterDeviceEventEXT  = 0;
-      PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
-      PFN_vkGetSwapchainCounterEXT  vkGetSwapchainCounterEXT  = 0;
+      //=== VK_KHR_get_memory_requirements2 ===
+      PFN_vkGetImageMemoryRequirements2KHR       vkGetImageMemoryRequirements2KHR       = 0;
+      PFN_vkGetBufferMemoryRequirements2KHR      vkGetBufferMemoryRequirements2KHR      = 0;
+      PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
+
+      //=== VK_KHR_acceleration_structure ===
+      PFN_vkCreateAccelerationStructureKHR                 vkCreateAccelerationStructureKHR                 = 0;
+      PFN_vkDestroyAccelerationStructureKHR                vkDestroyAccelerationStructureKHR                = 0;
+      PFN_vkCmdBuildAccelerationStructuresKHR              vkCmdBuildAccelerationStructuresKHR              = 0;
+      PFN_vkCmdBuildAccelerationStructuresIndirectKHR      vkCmdBuildAccelerationStructuresIndirectKHR      = 0;
+      PFN_vkBuildAccelerationStructuresKHR                 vkBuildAccelerationStructuresKHR                 = 0;
+      PFN_vkCopyAccelerationStructureKHR                   vkCopyAccelerationStructureKHR                   = 0;
+      PFN_vkCopyAccelerationStructureToMemoryKHR           vkCopyAccelerationStructureToMemoryKHR           = 0;
+      PFN_vkCopyMemoryToAccelerationStructureKHR           vkCopyMemoryToAccelerationStructureKHR           = 0;
+      PFN_vkWriteAccelerationStructuresPropertiesKHR       vkWriteAccelerationStructuresPropertiesKHR       = 0;
+      PFN_vkCmdCopyAccelerationStructureKHR                vkCmdCopyAccelerationStructureKHR                = 0;
+      PFN_vkCmdCopyAccelerationStructureToMemoryKHR        vkCmdCopyAccelerationStructureToMemoryKHR        = 0;
+      PFN_vkCmdCopyMemoryToAccelerationStructureKHR        vkCmdCopyMemoryToAccelerationStructureKHR        = 0;
+      PFN_vkGetAccelerationStructureDeviceAddressKHR       vkGetAccelerationStructureDeviceAddressKHR       = 0;
+      PFN_vkCmdWriteAccelerationStructuresPropertiesKHR    vkCmdWriteAccelerationStructuresPropertiesKHR    = 0;
+      PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
+      PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
+
+      //=== VK_KHR_ray_tracing_pipeline ===
+      PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
+      PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
+      PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
+      PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
+      PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
+      PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
+      PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
+
+      //=== VK_KHR_sampler_ycbcr_conversion ===
+      PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
+      PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
+
+      //=== VK_KHR_bind_memory2 ===
+      PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
+      PFN_vkBindImageMemory2KHR  vkBindImageMemory2KHR  = 0;
+
+      //=== VK_EXT_image_drm_format_modifier ===
+      PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
+
+      //=== VK_EXT_validation_cache ===
+      PFN_vkCreateValidationCacheEXT  vkCreateValidationCacheEXT  = 0;
+      PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
+      PFN_vkMergeValidationCachesEXT  vkMergeValidationCachesEXT  = 0;
+      PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
+
+      //=== VK_NV_shading_rate_image ===
+      PFN_vkCmdBindShadingRateImageNV          vkCmdBindShadingRateImageNV          = 0;
+      PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
+      PFN_vkCmdSetCoarseSampleOrderNV          vkCmdSetCoarseSampleOrderNV          = 0;
+
+      //=== VK_NV_ray_tracing ===
+      PFN_vkCreateAccelerationStructureNV                vkCreateAccelerationStructureNV                = 0;
+      PFN_vkDestroyAccelerationStructureNV               vkDestroyAccelerationStructureNV               = 0;
+      PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
+      PFN_vkBindAccelerationStructureMemoryNV            vkBindAccelerationStructureMemoryNV            = 0;
+      PFN_vkCmdBuildAccelerationStructureNV              vkCmdBuildAccelerationStructureNV              = 0;
+      PFN_vkCmdCopyAccelerationStructureNV               vkCmdCopyAccelerationStructureNV               = 0;
+      PFN_vkCmdTraceRaysNV                               vkCmdTraceRaysNV                               = 0;
+      PFN_vkCreateRayTracingPipelinesNV                  vkCreateRayTracingPipelinesNV                  = 0;
+      PFN_vkGetRayTracingShaderGroupHandlesNV            vkGetRayTracingShaderGroupHandlesNV            = 0;
+      PFN_vkGetAccelerationStructureHandleNV             vkGetAccelerationStructureHandleNV             = 0;
+      PFN_vkCmdWriteAccelerationStructuresPropertiesNV   vkCmdWriteAccelerationStructuresPropertiesNV   = 0;
+      PFN_vkCompileDeferredNV                            vkCompileDeferredNV                            = 0;
+
+      //=== VK_KHR_maintenance3 ===
+      PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
+
+      //=== VK_KHR_draw_indirect_count ===
+      PFN_vkCmdDrawIndirectCountKHR        vkCmdDrawIndirectCountKHR        = 0;
+      PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
+
+      //=== VK_EXT_external_memory_host ===
+      PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
+
+      //=== VK_AMD_buffer_marker ===
+      PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
+
+      //=== VK_EXT_calibrated_timestamps ===
+      PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
+
+      //=== VK_NV_mesh_shader ===
+      PFN_vkCmdDrawMeshTasksNV              vkCmdDrawMeshTasksNV              = 0;
+      PFN_vkCmdDrawMeshTasksIndirectNV      vkCmdDrawMeshTasksIndirectNV      = 0;
+      PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
+
+      //=== VK_NV_scissor_exclusive ===
+      PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV = 0;
+      PFN_vkCmdSetExclusiveScissorNV       vkCmdSetExclusiveScissorNV       = 0;
+
+      //=== VK_NV_device_diagnostic_checkpoints ===
+      PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
+      PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
+
+      //=== VK_KHR_timeline_semaphore ===
+      PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
+      PFN_vkWaitSemaphoresKHR           vkWaitSemaphoresKHR           = 0;
+      PFN_vkSignalSemaphoreKHR          vkSignalSemaphoreKHR          = 0;
+
+      //=== VK_INTEL_performance_query ===
+      PFN_vkInitializePerformanceApiINTEL         vkInitializePerformanceApiINTEL         = 0;
+      PFN_vkUninitializePerformanceApiINTEL       vkUninitializePerformanceApiINTEL       = 0;
+      PFN_vkCmdSetPerformanceMarkerINTEL          vkCmdSetPerformanceMarkerINTEL          = 0;
+      PFN_vkCmdSetPerformanceStreamMarkerINTEL    vkCmdSetPerformanceStreamMarkerINTEL    = 0;
+      PFN_vkCmdSetPerformanceOverrideINTEL        vkCmdSetPerformanceOverrideINTEL        = 0;
+      PFN_vkAcquirePerformanceConfigurationINTEL  vkAcquirePerformanceConfigurationINTEL  = 0;
+      PFN_vkReleasePerformanceConfigurationINTEL  vkReleasePerformanceConfigurationINTEL  = 0;
+      PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
+      PFN_vkGetPerformanceParameterINTEL          vkGetPerformanceParameterINTEL          = 0;
+
+      //=== VK_AMD_display_native_hdr ===
+      PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
+
+      //=== VK_KHR_fragment_shading_rate ===
+      PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
+
+      //=== VK_EXT_buffer_device_address ===
+      PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
+
+      //=== VK_KHR_present_wait ===
+      PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
+
+#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+      //=== VK_EXT_full_screen_exclusive ===
+      PFN_vkAcquireFullScreenExclusiveModeEXT     vkAcquireFullScreenExclusiveModeEXT     = 0;
+      PFN_vkReleaseFullScreenExclusiveModeEXT     vkReleaseFullScreenExclusiveModeEXT     = 0;
+      PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
+#  else
+      PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder               = 0;
+      PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder               = 0;
+      PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder           = 0;
+#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+      //=== VK_KHR_buffer_device_address ===
+      PFN_vkGetBufferDeviceAddressKHR              vkGetBufferDeviceAddressKHR              = 0;
+      PFN_vkGetBufferOpaqueCaptureAddressKHR       vkGetBufferOpaqueCaptureAddressKHR       = 0;
+      PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
+
+      //=== VK_EXT_line_rasterization ===
+      PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
+
+      //=== VK_EXT_host_query_reset ===
+      PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
 
       //=== VK_EXT_extended_dynamic_state ===
       PFN_vkCmdSetCullModeEXT              vkCmdSetCullModeEXT              = 0;
@@ -1885,6 +2276,168 @@
       PFN_vkCmdSetStencilTestEnableEXT     vkCmdSetStencilTestEnableEXT     = 0;
       PFN_vkCmdSetStencilOpEXT             vkCmdSetStencilOpEXT             = 0;
 
+      //=== VK_KHR_deferred_host_operations ===
+      PFN_vkCreateDeferredOperationKHR            vkCreateDeferredOperationKHR            = 0;
+      PFN_vkDestroyDeferredOperationKHR           vkDestroyDeferredOperationKHR           = 0;
+      PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
+      PFN_vkGetDeferredOperationResultKHR         vkGetDeferredOperationResultKHR         = 0;
+      PFN_vkDeferredOperationJoinKHR              vkDeferredOperationJoinKHR              = 0;
+
+      //=== VK_KHR_pipeline_executable_properties ===
+      PFN_vkGetPipelineExecutablePropertiesKHR              vkGetPipelineExecutablePropertiesKHR              = 0;
+      PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
+      PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
+
+      //=== VK_EXT_host_image_copy ===
+      PFN_vkCopyMemoryToImageEXT          vkCopyMemoryToImageEXT          = 0;
+      PFN_vkCopyImageToMemoryEXT          vkCopyImageToMemoryEXT          = 0;
+      PFN_vkCopyImageToImageEXT           vkCopyImageToImageEXT           = 0;
+      PFN_vkTransitionImageLayoutEXT      vkTransitionImageLayoutEXT      = 0;
+      PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
+
+      //=== VK_KHR_map_memory2 ===
+      PFN_vkMapMemory2KHR   vkMapMemory2KHR   = 0;
+      PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR = 0;
+
+      //=== VK_EXT_swapchain_maintenance1 ===
+      PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0;
+
+      //=== VK_NV_device_generated_commands ===
+      PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
+      PFN_vkCmdPreprocessGeneratedCommandsNV         vkCmdPreprocessGeneratedCommandsNV         = 0;
+      PFN_vkCmdExecuteGeneratedCommandsNV            vkCmdExecuteGeneratedCommandsNV            = 0;
+      PFN_vkCmdBindPipelineShaderGroupNV             vkCmdBindPipelineShaderGroupNV             = 0;
+      PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
+      PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
+
+      //=== VK_EXT_depth_bias_control ===
+      PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT = 0;
+
+      //=== VK_EXT_private_data ===
+      PFN_vkCreatePrivateDataSlotEXT  vkCreatePrivateDataSlotEXT  = 0;
+      PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
+      PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
+      PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
+
+      //=== VK_KHR_video_encode_queue ===
+      PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR = 0;
+      PFN_vkCmdEncodeVideoKHR                   vkCmdEncodeVideoKHR                   = 0;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_NV_cuda_kernel_launch ===
+      PFN_vkCreateCudaModuleNV    vkCreateCudaModuleNV    = 0;
+      PFN_vkGetCudaModuleCacheNV  vkGetCudaModuleCacheNV  = 0;
+      PFN_vkCreateCudaFunctionNV  vkCreateCudaFunctionNV  = 0;
+      PFN_vkDestroyCudaModuleNV   vkDestroyCudaModuleNV   = 0;
+      PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV = 0;
+      PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV = 0;
+#  else
+      PFN_dummy vkCreateCudaModuleNV_placeholder                              = 0;
+      PFN_dummy vkGetCudaModuleCacheNV_placeholder                            = 0;
+      PFN_dummy vkCreateCudaFunctionNV_placeholder                            = 0;
+      PFN_dummy vkDestroyCudaModuleNV_placeholder                             = 0;
+      PFN_dummy vkDestroyCudaFunctionNV_placeholder                           = 0;
+      PFN_dummy vkCmdCudaLaunchKernelNV_placeholder                           = 0;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_METAL_EXT )
+      //=== VK_EXT_metal_objects ===
+      PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0;
+#  else
+      PFN_dummy vkExportMetalObjectsEXT_placeholder                           = 0;
+#  endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+      //=== VK_KHR_synchronization2 ===
+      PFN_vkCmdSetEvent2KHR           vkCmdSetEvent2KHR           = 0;
+      PFN_vkCmdResetEvent2KHR         vkCmdResetEvent2KHR         = 0;
+      PFN_vkCmdWaitEvents2KHR         vkCmdWaitEvents2KHR         = 0;
+      PFN_vkCmdPipelineBarrier2KHR    vkCmdPipelineBarrier2KHR    = 0;
+      PFN_vkCmdWriteTimestamp2KHR     vkCmdWriteTimestamp2KHR     = 0;
+      PFN_vkQueueSubmit2KHR           vkQueueSubmit2KHR           = 0;
+      PFN_vkCmdWriteBufferMarker2AMD  vkCmdWriteBufferMarker2AMD  = 0;
+      PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
+
+      //=== VK_EXT_descriptor_buffer ===
+      PFN_vkGetDescriptorSetLayoutSizeEXT                          vkGetDescriptorSetLayoutSizeEXT                          = 0;
+      PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 vkGetDescriptorSetLayoutBindingOffsetEXT                 = 0;
+      PFN_vkGetDescriptorEXT                                       vkGetDescriptorEXT                                       = 0;
+      PFN_vkCmdBindDescriptorBuffersEXT                            vkCmdBindDescriptorBuffersEXT                            = 0;
+      PFN_vkCmdSetDescriptorBufferOffsetsEXT                       vkCmdSetDescriptorBufferOffsetsEXT                       = 0;
+      PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = 0;
+      PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                vkGetBufferOpaqueCaptureDescriptorDataEXT                = 0;
+      PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 vkGetImageOpaqueCaptureDescriptorDataEXT                 = 0;
+      PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             vkGetImageViewOpaqueCaptureDescriptorDataEXT             = 0;
+      PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               vkGetSamplerOpaqueCaptureDescriptorDataEXT               = 0;
+      PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = 0;
+
+      //=== VK_NV_fragment_shading_rate_enums ===
+      PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
+
+      //=== VK_EXT_mesh_shader ===
+      PFN_vkCmdDrawMeshTasksEXT              vkCmdDrawMeshTasksEXT              = 0;
+      PFN_vkCmdDrawMeshTasksIndirectEXT      vkCmdDrawMeshTasksIndirectEXT      = 0;
+      PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0;
+
+      //=== VK_KHR_copy_commands2 ===
+      PFN_vkCmdCopyBuffer2KHR        vkCmdCopyBuffer2KHR        = 0;
+      PFN_vkCmdCopyImage2KHR         vkCmdCopyImage2KHR         = 0;
+      PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
+      PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
+      PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
+      PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
+
+      //=== VK_EXT_device_fault ===
+      PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0;
+
+      //=== VK_EXT_vertex_input_dynamic_state ===
+      PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+      //=== VK_FUCHSIA_external_memory ===
+      PFN_vkGetMemoryZirconHandleFUCHSIA           vkGetMemoryZirconHandleFUCHSIA           = 0;
+      PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
+#  else
+      PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder                    = 0;
+      PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder          = 0;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+      //=== VK_FUCHSIA_external_semaphore ===
+      PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
+      PFN_vkGetSemaphoreZirconHandleFUCHSIA    vkGetSemaphoreZirconHandleFUCHSIA    = 0;
+#  else
+      PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder              = 0;
+      PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder                 = 0;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+      //=== VK_FUCHSIA_buffer_collection ===
+      PFN_vkCreateBufferCollectionFUCHSIA               vkCreateBufferCollectionFUCHSIA               = 0;
+      PFN_vkSetBufferCollectionImageConstraintsFUCHSIA  vkSetBufferCollectionImageConstraintsFUCHSIA  = 0;
+      PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
+      PFN_vkDestroyBufferCollectionFUCHSIA              vkDestroyBufferCollectionFUCHSIA              = 0;
+      PFN_vkGetBufferCollectionPropertiesFUCHSIA        vkGetBufferCollectionPropertiesFUCHSIA        = 0;
+#  else
+      PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder                   = 0;
+      PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder      = 0;
+      PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder     = 0;
+      PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder                  = 0;
+      PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder            = 0;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+      //=== VK_HUAWEI_subpass_shading ===
+      PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
+      PFN_vkCmdSubpassShadingHUAWEI                       vkCmdSubpassShadingHUAWEI                       = 0;
+
+      //=== VK_HUAWEI_invocation_mask ===
+      PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
+
+      //=== VK_NV_external_memory_rdma ===
+      PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
+
+      //=== VK_EXT_pipeline_properties ===
+      PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0;
+
       //=== VK_EXT_extended_dynamic_state2 ===
       PFN_vkCmdSetPatchControlPointsEXT      vkCmdSetPatchControlPointsEXT      = 0;
       PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
@@ -1892,6 +2445,61 @@
       PFN_vkCmdSetLogicOpEXT                 vkCmdSetLogicOpEXT                 = 0;
       PFN_vkCmdSetPrimitiveRestartEnableEXT  vkCmdSetPrimitiveRestartEnableEXT  = 0;
 
+      //=== VK_EXT_color_write_enable ===
+      PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
+
+      //=== VK_KHR_ray_tracing_maintenance1 ===
+      PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0;
+
+      //=== VK_EXT_multi_draw ===
+      PFN_vkCmdDrawMultiEXT        vkCmdDrawMultiEXT        = 0;
+      PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
+
+      //=== VK_EXT_opacity_micromap ===
+      PFN_vkCreateMicromapEXT                 vkCreateMicromapEXT                 = 0;
+      PFN_vkDestroyMicromapEXT                vkDestroyMicromapEXT                = 0;
+      PFN_vkCmdBuildMicromapsEXT              vkCmdBuildMicromapsEXT              = 0;
+      PFN_vkBuildMicromapsEXT                 vkBuildMicromapsEXT                 = 0;
+      PFN_vkCopyMicromapEXT                   vkCopyMicromapEXT                   = 0;
+      PFN_vkCopyMicromapToMemoryEXT           vkCopyMicromapToMemoryEXT           = 0;
+      PFN_vkCopyMemoryToMicromapEXT           vkCopyMemoryToMicromapEXT           = 0;
+      PFN_vkWriteMicromapsPropertiesEXT       vkWriteMicromapsPropertiesEXT       = 0;
+      PFN_vkCmdCopyMicromapEXT                vkCmdCopyMicromapEXT                = 0;
+      PFN_vkCmdCopyMicromapToMemoryEXT        vkCmdCopyMicromapToMemoryEXT        = 0;
+      PFN_vkCmdCopyMemoryToMicromapEXT        vkCmdCopyMemoryToMicromapEXT        = 0;
+      PFN_vkCmdWriteMicromapsPropertiesEXT    vkCmdWriteMicromapsPropertiesEXT    = 0;
+      PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0;
+      PFN_vkGetMicromapBuildSizesEXT          vkGetMicromapBuildSizesEXT          = 0;
+
+      //=== VK_HUAWEI_cluster_culling_shader ===
+      PFN_vkCmdDrawClusterHUAWEI         vkCmdDrawClusterHUAWEI         = 0;
+      PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI = 0;
+
+      //=== VK_EXT_pageable_device_local_memory ===
+      PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
+
+      //=== VK_KHR_maintenance4 ===
+      PFN_vkGetDeviceBufferMemoryRequirementsKHR      vkGetDeviceBufferMemoryRequirementsKHR      = 0;
+      PFN_vkGetDeviceImageMemoryRequirementsKHR       vkGetDeviceImageMemoryRequirementsKHR       = 0;
+      PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
+
+      //=== VK_VALVE_descriptor_set_host_mapping ===
+      PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
+      PFN_vkGetDescriptorSetHostMappingVALVE           vkGetDescriptorSetHostMappingVALVE           = 0;
+
+      //=== VK_NV_copy_memory_indirect ===
+      PFN_vkCmdCopyMemoryIndirectNV        vkCmdCopyMemoryIndirectNV        = 0;
+      PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV = 0;
+
+      //=== VK_NV_memory_decompression ===
+      PFN_vkCmdDecompressMemoryNV              vkCmdDecompressMemoryNV              = 0;
+      PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0;
+
+      //=== VK_NV_device_generated_commands_compute ===
+      PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV = 0;
+      PFN_vkCmdUpdatePipelineIndirectBufferNV       vkCmdUpdatePipelineIndirectBufferNV       = 0;
+      PFN_vkGetPipelineIndirectDeviceAddressNV      vkGetPipelineIndirectDeviceAddressNV      = 0;
+
       //=== VK_EXT_extended_dynamic_state3 ===
       PFN_vkCmdSetTessellationDomainOriginEXT         vkCmdSetTessellationDomainOriginEXT         = 0;
       PFN_vkCmdSetDepthClampEnableEXT                 vkCmdSetDepthClampEnableEXT                 = 0;
@@ -1925,474 +2533,59 @@
       PFN_vkCmdSetRepresentativeFragmentTestEnableNV  vkCmdSetRepresentativeFragmentTestEnableNV  = 0;
       PFN_vkCmdSetCoverageReductionModeNV             vkCmdSetCoverageReductionModeNV             = 0;
 
-      //=== VK_EXT_external_memory_host ===
-      PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_EXT_full_screen_exclusive ===
-      PFN_vkAcquireFullScreenExclusiveModeEXT     vkAcquireFullScreenExclusiveModeEXT     = 0;
-      PFN_vkReleaseFullScreenExclusiveModeEXT     vkReleaseFullScreenExclusiveModeEXT     = 0;
-      PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
-#  else
-      PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder               = 0;
-      PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder               = 0;
-      PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder           = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_EXT_hdr_metadata ===
-      PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
-
-      //=== VK_EXT_host_query_reset ===
-      PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
-
-      //=== VK_EXT_image_compression_control ===
-      PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
-
-      //=== VK_EXT_image_drm_format_modifier ===
-      PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
-
-      //=== VK_EXT_line_rasterization ===
-      PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
-
-      //=== VK_EXT_mesh_shader ===
-      PFN_vkCmdDrawMeshTasksEXT              vkCmdDrawMeshTasksEXT              = 0;
-      PFN_vkCmdDrawMeshTasksIndirectEXT      vkCmdDrawMeshTasksIndirectEXT      = 0;
-      PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_METAL_EXT )
-      //=== VK_EXT_metal_objects ===
-      PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0;
-#  else
-      PFN_dummy vkExportMetalObjectsEXT_placeholder                           = 0;
-#  endif /*VK_USE_PLATFORM_METAL_EXT*/
-
-      //=== VK_EXT_multi_draw ===
-      PFN_vkCmdDrawMultiEXT        vkCmdDrawMultiEXT        = 0;
-      PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
-
-      //=== VK_EXT_opacity_micromap ===
-      PFN_vkCreateMicromapEXT                 vkCreateMicromapEXT                 = 0;
-      PFN_vkDestroyMicromapEXT                vkDestroyMicromapEXT                = 0;
-      PFN_vkCmdBuildMicromapsEXT              vkCmdBuildMicromapsEXT              = 0;
-      PFN_vkBuildMicromapsEXT                 vkBuildMicromapsEXT                 = 0;
-      PFN_vkCopyMicromapEXT                   vkCopyMicromapEXT                   = 0;
-      PFN_vkCopyMicromapToMemoryEXT           vkCopyMicromapToMemoryEXT           = 0;
-      PFN_vkCopyMemoryToMicromapEXT           vkCopyMemoryToMicromapEXT           = 0;
-      PFN_vkWriteMicromapsPropertiesEXT       vkWriteMicromapsPropertiesEXT       = 0;
-      PFN_vkCmdCopyMicromapEXT                vkCmdCopyMicromapEXT                = 0;
-      PFN_vkCmdCopyMicromapToMemoryEXT        vkCmdCopyMicromapToMemoryEXT        = 0;
-      PFN_vkCmdCopyMemoryToMicromapEXT        vkCmdCopyMemoryToMicromapEXT        = 0;
-      PFN_vkCmdWriteMicromapsPropertiesEXT    vkCmdWriteMicromapsPropertiesEXT    = 0;
-      PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0;
-      PFN_vkGetMicromapBuildSizesEXT          vkGetMicromapBuildSizesEXT          = 0;
-
-      //=== VK_EXT_pageable_device_local_memory ===
-      PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
-
-      //=== VK_EXT_pipeline_properties ===
-      PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0;
-
-      //=== VK_EXT_private_data ===
-      PFN_vkCreatePrivateDataSlotEXT  vkCreatePrivateDataSlotEXT  = 0;
-      PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
-      PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
-      PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
-
-      //=== VK_EXT_sample_locations ===
-      PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
-
       //=== VK_EXT_shader_module_identifier ===
       PFN_vkGetShaderModuleIdentifierEXT           vkGetShaderModuleIdentifierEXT           = 0;
       PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0;
 
-      //=== VK_EXT_swapchain_maintenance1 ===
-      PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0;
-
-      //=== VK_EXT_transform_feedback ===
-      PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
-      PFN_vkCmdBeginTransformFeedbackEXT       vkCmdBeginTransformFeedbackEXT       = 0;
-      PFN_vkCmdEndTransformFeedbackEXT         vkCmdEndTransformFeedbackEXT         = 0;
-      PFN_vkCmdBeginQueryIndexedEXT            vkCmdBeginQueryIndexedEXT            = 0;
-      PFN_vkCmdEndQueryIndexedEXT              vkCmdEndQueryIndexedEXT              = 0;
-      PFN_vkCmdDrawIndirectByteCountEXT        vkCmdDrawIndirectByteCountEXT        = 0;
-
-      //=== VK_EXT_validation_cache ===
-      PFN_vkCreateValidationCacheEXT  vkCreateValidationCacheEXT  = 0;
-      PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
-      PFN_vkMergeValidationCachesEXT  vkMergeValidationCachesEXT  = 0;
-      PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
-
-      //=== VK_EXT_vertex_input_dynamic_state ===
-      PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-      //=== VK_FUCHSIA_buffer_collection ===
-      PFN_vkCreateBufferCollectionFUCHSIA               vkCreateBufferCollectionFUCHSIA               = 0;
-      PFN_vkSetBufferCollectionImageConstraintsFUCHSIA  vkSetBufferCollectionImageConstraintsFUCHSIA  = 0;
-      PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
-      PFN_vkDestroyBufferCollectionFUCHSIA              vkDestroyBufferCollectionFUCHSIA              = 0;
-      PFN_vkGetBufferCollectionPropertiesFUCHSIA        vkGetBufferCollectionPropertiesFUCHSIA        = 0;
-#  else
-      PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder                   = 0;
-      PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder      = 0;
-      PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder     = 0;
-      PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder                  = 0;
-      PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder            = 0;
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-      //=== VK_FUCHSIA_external_memory ===
-      PFN_vkGetMemoryZirconHandleFUCHSIA           vkGetMemoryZirconHandleFUCHSIA           = 0;
-      PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
-#  else
-      PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder                    = 0;
-      PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder          = 0;
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
-      //=== VK_FUCHSIA_external_semaphore ===
-      PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
-      PFN_vkGetSemaphoreZirconHandleFUCHSIA    vkGetSemaphoreZirconHandleFUCHSIA    = 0;
-#  else
-      PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder              = 0;
-      PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder                 = 0;
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-      //=== VK_GOOGLE_display_timing ===
-      PFN_vkGetRefreshCycleDurationGOOGLE   vkGetRefreshCycleDurationGOOGLE   = 0;
-      PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
-
-      //=== VK_HUAWEI_invocation_mask ===
-      PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
-
-      //=== VK_HUAWEI_subpass_shading ===
-      PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
-      PFN_vkCmdSubpassShadingHUAWEI                       vkCmdSubpassShadingHUAWEI                       = 0;
-
-      //=== VK_INTEL_performance_query ===
-      PFN_vkInitializePerformanceApiINTEL         vkInitializePerformanceApiINTEL         = 0;
-      PFN_vkUninitializePerformanceApiINTEL       vkUninitializePerformanceApiINTEL       = 0;
-      PFN_vkCmdSetPerformanceMarkerINTEL          vkCmdSetPerformanceMarkerINTEL          = 0;
-      PFN_vkCmdSetPerformanceStreamMarkerINTEL    vkCmdSetPerformanceStreamMarkerINTEL    = 0;
-      PFN_vkCmdSetPerformanceOverrideINTEL        vkCmdSetPerformanceOverrideINTEL        = 0;
-      PFN_vkAcquirePerformanceConfigurationINTEL  vkAcquirePerformanceConfigurationINTEL  = 0;
-      PFN_vkReleasePerformanceConfigurationINTEL  vkReleasePerformanceConfigurationINTEL  = 0;
-      PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
-      PFN_vkGetPerformanceParameterINTEL          vkGetPerformanceParameterINTEL          = 0;
-
-      //=== VK_KHR_acceleration_structure ===
-      PFN_vkCreateAccelerationStructureKHR                 vkCreateAccelerationStructureKHR                 = 0;
-      PFN_vkDestroyAccelerationStructureKHR                vkDestroyAccelerationStructureKHR                = 0;
-      PFN_vkCmdBuildAccelerationStructuresKHR              vkCmdBuildAccelerationStructuresKHR              = 0;
-      PFN_vkCmdBuildAccelerationStructuresIndirectKHR      vkCmdBuildAccelerationStructuresIndirectKHR      = 0;
-      PFN_vkBuildAccelerationStructuresKHR                 vkBuildAccelerationStructuresKHR                 = 0;
-      PFN_vkCopyAccelerationStructureKHR                   vkCopyAccelerationStructureKHR                   = 0;
-      PFN_vkCopyAccelerationStructureToMemoryKHR           vkCopyAccelerationStructureToMemoryKHR           = 0;
-      PFN_vkCopyMemoryToAccelerationStructureKHR           vkCopyMemoryToAccelerationStructureKHR           = 0;
-      PFN_vkWriteAccelerationStructuresPropertiesKHR       vkWriteAccelerationStructuresPropertiesKHR       = 0;
-      PFN_vkCmdCopyAccelerationStructureKHR                vkCmdCopyAccelerationStructureKHR                = 0;
-      PFN_vkCmdCopyAccelerationStructureToMemoryKHR        vkCmdCopyAccelerationStructureToMemoryKHR        = 0;
-      PFN_vkCmdCopyMemoryToAccelerationStructureKHR        vkCmdCopyMemoryToAccelerationStructureKHR        = 0;
-      PFN_vkGetAccelerationStructureDeviceAddressKHR       vkGetAccelerationStructureDeviceAddressKHR       = 0;
-      PFN_vkCmdWriteAccelerationStructuresPropertiesKHR    vkCmdWriteAccelerationStructuresPropertiesKHR    = 0;
-      PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
-      PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
-
-      //=== VK_KHR_bind_memory2 ===
-      PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
-      PFN_vkBindImageMemory2KHR  vkBindImageMemory2KHR  = 0;
-
-      //=== VK_KHR_buffer_device_address ===
-      PFN_vkGetBufferDeviceAddressKHR              vkGetBufferDeviceAddressKHR              = 0;
-      PFN_vkGetBufferOpaqueCaptureAddressKHR       vkGetBufferOpaqueCaptureAddressKHR       = 0;
-      PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
-
-      //=== VK_KHR_copy_commands2 ===
-      PFN_vkCmdCopyBuffer2KHR        vkCmdCopyBuffer2KHR        = 0;
-      PFN_vkCmdCopyImage2KHR         vkCmdCopyImage2KHR         = 0;
-      PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
-      PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
-      PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
-      PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
-
-      //=== VK_KHR_create_renderpass2 ===
-      PFN_vkCreateRenderPass2KHR   vkCreateRenderPass2KHR   = 0;
-      PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
-      PFN_vkCmdNextSubpass2KHR     vkCmdNextSubpass2KHR     = 0;
-      PFN_vkCmdEndRenderPass2KHR   vkCmdEndRenderPass2KHR   = 0;
-
-      //=== VK_KHR_deferred_host_operations ===
-      PFN_vkCreateDeferredOperationKHR            vkCreateDeferredOperationKHR            = 0;
-      PFN_vkDestroyDeferredOperationKHR           vkDestroyDeferredOperationKHR           = 0;
-      PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
-      PFN_vkGetDeferredOperationResultKHR         vkGetDeferredOperationResultKHR         = 0;
-      PFN_vkDeferredOperationJoinKHR              vkDeferredOperationJoinKHR              = 0;
-
-      //=== VK_KHR_descriptor_update_template ===
-      PFN_vkCreateDescriptorUpdateTemplateKHR   vkCreateDescriptorUpdateTemplateKHR   = 0;
-      PFN_vkDestroyDescriptorUpdateTemplateKHR  vkDestroyDescriptorUpdateTemplateKHR  = 0;
-      PFN_vkUpdateDescriptorSetWithTemplateKHR  vkUpdateDescriptorSetWithTemplateKHR  = 0;
-      PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
-
-      //=== VK_KHR_device_group ===
-      PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR  vkGetDeviceGroupPeerMemoryFeaturesKHR  = 0;
-      PFN_vkCmdSetDeviceMaskKHR                  vkCmdSetDeviceMaskKHR                  = 0;
-      PFN_vkCmdDispatchBaseKHR                   vkCmdDispatchBaseKHR                   = 0;
-      PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
-      PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
-      PFN_vkAcquireNextImage2KHR                 vkAcquireNextImage2KHR                 = 0;
-
-      //=== VK_KHR_display_swapchain ===
-      PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
-
-      //=== VK_KHR_draw_indirect_count ===
-      PFN_vkCmdDrawIndirectCountKHR        vkCmdDrawIndirectCountKHR        = 0;
-      PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
-
-      //=== VK_KHR_dynamic_rendering ===
-      PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
-      PFN_vkCmdEndRenderingKHR   vkCmdEndRenderingKHR   = 0;
-
-      //=== VK_KHR_external_fence_fd ===
-      PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
-      PFN_vkGetFenceFdKHR    vkGetFenceFdKHR    = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_KHR_external_fence_win32 ===
-      PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
-      PFN_vkGetFenceWin32HandleKHR    vkGetFenceWin32HandleKHR    = 0;
-#  else
-      PFN_dummy vkImportFenceWin32HandleKHR_placeholder                       = 0;
-      PFN_dummy vkGetFenceWin32HandleKHR_placeholder                          = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_KHR_external_memory_fd ===
-      PFN_vkGetMemoryFdKHR           vkGetMemoryFdKHR           = 0;
-      PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_KHR_external_memory_win32 ===
-      PFN_vkGetMemoryWin32HandleKHR           vkGetMemoryWin32HandleKHR           = 0;
-      PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
-#  else
-      PFN_dummy vkGetMemoryWin32HandleKHR_placeholder                         = 0;
-      PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder               = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_KHR_external_semaphore_fd ===
-      PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
-      PFN_vkGetSemaphoreFdKHR    vkGetSemaphoreFdKHR    = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_KHR_external_semaphore_win32 ===
-      PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
-      PFN_vkGetSemaphoreWin32HandleKHR    vkGetSemaphoreWin32HandleKHR    = 0;
-#  else
-      PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder                   = 0;
-      PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder                      = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_KHR_fragment_shading_rate ===
-      PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
-
-      //=== VK_KHR_get_memory_requirements2 ===
-      PFN_vkGetImageMemoryRequirements2KHR       vkGetImageMemoryRequirements2KHR       = 0;
-      PFN_vkGetBufferMemoryRequirements2KHR      vkGetBufferMemoryRequirements2KHR      = 0;
-      PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
-
-      //=== VK_KHR_maintenance1 ===
-      PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
-
-      //=== VK_KHR_maintenance3 ===
-      PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
-
-      //=== VK_KHR_maintenance4 ===
-      PFN_vkGetDeviceBufferMemoryRequirementsKHR      vkGetDeviceBufferMemoryRequirementsKHR      = 0;
-      PFN_vkGetDeviceImageMemoryRequirementsKHR       vkGetDeviceImageMemoryRequirementsKHR       = 0;
-      PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
-
-      //=== VK_KHR_performance_query ===
-      PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
-      PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
-
-      //=== VK_KHR_pipeline_executable_properties ===
-      PFN_vkGetPipelineExecutablePropertiesKHR              vkGetPipelineExecutablePropertiesKHR              = 0;
-      PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
-      PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
-
-      //=== VK_KHR_present_wait ===
-      PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
-
-      //=== VK_KHR_push_descriptor ===
-      PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
-
-      //=== VK_KHR_ray_tracing_maintenance1 ===
-      PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0;
-
-      //=== VK_KHR_ray_tracing_pipeline ===
-      PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
-      PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
-      PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
-      PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
-      PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
-      PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
-      PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
-
-      //=== VK_KHR_sampler_ycbcr_conversion ===
-      PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
-      PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
-
-      //=== VK_KHR_shared_presentable_image ===
-      PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
-
-      //=== VK_KHR_swapchain ===
-      PFN_vkCreateSwapchainKHR    vkCreateSwapchainKHR    = 0;
-      PFN_vkDestroySwapchainKHR   vkDestroySwapchainKHR   = 0;
-      PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
-      PFN_vkAcquireNextImageKHR   vkAcquireNextImageKHR   = 0;
-      PFN_vkQueuePresentKHR       vkQueuePresentKHR       = 0;
-
-      //=== VK_KHR_synchronization2 ===
-      PFN_vkCmdSetEvent2KHR           vkCmdSetEvent2KHR           = 0;
-      PFN_vkCmdResetEvent2KHR         vkCmdResetEvent2KHR         = 0;
-      PFN_vkCmdWaitEvents2KHR         vkCmdWaitEvents2KHR         = 0;
-      PFN_vkCmdPipelineBarrier2KHR    vkCmdPipelineBarrier2KHR    = 0;
-      PFN_vkCmdWriteTimestamp2KHR     vkCmdWriteTimestamp2KHR     = 0;
-      PFN_vkQueueSubmit2KHR           vkQueueSubmit2KHR           = 0;
-      PFN_vkCmdWriteBufferMarker2AMD  vkCmdWriteBufferMarker2AMD  = 0;
-      PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
-
-      //=== VK_KHR_timeline_semaphore ===
-      PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
-      PFN_vkWaitSemaphoresKHR           vkWaitSemaphoresKHR           = 0;
-      PFN_vkSignalSemaphoreKHR          vkSignalSemaphoreKHR          = 0;
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-      //=== VK_KHR_video_decode_queue ===
-      PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
-#  else
-      PFN_dummy vkCmdDecodeVideoKHR_placeholder                               = 0;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-      //=== VK_KHR_video_encode_queue ===
-      PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
-#  else
-      PFN_dummy vkCmdEncodeVideoKHR_placeholder                               = 0;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-      //=== VK_KHR_video_queue ===
-      PFN_vkCreateVideoSessionKHR                vkCreateVideoSessionKHR                = 0;
-      PFN_vkDestroyVideoSessionKHR               vkDestroyVideoSessionKHR               = 0;
-      PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
-      PFN_vkBindVideoSessionMemoryKHR            vkBindVideoSessionMemoryKHR            = 0;
-      PFN_vkCreateVideoSessionParametersKHR      vkCreateVideoSessionParametersKHR      = 0;
-      PFN_vkUpdateVideoSessionParametersKHR      vkUpdateVideoSessionParametersKHR      = 0;
-      PFN_vkDestroyVideoSessionParametersKHR     vkDestroyVideoSessionParametersKHR     = 0;
-      PFN_vkCmdBeginVideoCodingKHR               vkCmdBeginVideoCodingKHR               = 0;
-      PFN_vkCmdEndVideoCodingKHR                 vkCmdEndVideoCodingKHR                 = 0;
-      PFN_vkCmdControlVideoCodingKHR             vkCmdControlVideoCodingKHR             = 0;
-#  else
-      PFN_dummy vkCreateVideoSessionKHR_placeholder                           = 0;
-      PFN_dummy vkDestroyVideoSessionKHR_placeholder                          = 0;
-      PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder            = 0;
-      PFN_dummy vkBindVideoSessionMemoryKHR_placeholder                       = 0;
-      PFN_dummy vkCreateVideoSessionParametersKHR_placeholder                 = 0;
-      PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder                 = 0;
-      PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder                = 0;
-      PFN_dummy vkCmdBeginVideoCodingKHR_placeholder                          = 0;
-      PFN_dummy vkCmdEndVideoCodingKHR_placeholder                            = 0;
-      PFN_dummy vkCmdControlVideoCodingKHR_placeholder                        = 0;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-      //=== VK_NVX_binary_import ===
-      PFN_vkCreateCuModuleNVX    vkCreateCuModuleNVX    = 0;
-      PFN_vkCreateCuFunctionNVX  vkCreateCuFunctionNVX  = 0;
-      PFN_vkDestroyCuModuleNVX   vkDestroyCuModuleNVX   = 0;
-      PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
-      PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
-
-      //=== VK_NVX_image_view_handle ===
-      PFN_vkGetImageViewHandleNVX  vkGetImageViewHandleNVX  = 0;
-      PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
-
-      //=== VK_NV_clip_space_w_scaling ===
-      PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
-
-      //=== VK_NV_copy_memory_indirect ===
-      PFN_vkCmdCopyMemoryIndirectNV        vkCmdCopyMemoryIndirectNV        = 0;
-      PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV = 0;
-
-      //=== VK_NV_device_diagnostic_checkpoints ===
-      PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
-      PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
-
-      //=== VK_NV_device_generated_commands ===
-      PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
-      PFN_vkCmdPreprocessGeneratedCommandsNV         vkCmdPreprocessGeneratedCommandsNV         = 0;
-      PFN_vkCmdExecuteGeneratedCommandsNV            vkCmdExecuteGeneratedCommandsNV            = 0;
-      PFN_vkCmdBindPipelineShaderGroupNV             vkCmdBindPipelineShaderGroupNV             = 0;
-      PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
-      PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
-
-      //=== VK_NV_external_memory_rdma ===
-      PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_NV_external_memory_win32 ===
-      PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
-#  else
-      PFN_dummy vkGetMemoryWin32HandleNV_placeholder                          = 0;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_NV_fragment_shading_rate_enums ===
-      PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
-
-      //=== VK_NV_memory_decompression ===
-      PFN_vkCmdDecompressMemoryNV              vkCmdDecompressMemoryNV              = 0;
-      PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0;
-
-      //=== VK_NV_mesh_shader ===
-      PFN_vkCmdDrawMeshTasksNV              vkCmdDrawMeshTasksNV              = 0;
-      PFN_vkCmdDrawMeshTasksIndirectNV      vkCmdDrawMeshTasksIndirectNV      = 0;
-      PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
-
       //=== VK_NV_optical_flow ===
       PFN_vkCreateOpticalFlowSessionNV    vkCreateOpticalFlowSessionNV    = 0;
       PFN_vkDestroyOpticalFlowSessionNV   vkDestroyOpticalFlowSessionNV   = 0;
       PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV = 0;
       PFN_vkCmdOpticalFlowExecuteNV       vkCmdOpticalFlowExecuteNV       = 0;
 
-      //=== VK_NV_ray_tracing ===
-      PFN_vkCreateAccelerationStructureNV                vkCreateAccelerationStructureNV                = 0;
-      PFN_vkDestroyAccelerationStructureNV               vkDestroyAccelerationStructureNV               = 0;
-      PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
-      PFN_vkBindAccelerationStructureMemoryNV            vkBindAccelerationStructureMemoryNV            = 0;
-      PFN_vkCmdBuildAccelerationStructureNV              vkCmdBuildAccelerationStructureNV              = 0;
-      PFN_vkCmdCopyAccelerationStructureNV               vkCmdCopyAccelerationStructureNV               = 0;
-      PFN_vkCmdTraceRaysNV                               vkCmdTraceRaysNV                               = 0;
-      PFN_vkCreateRayTracingPipelinesNV                  vkCreateRayTracingPipelinesNV                  = 0;
-      PFN_vkGetRayTracingShaderGroupHandlesNV            vkGetRayTracingShaderGroupHandlesNV            = 0;
-      PFN_vkGetAccelerationStructureHandleNV             vkGetAccelerationStructureHandleNV             = 0;
-      PFN_vkCmdWriteAccelerationStructuresPropertiesNV   vkCmdWriteAccelerationStructuresPropertiesNV   = 0;
-      PFN_vkCompileDeferredNV                            vkCompileDeferredNV                            = 0;
+      //=== VK_KHR_maintenance5 ===
+      PFN_vkCmdBindIndexBuffer2KHR             vkCmdBindIndexBuffer2KHR             = 0;
+      PFN_vkGetRenderingAreaGranularityKHR     vkGetRenderingAreaGranularityKHR     = 0;
+      PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR = 0;
+      PFN_vkGetImageSubresourceLayout2KHR      vkGetImageSubresourceLayout2KHR      = 0;
 
-      //=== VK_NV_scissor_exclusive ===
-      PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
-
-      //=== VK_NV_shading_rate_image ===
-      PFN_vkCmdBindShadingRateImageNV          vkCmdBindShadingRateImageNV          = 0;
-      PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
-      PFN_vkCmdSetCoarseSampleOrderNV          vkCmdSetCoarseSampleOrderNV          = 0;
+      //=== VK_EXT_shader_object ===
+      PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
+      PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
+      PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
+      PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
 
       //=== VK_QCOM_tile_properties ===
       PFN_vkGetFramebufferTilePropertiesQCOM      vkGetFramebufferTilePropertiesQCOM      = 0;
       PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
 
-      //=== VK_VALVE_descriptor_set_host_mapping ===
-      PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
-      PFN_vkGetDescriptorSetHostMappingVALVE           vkGetDescriptorSetHostMappingVALVE           = 0;
+      //=== VK_NV_low_latency2 ===
+      PFN_vkSetLatencySleepModeNV  vkSetLatencySleepModeNV  = 0;
+      PFN_vkLatencySleepNV         vkLatencySleepNV         = 0;
+      PFN_vkSetLatencyMarkerNV     vkSetLatencyMarkerNV     = 0;
+      PFN_vkGetLatencyTimingsNV    vkGetLatencyTimingsNV    = 0;
+      PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0;
+
+      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+      PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      //=== VK_QNX_external_memory_screen_buffer ===
+      PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX = 0;
+#  else
+      PFN_dummy vkGetScreenBufferPropertiesQNX_placeholder                    = 0;
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+      //=== VK_KHR_calibrated_timestamps ===
+      PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR = 0;
+
+      //=== VK_KHR_maintenance6 ===
+      PFN_vkCmdBindDescriptorSets2KHR                   vkCmdBindDescriptorSets2KHR                   = 0;
+      PFN_vkCmdPushConstants2KHR                        vkCmdPushConstants2KHR                        = 0;
+      PFN_vkCmdPushDescriptorSet2KHR                    vkCmdPushDescriptorSet2KHR                    = 0;
+      PFN_vkCmdPushDescriptorSetWithTemplate2KHR        vkCmdPushDescriptorSetWithTemplate2KHR        = 0;
+      PFN_vkCmdSetDescriptorBufferOffsets2EXT           vkCmdSetDescriptorBufferOffsets2EXT           = 0;
+      PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0;
     };
 
     //========================================
@@ -2446,11 +2639,9 @@
     //=== VK_EXT_debug_report ===
     class DebugReportCallbackEXT;
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
     class VideoSessionKHR;
     class VideoSessionParametersKHR;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     //=== VK_NVX_binary_import ===
     class CuModuleNVX;
@@ -2477,6 +2668,12 @@
     //=== VK_NV_device_generated_commands ===
     class IndirectCommandsLayoutNV;
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+    class CudaModuleNV;
+    class CudaFunctionNV;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
     //=== VK_FUCHSIA_buffer_collection ===
     class BufferCollectionFUCHSIA;
@@ -2488,6 +2685,9 @@
     //=== VK_NV_optical_flow ===
     class OpticalFlowSessionNV;
 
+    //=== VK_EXT_shader_object ===
+    class ShaderEXT;
+
     //====================
     //=== RAII HANDLES ===
     //====================
@@ -2519,7 +2719,8 @@
       {
       }
       Context & operator=( Context const & ) = delete;
-      Context & operator                     =( Context && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Context & operator=( Context && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
@@ -2547,9 +2748,10 @@
 
       //=== VK_VERSION_1_0 ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Instance
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance>::Type
                            createInstance( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &                                createInfo,
-                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
                            enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const;
@@ -2570,29 +2772,22 @@
     class Instance
     {
     public:
-      using CType = VkInstance;
+      using CType   = VkInstance;
+      using CppType = vk::Instance;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const &                context,
                 VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &                                createInfo,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( context.getDispatcher()->vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
-                                                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                                reinterpret_cast<VkInstance *>( &m_instance ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateInstance" );
-        }
-        m_dispatcher.reset( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher( context.getDispatcher()->vkGetInstanceProcAddr,
-                                                                                                     static_cast<VkInstance>( m_instance ) ) );
+        *this = context.createInstance( createInfo, allocator );
       }
+#  endif
 
       Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const &                context,
                 VkInstance                                                                      instance,
@@ -2612,21 +2807,23 @@
 
       Instance()                   = delete;
       Instance( Instance const & ) = delete;
+
       Instance( Instance && rhs ) VULKAN_HPP_NOEXCEPT
         : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) )
         , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) )
         , m_dispatcher( rhs.m_dispatcher.release() )
       {
       }
+
       Instance & operator=( Instance const & ) = delete;
-      Instance & operator                      =( Instance && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Instance & operator=( Instance && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_instance  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} );
-          m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher.reset( rhs.m_dispatcher.release() );
+          std::swap( m_instance, rhs.m_instance );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -2669,7 +2866,9 @@
 
       //=== VK_VERSION_1_0 ===
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> enumeratePhysicalDevices() const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>>::Type
+        enumeratePhysicalDevices() const;
 
       VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT;
 
@@ -2679,101 +2878,63 @@
 
       //=== VK_KHR_display ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createDisplayPlaneSurfaceKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &                       createInfo,
-                                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
 #  if defined( VK_USE_PLATFORM_XLIB_KHR )
       //=== VK_KHR_xlib_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createXlibSurfaceKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &                          createInfo,
-                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_XLIB_KHR*/
 
 #  if defined( VK_USE_PLATFORM_XCB_KHR )
       //=== VK_KHR_xcb_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createXcbSurfaceKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &                           createInfo,
-                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_XCB_KHR*/
 
 #  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
       //=== VK_KHR_wayland_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createWaylandSurfaceKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &                       createInfo,
-                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
 
 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
       //=== VK_KHR_android_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createAndroidSurfaceKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &                       createInfo,
-                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
       //=== VK_KHR_win32_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createWin32SurfaceKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &                         createInfo,
-                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-      //=== VK_KHR_display ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createDisplayPlaneSurfaceKHR(
-        VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &                       createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-#  if defined( VK_USE_PLATFORM_XLIB_KHR )
-      //=== VK_KHR_xlib_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createXlibSurfaceKHR(
-        VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &                          createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
-
-#  if defined( VK_USE_PLATFORM_XCB_KHR )
-      //=== VK_KHR_xcb_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createXcbSurfaceKHR(
-        VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &                           createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_XCB_KHR*/
-
-#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
-      //=== VK_KHR_wayland_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createWaylandSurfaceKHR(
-        VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &                       createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
-      //=== VK_KHR_android_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createAndroidSurfaceKHR(
-        VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &                       createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
-      //=== VK_KHR_win32_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createWin32SurfaceKHR(
-        VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &                         createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
       //=== VK_EXT_debug_report ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT
-                           createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &                  createInfo,
-                                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT>::Type
+        createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &                  createInfo,
+                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
                                   VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
@@ -2786,17 +2947,19 @@
 #  if defined( VK_USE_PLATFORM_GGP )
       //=== VK_GGP_stream_descriptor_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createStreamDescriptorSurfaceGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &              createInfo,
-                                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_GGP*/
 
 #  if defined( VK_USE_PLATFORM_VI_NN )
       //=== VK_NN_vi_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createViSurfaceNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_VI_NN*/
 
       //=== VK_KHR_device_group_creation ===
@@ -2806,40 +2969,28 @@
 #  if defined( VK_USE_PLATFORM_IOS_MVK )
       //=== VK_MVK_ios_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createIOSSurfaceMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &                           createInfo,
-                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_IOS_MVK*/
 
 #  if defined( VK_USE_PLATFORM_MACOS_MVK )
       //=== VK_MVK_macos_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createMacOSSurfaceMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &                         createInfo,
-                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_MACOS_MVK*/
-
-#  if defined( VK_USE_PLATFORM_IOS_MVK )
-      //=== VK_MVK_ios_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createIOSSurfaceMVK(
-        VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &                           createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_USE_PLATFORM_IOS_MVK*/
-
-#  if defined( VK_USE_PLATFORM_MACOS_MVK )
-      //=== VK_MVK_macos_surface ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createMacOSSurfaceMVK(
-        VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &                         createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
 
       //=== VK_EXT_debug_utils ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT
-                           createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &                  createInfo,
-                                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT>::Type
+        createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &                  createInfo,
+                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
                                        VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT              messageTypes,
@@ -2848,39 +2999,44 @@
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
       //=== VK_FUCHSIA_imagepipe_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createImagePipeSurfaceFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &                 createInfo,
-                                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
 
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
       //=== VK_EXT_metal_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createMetalSurfaceEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &                         createInfo,
-                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
 
       //=== VK_EXT_headless_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createHeadlessSurfaceEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &                      createInfo,
-                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
 #  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
       //=== VK_EXT_directfb_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createDirectFBSurfaceEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &                      createInfo,
-                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
       //=== VK_QNX_screen_surface ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
                            createScreenSurfaceQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &                        createInfo,
-                                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
 
     private:
@@ -2892,7 +3048,8 @@
     class PhysicalDevice
     {
     public:
-      using CType = VkPhysicalDevice;
+      using CType   = VkPhysicalDevice;
+      using CppType = vk::PhysicalDevice;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
@@ -2912,24 +3069,28 @@
       }
 
       PhysicalDevice() = delete;
+
       PhysicalDevice( PhysicalDevice const & rhs ) : m_physicalDevice( rhs.m_physicalDevice ), m_dispatcher( rhs.m_dispatcher ) {}
+
       PhysicalDevice( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT
         : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) )
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       PhysicalDevice & operator=( PhysicalDevice const & rhs )
       {
         m_physicalDevice = rhs.m_physicalDevice;
         m_dispatcher     = rhs.m_dispatcher;
         return *this;
       }
+
       PhysicalDevice & operator=( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_physicalDevice, rhs.m_physicalDevice );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -2982,9 +3143,10 @@
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties() const VULKAN_HPP_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Device
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device>::Type
                            createDevice( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &                                  createInfo,
-                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
                            enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const;
@@ -3003,23 +3165,24 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFeatures2() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getProperties2() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2
                            getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2() const;
@@ -3030,7 +3193,7 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getMemoryProperties2() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
                            getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const;
@@ -3070,10 +3233,9 @@
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> getDisplayPlanePropertiesKHR() const;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const;
-
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>
-                           getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>>::Type
+        getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const;
 
 #  if defined( VK_USE_PLATFORM_XLIB_KHR )
       //=== VK_KHR_xlib_surface ===
@@ -3102,18 +3264,17 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_queue ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR
                            getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
                            getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_NV_external_memory_capabilities ===
 
@@ -3130,23 +3291,24 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFeatures2KHR() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getProperties2KHR() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2
                            getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2KHR() const;
@@ -3157,7 +3319,7 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
                            getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const;
@@ -3177,7 +3339,8 @@
 
       void acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                           getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
 
       //=== VK_EXT_display_surface_counter ===
@@ -3204,7 +3367,7 @@
                            getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>
@@ -3225,11 +3388,11 @@
       //=== VK_EXT_sample_locations ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT
-        getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT;
+                           getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT;
 
       //=== VK_EXT_calibrated_timestamps ===
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> getCalibrateableTimeDomainsEXT() const;
+      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> getCalibrateableTimeDomainsEXT() const;
 
       //=== VK_KHR_fragment_shading_rate ===
 
@@ -3258,12 +3421,23 @@
 
       void acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                           getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
+      //=== VK_KHR_video_encode_queue ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR
+        getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+        getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const;
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
       //=== VK_NV_acquire_winrt_display ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getWinrtDisplayNV( uint32_t deviceRelativeId ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                           getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
 #  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
@@ -3285,6 +3459,14 @@
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>
                            getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const;
 
+      //=== VK_KHR_cooperative_matrix ===
+
+      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> getCooperativeMatrixPropertiesKHR() const;
+
+      //=== VK_KHR_calibrated_timestamps ===
+
+      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> getCalibrateableTimeDomainsKHR() const;
+
     private:
       VULKAN_HPP_NAMESPACE::PhysicalDevice                                        m_physicalDevice = {};
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher     = nullptr;
@@ -3293,74 +3475,47 @@
     class PhysicalDevices : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       PhysicalDevices( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher = instance.getDispatcher();
-        std::vector<VkPhysicalDevice>                                               physicalDevices;
-        uint32_t                                                                    physicalDeviceCount;
-        VULKAN_HPP_NAMESPACE::Result                                                result;
-        do
-        {
-          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-            dispatcher->vkEnumeratePhysicalDevices( static_cast<VkInstance>( *instance ), &physicalDeviceCount, nullptr ) );
-          if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
-          {
-            physicalDevices.resize( physicalDeviceCount );
-            result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-              dispatcher->vkEnumeratePhysicalDevices( static_cast<VkInstance>( *instance ), &physicalDeviceCount, physicalDevices.data() ) );
-          }
-        } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
-        if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
-          this->reserve( physicalDeviceCount );
-          for ( auto const & physicalDevice : physicalDevices )
-          {
-            this->emplace_back( instance, physicalDevice );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkEnumeratePhysicalDevices" );
-        }
+        *this = instance.enumeratePhysicalDevices();
       }
+#  endif
 
       PhysicalDevices( std::nullptr_t ) {}
 
-      PhysicalDevices()                          = delete;
-      PhysicalDevices( PhysicalDevices const & ) = delete;
-      PhysicalDevices( PhysicalDevices && rhs )  = default;
+      PhysicalDevices()                                      = delete;
+      PhysicalDevices( PhysicalDevices const & )             = delete;
+      PhysicalDevices( PhysicalDevices && rhs )              = default;
       PhysicalDevices & operator=( PhysicalDevices const & ) = delete;
-      PhysicalDevices & operator=( PhysicalDevices && rhs ) = default;
+      PhysicalDevices & operator=( PhysicalDevices && rhs )  = default;
+
+    private:
+      PhysicalDevices( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class Device
     {
     public:
-      using CType = VkDevice;
+      using CType   = VkDevice;
+      using CppType = vk::Device;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &         physicalDevice,
               VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &                                  createInfo,
               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          physicalDevice.getDispatcher()->vkCreateDevice( static_cast<VkPhysicalDevice>( *physicalDevice ),
-                                                          reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
-                                                          reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                          reinterpret_cast<VkDevice *>( &m_device ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDevice" );
-        }
-        m_dispatcher.reset( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher( physicalDevice.getDispatcher()->vkGetDeviceProcAddr,
-                                                                                                   static_cast<VkDevice>( m_device ) ) );
+        *this = physicalDevice.createDevice( createInfo, allocator );
       }
+#  endif
 
       Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &         physicalDevice,
               VkDevice                                                                        device,
@@ -3380,21 +3535,23 @@
 
       Device()                 = delete;
       Device( Device const & ) = delete;
+
       Device( Device && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) )
         , m_dispatcher( rhs.m_dispatcher.release() )
       {
       }
+
       Device & operator=( Device const & ) = delete;
-      Device & operator                    =( Device && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Device & operator=( Device && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher.reset( rhs.m_dispatcher.release() );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -3439,21 +3596,25 @@
 
       VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type
+                           getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void waitIdle() const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DeviceMemory
-                           allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &                                allocateInfo,
-                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory>::Type
+        allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &                                allocateInfo,
+                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void flushMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const;
 
       void invalidateMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
                            createFence( VULKAN_HPP_NAMESPACE::FenceCreateInfo const &                                   createInfo,
-                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void resetFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const;
 
@@ -3461,113 +3622,125 @@
                                                                        VULKAN_HPP_NAMESPACE::Bool32                                                waitAll,
                                                                        uint64_t timeout ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Semaphore
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore>::Type
                            createSemaphore( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &                               createInfo,
-                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Event
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event>::Type
                            createEvent( VULKAN_HPP_NAMESPACE::EventCreateInfo const &                                   createInfo,
-                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::QueryPool
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool>::Type
                            createQueryPool( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &                               createInfo,
-                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Buffer
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer>::Type
                            createBuffer( VULKAN_HPP_NAMESPACE::BufferCreateInfo const &                                  createInfo,
-                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::BufferView
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView>::Type
                            createBufferView( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &                              createInfo,
-                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Image
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image>::Type
                            createImage( VULKAN_HPP_NAMESPACE::ImageCreateInfo const &                                   createInfo,
-                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ImageView
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView>::Type
                            createImageView( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &                               createInfo,
-                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ShaderModule
-                           createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &                            createInfo,
-                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule>::Type
+        createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &                            createInfo,
+                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PipelineCache
-                           createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &                           createInfo,
-                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache>::Type
+        createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &                           createInfo,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
         createGraphicsPipelines( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &                   createInfos,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
         createGraphicsPipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const &                                                     createInfo,
-                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
         createComputePipelines( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &                    createInfos,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
         createComputePipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const &                                                      createInfo,
-                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PipelineLayout
-                           createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &                          createInfo,
-                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout>::Type
+        createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &                          createInfo,
+                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Sampler
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler>::Type
                            createSampler( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &                                 createInfo,
-                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout
-                           createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &                     createInfo,
-                                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout>::Type
+        createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &                     createInfo,
+                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorPool
-                           createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &                          createInfo,
-                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool>::Type
+        createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &                          createInfo,
+                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
-                           allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>>::Type
+        allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const;
 
       void updateDescriptorSets( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const &  descriptorCopies ) const
         VULKAN_HPP_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Framebuffer
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer>::Type
                            createFramebuffer( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
                            createRenderPass( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &                              createInfo,
-                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CommandPool
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool>::Type
                            createCommandPool( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
-                           allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const;
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Framebuffer createFramebuffer(
-        VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &                             createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass createRenderPass(
-        VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &                              createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CommandPool createCommandPool(
-        VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &                             createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>>::Type
         allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const;
 
       //=== VK_VERSION_1_1 ===
@@ -3583,41 +3756,47 @@
                            getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
                            getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
                            getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Queue getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type
+                           getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
-                           createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
-                                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type
+        createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
+                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
-                           createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
-                                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type
+        createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
                            getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
 
       //=== VK_VERSION_1_2 ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
                            createRenderPass2( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const;
 
@@ -3633,9 +3812,11 @@
 
       //=== VK_VERSION_1_3 ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
-                           createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
-                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type
+        createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                            uint64_t                              objectHandle,
@@ -3650,14 +3831,14 @@
                            getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
                            getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
@@ -3665,9 +3846,11 @@
 
       //=== VK_KHR_swapchain ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
-                           createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
-                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type
+        createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
+                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const;
 
@@ -3679,13 +3862,16 @@
 
       //=== VK_KHR_display_swapchain ===
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
-                           createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
-                                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>>::Type
+        createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
+                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator = nullptr ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
-                           createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
-                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type
+        createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
+                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_EXT_debug_marker ===
 
@@ -3693,27 +3879,32 @@
 
       void debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const;
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_queue ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR
-                           createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &                         createInfo,
-                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR>::Type
+        createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &                         createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR
-                           createVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &               createInfo,
-                                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR>::Type
+        createVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &               createInfo,
+                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_NVX_binary_import ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX>::Type
                            createCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX
-                           createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &                           createInfo,
-                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX>::Type
+        createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &                           createInfo,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_NVX_image_view_handle ===
 
@@ -3738,7 +3929,7 @@
       VULKAN_HPP_NODISCARD int getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR
-        getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const;
+                           getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const;
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
       //=== VK_KHR_external_semaphore_win32 ===
@@ -3756,9 +3947,11 @@
 
       //=== VK_KHR_descriptor_update_template ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
-                           createDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
-                                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type
+        createDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
+                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
@@ -3768,14 +3961,16 @@
 
       void displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
                            registerEventEXT( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &                                deviceEventInfo,
-                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
                            registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &             display,
                                                     VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const &                               displayEventInfo,
-                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_EXT_hdr_metadata ===
 
@@ -3784,15 +3979,10 @@
 
       //=== VK_KHR_create_renderpass2 ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
                            createRenderPass2KHR( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
-                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      //=== VK_KHR_create_renderpass2 ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass createRenderPass2KHR(
-        VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
       //=== VK_KHR_external_fence_win32 ===
@@ -3827,26 +4017,44 @@
                            getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const;
 
       VULKAN_HPP_NODISCARD struct AHardwareBuffer *
         getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const;
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+        createExecutionGraphPipelinesAMDX(
+          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+          VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const &         createInfos,
+          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr ) const;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                           createExecutionGraphPipelineAMDX(
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+                             VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const &                                           createInfo,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
       //=== VK_KHR_get_memory_requirements2 ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
                            getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
                            getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
@@ -3854,9 +4062,11 @@
 
       //=== VK_KHR_acceleration_structure ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR
-                           createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &                createInfo,
-                                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR>::Type
+        createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &                createInfo,
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result buildAccelerationStructuresKHR(
         VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                                           deferredOperation,
@@ -3899,11 +4109,30 @@
         const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR &     buildInfo,
         VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const;
 
+      //=== VK_KHR_ray_tracing_pipeline ===
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+        createRayTracingPipelinesKHR(
+          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
+          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
+          VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &                     createInfos,
+          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator = nullptr ) const;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                           createRayTracingPipelineKHR(
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
+                             VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const &                                                       createInfo,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
       //=== VK_KHR_sampler_ycbcr_conversion ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
-                           createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
-                                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type
+        createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
+                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
@@ -3917,53 +4146,41 @@
 
       //=== VK_EXT_validation_cache ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT
-                           createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
-                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      //=== VK_EXT_validation_cache ===
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT createValidationCacheEXT(
-        VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT>::Type
+        createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
+                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_NV_ray_tracing ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV
-                           createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &                 createInfo,
-                                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV>::Type
+        createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &                 createInfo,
+                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV(
         const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV(
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV(
         const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT;
 
       void bindAccelerationStructureMemoryNV(
         VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const;
 
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
         createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &               createInfos,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
         createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                     VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const &                                                 createInfo,
-                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> createRayTracingPipelinesNV(
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &
-                                                                                                       pipelineCache,
-        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline createRayTracingPipelineNV(
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &
-                                                                                        pipelineCache,
-        VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const &                    createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_KHR_maintenance3 ===
 
@@ -3971,7 +4188,7 @@
                            getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
 
       //=== VK_EXT_external_memory_host ===
@@ -3982,13 +4199,10 @@
       //=== VK_EXT_calibrated_timestamps ===
 
       VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t>
-        getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos ) const;
+        getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const;
 
       VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t>
-                           getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const;
-
-      VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t>
-        getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const;
+                           getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const;
 
       //=== VK_KHR_timeline_semaphore ===
 
@@ -4002,11 +4216,13 @@
 
       void uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL
-                           acquirePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL>::Type
+        acquirePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PerformanceValueINTEL
-        getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const;
+                           getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const;
 
       //=== VK_EXT_buffer_device_address ===
 
@@ -4032,8 +4248,10 @@
 
       //=== VK_KHR_deferred_host_operations ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR
-        createDeferredOperationKHR( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR>::Type
+        createDeferredOperationKHR( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_KHR_pipeline_executable_properties ===
 
@@ -4046,6 +4264,22 @@
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>
                            getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const;
 
+      //=== VK_EXT_host_image_copy ===
+
+      void copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo ) const;
+
+      void copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo ) const;
+
+      void copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo ) const;
+
+      void transitionImageLayoutEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions ) const;
+
+      //=== VK_KHR_map_memory2 ===
+
+      VULKAN_HPP_NODISCARD void * mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo ) const;
+
+      void unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_EXT_swapchain_maintenance1 ===
 
       void releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo ) const;
@@ -4056,18 +4290,22 @@
         getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
         getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV
-                           createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &                createInfo,
-                                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV>::Type
+        createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &                createInfo,
+                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_EXT_private_data ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
-                           createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
-                                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type
+        createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
+                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
@@ -4082,17 +4320,44 @@
                                                        uint64_t                              objectHandle,
                                                        VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_KHR_video_encode_queue ===
+
+      VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>>
+        getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>>
+        getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_NV_cuda_kernel_launch ===
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV>::Type
+        createCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const &                            createInfo,
+                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV>::Type
+        createCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const &                          createInfo,
+                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
       //=== VK_EXT_metal_objects ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
 
       //=== VK_EXT_descriptor_buffer ===
 
+      void getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, size_t dataSize, void * pDescriptor ) const VULKAN_HPP_NOEXCEPT;
+
       template <typename DescriptorType>
       VULKAN_HPP_NODISCARD DescriptorType getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT;
 
@@ -4119,20 +4384,6 @@
         std::pair<VULKAN_HPP_NAMESPACE::Result, std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT>>
         getFaultInfoEXT() const;
 
-      //=== VK_KHR_ray_tracing_pipeline ===
-
-      VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> createRayTracingPipelinesKHR(
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
-        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &                     createInfos,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator = nullptr ) const;
-
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline createRayTracingPipelineKHR(
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
-        VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const &                                                       createInfo,
-        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator = nullptr ) const;
-
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
       //=== VK_FUCHSIA_external_memory ===
 
@@ -4154,9 +4405,11 @@
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
       //=== VK_FUCHSIA_buffer_collection ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA
-                           createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &                 createInfo,
-                                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA>::Type
+        createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &                 createInfo,
+                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
 
       //=== VK_NV_external_memory_rdma ===
@@ -4170,9 +4423,10 @@
 
       //=== VK_EXT_opacity_micromap ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::MicromapEXT
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT>::Type
                            createMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const &                             createInfo,
-                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
                            buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                 deferredOperation,
@@ -4212,14 +4466,14 @@
                            getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
                            getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                            getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT;
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
@@ -4230,6 +4484,18 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE getDescriptorSetLayoutHostMappingInfoVALVE(
         const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_NV_device_generated_commands_compute ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
+        getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+        getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress
+                           getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_EXT_shader_module_identifier ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT
@@ -4237,15 +4503,58 @@
 
       //=== VK_NV_optical_flow ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV
-                           createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const &                    createInfo,
-                                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV>::Type
+        createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const &                    createInfo,
+                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
+      //=== VK_KHR_maintenance5 ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D
+                           getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                           getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT;
+
+      //=== VK_EXT_shader_object ===
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>>::Type
+        createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator = nullptr ) const;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>::Type
+                           createShaderEXT( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const &                               createInfo,
+                                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_QCOM_tile_properties ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::TilePropertiesQCOM
                            getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT;
 
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      //=== VK_QNX_external_memory_screen_buffer ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const;
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+      //=== VK_KHR_calibrated_timestamps ===
+
+      VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t>
+        getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const;
+
+      VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t>
+                           getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                                       m_device    = {};
       const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                                  m_allocator = {};
@@ -4255,30 +4564,22 @@
     class AccelerationStructureKHR
     {
     public:
-      using CType = VkAccelerationStructureKHR;
+      using CType   = VkAccelerationStructureKHR;
+      using CppType = vk::AccelerationStructureKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &                createInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateAccelerationStructureKHR( static_cast<VkDevice>( *device ),
-                                                                    reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkAccelerationStructureKHR *>( &m_accelerationStructure ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateAccelerationStructureKHR" );
-        }
+        *this = device.createAccelerationStructureKHR( createInfo, allocator );
       }
+#  endif
 
       AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VkAccelerationStructureKHR                                                      accelerationStructure,
@@ -4292,8 +4593,6 @@
 
       AccelerationStructureKHR( std::nullptr_t ) {}
 
-      AccelerationStructureKHR( std::nullptr_t ) {}
-
       ~AccelerationStructureKHR()
       {
         clear();
@@ -4301,6 +4600,7 @@
 
       AccelerationStructureKHR()                                   = delete;
       AccelerationStructureKHR( AccelerationStructureKHR const & ) = delete;
+
       AccelerationStructureKHR( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_accelerationStructure( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} ) )
@@ -4308,16 +4608,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       AccelerationStructureKHR & operator=( AccelerationStructureKHR const & ) = delete;
-      AccelerationStructureKHR & operator                                      =( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      AccelerationStructureKHR & operator=( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_accelerationStructure = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} );
-          m_allocator             = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher            = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_accelerationStructure, rhs.m_accelerationStructure );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -4378,30 +4679,22 @@
     class AccelerationStructureNV
     {
     public:
-      using CType = VkAccelerationStructureNV;
+      using CType   = VkAccelerationStructureNV;
+      using CppType = vk::AccelerationStructureNV;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &                 createInfo,
                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateAccelerationStructureNV( static_cast<VkDevice>( *device ),
-                                                                   reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
-                                                                   reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                   reinterpret_cast<VkAccelerationStructureNV *>( &m_accelerationStructure ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateAccelerationStructureNV" );
-        }
+        *this = device.createAccelerationStructureNV( createInfo, allocator );
       }
+#  endif
 
       AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                VkAccelerationStructureNV                                                       accelerationStructure,
@@ -4415,8 +4708,6 @@
 
       AccelerationStructureNV( std::nullptr_t ) {}
 
-      AccelerationStructureNV( std::nullptr_t ) {}
-
       ~AccelerationStructureNV()
       {
         clear();
@@ -4424,6 +4715,7 @@
 
       AccelerationStructureNV()                                  = delete;
       AccelerationStructureNV( AccelerationStructureNV const & ) = delete;
+
       AccelerationStructureNV( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_accelerationStructure( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} ) )
@@ -4431,16 +4723,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       AccelerationStructureNV & operator=( AccelerationStructureNV const & ) = delete;
-      AccelerationStructureNV & operator                                     =( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT
+
+      AccelerationStructureNV & operator=( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_accelerationStructure = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} );
-          m_allocator             = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher            = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_accelerationStructure, rhs.m_accelerationStructure );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -4509,30 +4802,22 @@
     class Buffer
     {
     public:
-      using CType = VkBuffer;
+      using CType   = VkBuffer;
+      using CppType = vk::Buffer;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
               VULKAN_HPP_NAMESPACE::BufferCreateInfo const &                                  createInfo,
               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateBuffer( static_cast<VkDevice>( *device ),
-                                                                                             reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
-                                                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                             reinterpret_cast<VkBuffer *>( &m_buffer ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateBuffer" );
-        }
+        *this = device.createBuffer( createInfo, allocator );
       }
+#  endif
 
       Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
               VkBuffer                                                                        buffer,
@@ -4546,8 +4831,6 @@
 
       Buffer( std::nullptr_t ) {}
 
-      Buffer( std::nullptr_t ) {}
-
       ~Buffer()
       {
         clear();
@@ -4555,6 +4838,7 @@
 
       Buffer()                 = delete;
       Buffer( Buffer const & ) = delete;
+
       Buffer( Buffer && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ) )
@@ -4562,16 +4846,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Buffer & operator=( Buffer const & ) = delete;
-      Buffer & operator                    =( Buffer && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Buffer & operator=( Buffer && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_buffer     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_buffer, rhs.m_buffer );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -4638,30 +4923,22 @@
     class BufferCollectionFUCHSIA
     {
     public:
-      using CType = VkBufferCollectionFUCHSIA;
+      using CType   = VkBufferCollectionFUCHSIA;
+      using CppType = vk::BufferCollectionFUCHSIA;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
 
     public:
+#    if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       BufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &                 createInfo,
                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateBufferCollectionFUCHSIA( static_cast<VkDevice>( *device ),
-                                                                   reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
-                                                                   reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                   reinterpret_cast<VkBufferCollectionFUCHSIA *>( &m_collection ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateBufferCollectionFUCHSIA" );
-        }
+        *this = device.createBufferCollectionFUCHSIA( createInfo, allocator );
       }
+#    endif
 
       BufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                VkBufferCollectionFUCHSIA                                                       collection,
@@ -4682,6 +4959,7 @@
 
       BufferCollectionFUCHSIA()                                  = delete;
       BufferCollectionFUCHSIA( BufferCollectionFUCHSIA const & ) = delete;
+
       BufferCollectionFUCHSIA( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_collection( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_collection, {} ) )
@@ -4689,16 +4967,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA const & ) = delete;
-      BufferCollectionFUCHSIA & operator                                     =( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT
+
+      BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_collection = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_collection, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_collection, rhs.m_collection );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -4768,30 +5047,22 @@
     class BufferView
     {
     public:
-      using CType = VkBufferView;
+      using CType   = VkBufferView;
+      using CppType = vk::BufferView;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                   VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &                              createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateBufferView( static_cast<VkDevice>( *device ),
-                                                      reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
-                                                      reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                      reinterpret_cast<VkBufferView *>( &m_bufferView ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateBufferView" );
-        }
+        *this = device.createBufferView( createInfo, allocator );
       }
+#  endif
 
       BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                   VkBufferView                                                                    bufferView,
@@ -4805,8 +5076,6 @@
 
       BufferView( std::nullptr_t ) {}
 
-      BufferView( std::nullptr_t ) {}
-
       ~BufferView()
       {
         clear();
@@ -4814,6 +5083,7 @@
 
       BufferView()                     = delete;
       BufferView( BufferView const & ) = delete;
+
       BufferView( BufferView && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_bufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ) )
@@ -4821,16 +5091,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       BufferView & operator=( BufferView const & ) = delete;
-      BufferView & operator                        =( BufferView && rhs ) VULKAN_HPP_NOEXCEPT
+
+      BufferView & operator=( BufferView && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_bufferView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_bufferView, rhs.m_bufferView );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -4890,30 +5161,22 @@
     class CommandPool
     {
     public:
-      using CType = VkCommandPool;
+      using CType   = VkCommandPool;
+      using CppType = vk::CommandPool;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &                             createInfo,
                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateCommandPool( static_cast<VkDevice>( *device ),
-                                                       reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
-                                                       reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                       reinterpret_cast<VkCommandPool *>( &m_commandPool ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateCommandPool" );
-        }
+        *this = device.createCommandPool( createInfo, allocator );
       }
+#  endif
 
       CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VkCommandPool                                                                   commandPool,
@@ -4927,8 +5190,6 @@
 
       CommandPool( std::nullptr_t ) {}
 
-      CommandPool( std::nullptr_t ) {}
-
       ~CommandPool()
       {
         clear();
@@ -4936,6 +5197,7 @@
 
       CommandPool()                      = delete;
       CommandPool( CommandPool const & ) = delete;
+
       CommandPool( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) )
@@ -4943,16 +5205,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       CommandPool & operator=( CommandPool const & ) = delete;
-      CommandPool & operator                         =( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT
+
+      CommandPool & operator=( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} );
-          m_allocator   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_commandPool, rhs.m_commandPool );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -5024,7 +5287,8 @@
     class CommandBuffer
     {
     public:
-      using CType = VkCommandBuffer;
+      using CType   = VkCommandBuffer;
+      using CppType = vk::CommandBuffer;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
@@ -5045,6 +5309,7 @@
 
       CommandBuffer()                        = delete;
       CommandBuffer( CommandBuffer const & ) = delete;
+
       CommandBuffer( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) )
@@ -5052,16 +5317,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       CommandBuffer & operator=( CommandBuffer const & ) = delete;
-      CommandBuffer & operator                           =( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT
+
+      CommandBuffer & operator=( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device        = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_commandPool   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} );
-          m_commandBuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} );
-          m_dispatcher    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_commandPool, rhs.m_commandPool );
+          std::swap( m_commandBuffer, rhs.m_commandBuffer );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -5395,7 +5661,6 @@
 
       void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT;
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_queue ===
 
       void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const VULKAN_HPP_NOEXCEPT;
@@ -5403,13 +5668,10 @@
       void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const VULKAN_HPP_NOEXCEPT;
 
       void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const VULKAN_HPP_NOEXCEPT;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
       //=== VK_KHR_video_decode_queue ===
 
       void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo ) const VULKAN_HPP_NOEXCEPT;
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_EXT_transform_feedback ===
 
@@ -5507,6 +5769,10 @@
       void setDiscardRectangleEXT( uint32_t                                                                     firstDiscardRectangle,
                                    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const VULKAN_HPP_NOEXCEPT;
 
+      void setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT;
+
+      void setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_KHR_create_renderpass2 ===
 
       void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
@@ -5525,6 +5791,21 @@
 
       void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT;
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
+
+      void initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT;
+
+      void dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                              const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      void dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                      const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      void dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                           VULKAN_HPP_NAMESPACE::DeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
       //=== VK_EXT_sample_locations ===
 
       void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT;
@@ -5553,6 +5834,24 @@
         VULKAN_HPP_NAMESPACE::QueryPool                                                                queryPool,
         uint32_t                                                                                       firstQuery ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_KHR_ray_tracing_pipeline ===
+
+      void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                         uint32_t                                                    width,
+                         uint32_t                                                    height,
+                         uint32_t                                                    depth ) const VULKAN_HPP_NOEXCEPT;
+
+      void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                                 VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT;
+
+      void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_NV_shading_rate_image ===
 
       void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT;
@@ -5642,6 +5941,10 @@
 
       //=== VK_NV_scissor_exclusive ===
 
+      void setExclusiveScissorEnableNV( uint32_t                                                                     firstExclusiveScissor,
+                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables ) const
+        VULKAN_HPP_NOEXCEPT;
+
       void setExclusiveScissorNV( uint32_t                                                                     firstExclusiveScissor,
                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT;
 
@@ -5713,10 +6016,18 @@
                                       VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
                                       uint32_t                                groupIndex ) const VULKAN_HPP_NOEXCEPT;
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_EXT_depth_bias_control ===
+
+      void setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_KHR_video_encode_queue ===
 
       void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_NV_cuda_kernel_launch ===
+
+      void cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo ) const VULKAN_HPP_NOEXCEPT;
 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_KHR_synchronization2 ===
@@ -5790,24 +6101,6 @@
 
       void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT;
 
-      //=== VK_KHR_ray_tracing_pipeline ===
-
-      void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                         const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                         uint32_t                                                    width,
-                         uint32_t                                                    height,
-                         uint32_t                                                    depth ) const VULKAN_HPP_NOEXCEPT;
-
-      void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                                 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                                 VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT;
-
-      void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT;
-
       //=== VK_EXT_vertex_input_dynamic_state ===
 
       void setVertexInputEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions,
@@ -5868,6 +6161,12 @@
                                         VULKAN_HPP_NAMESPACE::QueryPool                                                   queryPool,
                                         uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_HUAWEI_cluster_culling_shader ===
+
+      void drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT;
+
+      void drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_NV_copy_memory_indirect ===
 
       void copyMemoryIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT;
@@ -5888,6 +6187,11 @@
                                             VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress,
                                             uint32_t                            stride ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_NV_device_generated_commands_compute ===
+
+      void updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
+                                           VULKAN_HPP_NAMESPACE::Pipeline          pipeline ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_EXT_extended_dynamic_state3 ===
 
       void setTessellationDomainOriginEXT( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT;
@@ -5899,7 +6203,7 @@
       void setRasterizationSamplesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT;
 
       void setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
-                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const VULKAN_HPP_NOEXCEPT;
+                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const;
 
       void setAlphaToCoverageEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT;
 
@@ -5968,6 +6272,40 @@
       void opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
                                  const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_KHR_maintenance5 ===
+
+      void bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                                VULKAN_HPP_NAMESPACE::DeviceSize size,
+                                VULKAN_HPP_NAMESPACE::IndexType  indexType ) const VULKAN_HPP_NOEXCEPT;
+
+      //=== VK_EXT_shader_object ===
+
+      void bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
+                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &           shaders ) const;
+
+      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+      void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const
+        VULKAN_HPP_NOEXCEPT;
+
+      //=== VK_KHR_maintenance6 ===
+
+      void bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      void pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      void pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      void pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo ) const
+        VULKAN_HPP_NOEXCEPT;
+
+      void setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo ) const
+        VULKAN_HPP_NOEXCEPT;
+
+      void bindDescriptorBufferEmbeddedSamplers2EXT(
+        const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                              m_device        = {};
       VULKAN_HPP_NAMESPACE::CommandPool                                         m_commandPool   = {};
@@ -5978,63 +6316,48 @@
     class CommandBuffers : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       CommandBuffers( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,
                       VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const &         allocateInfo )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkCommandBuffer>                                              commandBuffers( allocateInfo.commandBufferCount );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkAllocateCommandBuffers(
-          static_cast<VkDevice>( *device ), reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), commandBuffers.data() ) );
-        if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          this->reserve( allocateInfo.commandBufferCount );
-          for ( auto const & commandBuffer : commandBuffers )
-          {
-            this->emplace_back( device, commandBuffer, static_cast<VkCommandPool>( allocateInfo.commandPool ) );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkAllocateCommandBuffers" );
-        }
+        *this = device.allocateCommandBuffers( allocateInfo );
       }
+#  endif
 
       CommandBuffers( std::nullptr_t ) {}
 
-      CommandBuffers()                         = delete;
-      CommandBuffers( CommandBuffers const & ) = delete;
-      CommandBuffers( CommandBuffers && rhs )  = default;
+      CommandBuffers()                                     = delete;
+      CommandBuffers( CommandBuffers const & )             = delete;
+      CommandBuffers( CommandBuffers && rhs )              = default;
       CommandBuffers & operator=( CommandBuffers const & ) = delete;
-      CommandBuffers & operator=( CommandBuffers && rhs ) = default;
+      CommandBuffers & operator=( CommandBuffers && rhs )  = default;
+
+    private:
+      CommandBuffers( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class CuFunctionNVX
     {
     public:
-      using CType = VkCuFunctionNVX;
+      using CType   = VkCuFunctionNVX;
+      using CppType = vk::CuFunctionNVX;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       CuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                      VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &                           createInfo,
                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateCuFunctionNVX( static_cast<VkDevice>( *device ),
-                                                         reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
-                                                         reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                         reinterpret_cast<VkCuFunctionNVX *>( &m_function ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateCuFunctionNVX" );
-        }
+        *this = device.createCuFunctionNVX( createInfo, allocator );
       }
+#  endif
 
       CuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                      VkCuFunctionNVX                                                                 function,
@@ -6048,8 +6371,6 @@
 
       CuFunctionNVX( std::nullptr_t ) {}
 
-      CuFunctionNVX( std::nullptr_t ) {}
-
       ~CuFunctionNVX()
       {
         clear();
@@ -6057,6 +6378,7 @@
 
       CuFunctionNVX()                        = delete;
       CuFunctionNVX( CuFunctionNVX const & ) = delete;
+
       CuFunctionNVX( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_function( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_function, {} ) )
@@ -6064,16 +6386,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       CuFunctionNVX & operator=( CuFunctionNVX const & ) = delete;
-      CuFunctionNVX & operator                           =( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT
+
+      CuFunctionNVX & operator=( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_function   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_function, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_function, rhs.m_function );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6133,30 +6456,22 @@
     class CuModuleNVX
     {
     public:
-      using CType = VkCuModuleNVX;
+      using CType   = VkCuModuleNVX;
+      using CppType = vk::CuModuleNVX;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &                             createInfo,
                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateCuModuleNVX( static_cast<VkDevice>( *device ),
-                                                       reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
-                                                       reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                       reinterpret_cast<VkCuModuleNVX *>( &m_module ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateCuModuleNVX" );
-        }
+        *this = device.createCuModuleNVX( createInfo, allocator );
       }
+#  endif
 
       CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VkCuModuleNVX                                                                   module,
@@ -6170,8 +6485,6 @@
 
       CuModuleNVX( std::nullptr_t ) {}
 
-      CuModuleNVX( std::nullptr_t ) {}
-
       ~CuModuleNVX()
       {
         clear();
@@ -6179,6 +6492,7 @@
 
       CuModuleNVX()                      = delete;
       CuModuleNVX( CuModuleNVX const & ) = delete;
+
       CuModuleNVX( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_module( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_module, {} ) )
@@ -6186,16 +6500,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       CuModuleNVX & operator=( CuModuleNVX const & ) = delete;
-      CuModuleNVX & operator                         =( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT
+
+      CuModuleNVX & operator=( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_module     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_module, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_module, rhs.m_module );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6252,33 +6567,261 @@
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
     };
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    class CudaFunctionNV
+    {
+    public:
+      using CType   = VkCudaFunctionNV;
+      using CppType = vk::CudaFunctionNV;
+
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV;
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+        VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
+
+    public:
+#    if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                      VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const &                          createInfo,
+                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+      {
+        *this = device.createCudaFunctionNV( createInfo, allocator );
+      }
+#    endif
+
+      CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                      VkCudaFunctionNV                                                                function,
+                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+        : m_device( *device )
+        , m_function( function )
+        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
+        , m_dispatcher( device.getDispatcher() )
+      {
+      }
+
+      CudaFunctionNV( std::nullptr_t ) {}
+
+      ~CudaFunctionNV()
+      {
+        clear();
+      }
+
+      CudaFunctionNV()                         = delete;
+      CudaFunctionNV( CudaFunctionNV const & ) = delete;
+
+      CudaFunctionNV( CudaFunctionNV && rhs ) VULKAN_HPP_NOEXCEPT
+        : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
+        , m_function( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_function, {} ) )
+        , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) )
+        , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
+      {
+      }
+
+      CudaFunctionNV & operator=( CudaFunctionNV const & ) = delete;
+
+      CudaFunctionNV & operator=( CudaFunctionNV && rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        if ( this != &rhs )
+        {
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_function, rhs.m_function );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
+        }
+        return *this;
+      }
+
+      VULKAN_HPP_NAMESPACE::CudaFunctionNV const & operator*() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_function;
+      }
+
+      void clear() VULKAN_HPP_NOEXCEPT
+      {
+        if ( m_function )
+        {
+          getDispatcher()->vkDestroyCudaFunctionNV(
+            static_cast<VkDevice>( m_device ), static_cast<VkCudaFunctionNV>( m_function ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) );
+        }
+        m_device     = nullptr;
+        m_function   = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+      }
+
+      VULKAN_HPP_NAMESPACE::CudaFunctionNV release()
+      {
+        m_device     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+        return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_function, nullptr );
+      }
+
+      VULKAN_HPP_NAMESPACE::Device getDevice() const
+      {
+        return m_device;
+      }
+
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+      {
+        VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+        return m_dispatcher;
+      }
+
+      void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV & rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        std::swap( m_device, rhs.m_device );
+        std::swap( m_function, rhs.m_function );
+        std::swap( m_allocator, rhs.m_allocator );
+        std::swap( m_dispatcher, rhs.m_dispatcher );
+      }
+
+    private:
+      VULKAN_HPP_NAMESPACE::Device                                              m_device     = {};
+      VULKAN_HPP_NAMESPACE::CudaFunctionNV                                      m_function   = {};
+      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator  = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
+    };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    class CudaModuleNV
+    {
+    public:
+      using CType   = VkCudaModuleNV;
+      using CppType = vk::CudaModuleNV;
+
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV;
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+        VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
+
+    public:
+#    if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                    VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const &                            createInfo,
+                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+      {
+        *this = device.createCudaModuleNV( createInfo, allocator );
+      }
+#    endif
+
+      CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                    VkCudaModuleNV                                                                  module,
+                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+        : m_device( *device )
+        , m_module( module )
+        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
+        , m_dispatcher( device.getDispatcher() )
+      {
+      }
+
+      CudaModuleNV( std::nullptr_t ) {}
+
+      ~CudaModuleNV()
+      {
+        clear();
+      }
+
+      CudaModuleNV()                       = delete;
+      CudaModuleNV( CudaModuleNV const & ) = delete;
+
+      CudaModuleNV( CudaModuleNV && rhs ) VULKAN_HPP_NOEXCEPT
+        : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
+        , m_module( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_module, {} ) )
+        , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) )
+        , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
+      {
+      }
+
+      CudaModuleNV & operator=( CudaModuleNV const & ) = delete;
+
+      CudaModuleNV & operator=( CudaModuleNV && rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        if ( this != &rhs )
+        {
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_module, rhs.m_module );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
+        }
+        return *this;
+      }
+
+      VULKAN_HPP_NAMESPACE::CudaModuleNV const & operator*() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_module;
+      }
+
+      void clear() VULKAN_HPP_NOEXCEPT
+      {
+        if ( m_module )
+        {
+          getDispatcher()->vkDestroyCudaModuleNV(
+            static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) );
+        }
+        m_device     = nullptr;
+        m_module     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+      }
+
+      VULKAN_HPP_NAMESPACE::CudaModuleNV release()
+      {
+        m_device     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+        return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_module, nullptr );
+      }
+
+      VULKAN_HPP_NAMESPACE::Device getDevice() const
+      {
+        return m_device;
+      }
+
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+      {
+        VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+        return m_dispatcher;
+      }
+
+      void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV & rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        std::swap( m_device, rhs.m_device );
+        std::swap( m_module, rhs.m_module );
+        std::swap( m_allocator, rhs.m_allocator );
+        std::swap( m_dispatcher, rhs.m_dispatcher );
+      }
+
+      //=== VK_NV_cuda_kernel_launch ===
+
+      VULKAN_HPP_NODISCARD std::vector<uint8_t> getCache() const;
+
+    private:
+      VULKAN_HPP_NAMESPACE::Device                                              m_device     = {};
+      VULKAN_HPP_NAMESPACE::CudaModuleNV                                        m_module     = {};
+      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator  = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
+    };
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
     class DebugReportCallbackEXT
     {
     public:
-      using CType = VkDebugReportCallbackEXT;
+      using CType   = VkDebugReportCallbackEXT;
+      using CppType = vk::DebugReportCallbackEXT;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                               VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &                  createInfo,
                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateDebugReportCallbackEXT( static_cast<VkInstance>( *instance ),
-                                                                    reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkDebugReportCallbackEXT *>( &m_callback ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDebugReportCallbackEXT" );
-        }
+        *this = instance.createDebugReportCallbackEXT( createInfo, allocator );
       }
+#  endif
 
       DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                               VkDebugReportCallbackEXT                                                        callback,
@@ -6292,8 +6835,6 @@
 
       DebugReportCallbackEXT( std::nullptr_t ) {}
 
-      DebugReportCallbackEXT( std::nullptr_t ) {}
-
       ~DebugReportCallbackEXT()
       {
         clear();
@@ -6301,6 +6842,7 @@
 
       DebugReportCallbackEXT()                                 = delete;
       DebugReportCallbackEXT( DebugReportCallbackEXT const & ) = delete;
+
       DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT
         : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) )
         , m_callback( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_callback, {} ) )
@@ -6308,16 +6850,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DebugReportCallbackEXT & operator=( DebugReportCallbackEXT const & ) = delete;
-      DebugReportCallbackEXT & operator                                    =( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DebugReportCallbackEXT & operator=( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_instance   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} );
-          m_callback   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_callback, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_instance, rhs.m_instance );
+          std::swap( m_callback, rhs.m_callback );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6378,30 +6921,22 @@
     class DebugUtilsMessengerEXT
     {
     public:
-      using CType = VkDebugUtilsMessengerEXT;
+      using CType   = VkDebugUtilsMessengerEXT;
+      using CppType = vk::DebugUtilsMessengerEXT;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                               VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &                  createInfo,
                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateDebugUtilsMessengerEXT( static_cast<VkInstance>( *instance ),
-                                                                    reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkDebugUtilsMessengerEXT *>( &m_messenger ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDebugUtilsMessengerEXT" );
-        }
+        *this = instance.createDebugUtilsMessengerEXT( createInfo, allocator );
       }
+#  endif
 
       DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                               VkDebugUtilsMessengerEXT                                                        messenger,
@@ -6415,8 +6950,6 @@
 
       DebugUtilsMessengerEXT( std::nullptr_t ) {}
 
-      DebugUtilsMessengerEXT( std::nullptr_t ) {}
-
       ~DebugUtilsMessengerEXT()
       {
         clear();
@@ -6424,6 +6957,7 @@
 
       DebugUtilsMessengerEXT()                                 = delete;
       DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & ) = delete;
+
       DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT
         : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) )
         , m_messenger( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_messenger, {} ) )
@@ -6431,16 +6965,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT const & ) = delete;
-      DebugUtilsMessengerEXT & operator                                    =( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_instance   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} );
-          m_messenger  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_messenger, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_instance, rhs.m_instance );
+          std::swap( m_messenger, rhs.m_messenger );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6501,28 +7036,21 @@
     class DeferredOperationKHR
     {
     public:
-      using CType = VkDeferredOperationKHR;
+      using CType   = VkDeferredOperationKHR;
+      using CppType = vk::DeferredOperationKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateDeferredOperationKHR( static_cast<VkDevice>( *device ),
-                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                reinterpret_cast<VkDeferredOperationKHR *>( &m_operation ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDeferredOperationKHR" );
-        }
+        *this = device.createDeferredOperationKHR( allocator );
       }
+#  endif
 
       DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                             VkDeferredOperationKHR                                                          operation,
@@ -6536,8 +7064,6 @@
 
       DeferredOperationKHR( std::nullptr_t ) {}
 
-      DeferredOperationKHR( std::nullptr_t ) {}
-
       ~DeferredOperationKHR()
       {
         clear();
@@ -6545,6 +7071,7 @@
 
       DeferredOperationKHR()                               = delete;
       DeferredOperationKHR( DeferredOperationKHR const & ) = delete;
+
       DeferredOperationKHR( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_operation( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_operation, {} ) )
@@ -6552,16 +7079,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DeferredOperationKHR & operator=( DeferredOperationKHR const & ) = delete;
-      DeferredOperationKHR & operator                                  =( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DeferredOperationKHR & operator=( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_operation  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_operation, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_operation, rhs.m_operation );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6630,30 +7158,22 @@
     class DescriptorPool
     {
     public:
-      using CType = VkDescriptorPool;
+      using CType   = VkDescriptorPool;
+      using CppType = vk::DescriptorPool;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                       VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &                          createInfo,
                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateDescriptorPool( static_cast<VkDevice>( *device ),
-                                                          reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
-                                                          reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                          reinterpret_cast<VkDescriptorPool *>( &m_descriptorPool ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDescriptorPool" );
-        }
+        *this = device.createDescriptorPool( createInfo, allocator );
       }
+#  endif
 
       DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                       VkDescriptorPool                                                                descriptorPool,
@@ -6667,8 +7187,6 @@
 
       DescriptorPool( std::nullptr_t ) {}
 
-      DescriptorPool( std::nullptr_t ) {}
-
       ~DescriptorPool()
       {
         clear();
@@ -6676,6 +7194,7 @@
 
       DescriptorPool()                         = delete;
       DescriptorPool( DescriptorPool const & ) = delete;
+
       DescriptorPool( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) )
@@ -6683,16 +7202,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DescriptorPool & operator=( DescriptorPool const & ) = delete;
-      DescriptorPool & operator                            =( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DescriptorPool & operator=( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device         = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} );
-          m_allocator      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_descriptorPool, rhs.m_descriptorPool );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6757,7 +7277,8 @@
     class DescriptorSet
     {
     public:
-      using CType = VkDescriptorSet;
+      using CType   = VkDescriptorSet;
+      using CppType = vk::DescriptorSet;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
@@ -6778,6 +7299,7 @@
 
       DescriptorSet()                        = delete;
       DescriptorSet( DescriptorSet const & ) = delete;
+
       DescriptorSet( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) )
@@ -6785,16 +7307,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DescriptorSet & operator=( DescriptorSet const & ) = delete;
-      DescriptorSet & operator                           =( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DescriptorSet & operator=( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device         = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} );
-          m_descriptorSet  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_descriptorPool, rhs.m_descriptorPool );
+          std::swap( m_descriptorSet, rhs.m_descriptorSet );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -6870,63 +7393,48 @@
     class DescriptorSets : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DescriptorSets( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,
                       VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const &         allocateInfo )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkDescriptorSet>                                              descriptorSets( allocateInfo.descriptorSetCount );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkAllocateDescriptorSets(
-          static_cast<VkDevice>( *device ), reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), descriptorSets.data() ) );
-        if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          this->reserve( allocateInfo.descriptorSetCount );
-          for ( auto const & descriptorSet : descriptorSets )
-          {
-            this->emplace_back( device, descriptorSet, static_cast<VkDescriptorPool>( allocateInfo.descriptorPool ) );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkAllocateDescriptorSets" );
-        }
+        *this = device.allocateDescriptorSets( allocateInfo );
       }
+#  endif
 
       DescriptorSets( std::nullptr_t ) {}
 
-      DescriptorSets()                         = delete;
-      DescriptorSets( DescriptorSets const & ) = delete;
-      DescriptorSets( DescriptorSets && rhs )  = default;
+      DescriptorSets()                                     = delete;
+      DescriptorSets( DescriptorSets const & )             = delete;
+      DescriptorSets( DescriptorSets && rhs )              = default;
       DescriptorSets & operator=( DescriptorSets const & ) = delete;
-      DescriptorSets & operator=( DescriptorSets && rhs ) = default;
+      DescriptorSets & operator=( DescriptorSets && rhs )  = default;
+
+    private:
+      DescriptorSets( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class DescriptorSetLayout
     {
     public:
-      using CType = VkDescriptorSetLayout;
+      using CType   = VkDescriptorSetLayout;
+      using CppType = vk::DescriptorSetLayout;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                            VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &                     createInfo,
                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateDescriptorSetLayout( static_cast<VkDevice>( *device ),
-                                                               reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
-                                                               reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                               reinterpret_cast<VkDescriptorSetLayout *>( &m_descriptorSetLayout ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDescriptorSetLayout" );
-        }
+        *this = device.createDescriptorSetLayout( createInfo, allocator );
       }
+#  endif
 
       DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                            VkDescriptorSetLayout                                                           descriptorSetLayout,
@@ -6940,8 +7448,6 @@
 
       DescriptorSetLayout( std::nullptr_t ) {}
 
-      DescriptorSetLayout( std::nullptr_t ) {}
-
       ~DescriptorSetLayout()
       {
         clear();
@@ -6949,6 +7455,7 @@
 
       DescriptorSetLayout()                              = delete;
       DescriptorSetLayout( DescriptorSetLayout const & ) = delete;
+
       DescriptorSetLayout( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_descriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} ) )
@@ -6956,16 +7463,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DescriptorSetLayout & operator=( DescriptorSetLayout const & ) = delete;
-      DescriptorSetLayout & operator                                 =( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DescriptorSetLayout & operator=( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device              = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_descriptorSetLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} );
-          m_allocator           = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher          = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_descriptorSetLayout, rhs.m_descriptorSetLayout );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7032,30 +7540,22 @@
     class DescriptorUpdateTemplate
     {
     public:
-      using CType = VkDescriptorUpdateTemplate;
+      using CType   = VkDescriptorUpdateTemplate;
+      using CppType = vk::DescriptorUpdateTemplate;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateDescriptorUpdateTemplate( static_cast<VkDevice>( *device ),
-                                                                    reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkDescriptorUpdateTemplate *>( &m_descriptorUpdateTemplate ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDescriptorUpdateTemplate" );
-        }
+        *this = device.createDescriptorUpdateTemplate( createInfo, allocator );
       }
+#  endif
 
       DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VkDescriptorUpdateTemplate                                                      descriptorUpdateTemplate,
@@ -7069,8 +7569,6 @@
 
       DescriptorUpdateTemplate( std::nullptr_t ) {}
 
-      DescriptorUpdateTemplate( std::nullptr_t ) {}
-
       ~DescriptorUpdateTemplate()
       {
         clear();
@@ -7078,6 +7576,7 @@
 
       DescriptorUpdateTemplate()                                   = delete;
       DescriptorUpdateTemplate( DescriptorUpdateTemplate const & ) = delete;
+
       DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_descriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ) )
@@ -7085,16 +7584,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate const & ) = delete;
-      DescriptorUpdateTemplate & operator                                      =( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_descriptorUpdateTemplate = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} );
-          m_allocator                = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher               = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_descriptorUpdateTemplate, rhs.m_descriptorUpdateTemplate );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7155,30 +7655,22 @@
     class DeviceMemory
     {
     public:
-      using CType = VkDeviceMemory;
+      using CType   = VkDeviceMemory;
+      using CppType = vk::DeviceMemory;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &                                allocateInfo,
                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkAllocateMemory( static_cast<VkDevice>( *device ),
-                                                                                               reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
-                                                                                               reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                               reinterpret_cast<VkDeviceMemory *>( &m_memory ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkAllocateMemory" );
-        }
+        *this = device.allocateMemory( allocateInfo, allocator );
       }
+#  endif
 
       DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VkDeviceMemory                                                                  memory,
@@ -7192,8 +7684,6 @@
 
       DeviceMemory( std::nullptr_t ) {}
 
-      DeviceMemory( std::nullptr_t ) {}
-
       ~DeviceMemory()
       {
         clear();
@@ -7201,6 +7691,7 @@
 
       DeviceMemory()                       = delete;
       DeviceMemory( DeviceMemory const & ) = delete;
+
       DeviceMemory( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_memory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_memory, {} ) )
@@ -7208,16 +7699,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DeviceMemory & operator=( DeviceMemory const & ) = delete;
-      DeviceMemory & operator                          =( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DeviceMemory & operator=( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_memory     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_memory, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_memory, rhs.m_memory );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7297,49 +7789,38 @@
     class DisplayKHR
     {
     public:
-      using CType = VkDisplayKHR;
+      using CType   = VkDisplayKHR;
+      using CppType = vk::DisplayKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, int32_t drmFd, uint32_t connectorId )
-        : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( physicalDevice.getDispatcher()->vkGetDrmDisplayEXT(
-          static_cast<VkPhysicalDevice>( *physicalDevice ), drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &m_display ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkGetDrmDisplayEXT" );
-        }
+        *this = physicalDevice.getDrmDisplayEXT( drmFd, connectorId );
       }
+#  endif
 
-#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
       DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, Display & dpy, RROutput rrOutput )
-        : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( physicalDevice.getDispatcher()->vkGetRandROutputDisplayEXT(
-          static_cast<VkPhysicalDevice>( *physicalDevice ), &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &m_display ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkGetRandROutputDisplayEXT" );
-        }
+        *this = physicalDevice.getRandROutputDisplayEXT( dpy, rrOutput );
       }
-#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+#    endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_WIN32_KHR )
       DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t deviceRelativeId )
-        : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( physicalDevice.getDispatcher()->vkGetWinrtDisplayNV(
-          static_cast<VkPhysicalDevice>( *physicalDevice ), deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &m_display ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkGetWinrtDisplayNV" );
-        }
+        *this = physicalDevice.getWinrtDisplayNV( deviceRelativeId );
       }
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#    endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#  endif
 
       DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VkDisplayKHR display )
         : m_physicalDevice( *physicalDevice ), m_display( display ), m_dispatcher( physicalDevice.getDispatcher() )
@@ -7355,21 +7836,23 @@
 
       DisplayKHR()                     = delete;
       DisplayKHR( DisplayKHR const & ) = delete;
+
       DisplayKHR( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) )
         , m_display( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_display, {} ) )
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DisplayKHR & operator=( DisplayKHR const & ) = delete;
-      DisplayKHR & operator                        =( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      DisplayKHR & operator=( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} );
-          m_display        = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_display, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_physicalDevice, rhs.m_physicalDevice );
+          std::swap( m_display, rhs.m_display );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7419,9 +7902,10 @@
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const;
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR
-                           createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &                          createInfo,
-                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR>::Type
+        createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &                          createInfo,
+                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT;
 
       //=== VK_KHR_get_display_properties2 ===
 
@@ -7442,73 +7926,47 @@
     class DisplayKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DisplayKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t planeIndex )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher = physicalDevice.getDispatcher();
-        std::vector<VkDisplayKHR>                                                   displays;
-        uint32_t                                                                    displayCount;
-        VULKAN_HPP_NAMESPACE::Result                                                result;
-        do
-        {
-          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-            dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR( static_cast<VkPhysicalDevice>( *physicalDevice ), planeIndex, &displayCount, nullptr ) );
-          if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
-          {
-            displays.resize( displayCount );
-            result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR(
-              static_cast<VkPhysicalDevice>( *physicalDevice ), planeIndex, &displayCount, displays.data() ) );
-          }
-        } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
-        if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          VULKAN_HPP_ASSERT( displayCount <= displays.size() );
-          this->reserve( displayCount );
-          for ( auto const & displayKHR : displays )
-          {
-            this->emplace_back( physicalDevice, displayKHR );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkGetDisplayPlaneSupportedDisplaysKHR" );
-        }
+        *this = physicalDevice.getDisplayPlaneSupportedDisplaysKHR( planeIndex );
       }
+#  endif
 
       DisplayKHRs( std::nullptr_t ) {}
 
-      DisplayKHRs()                      = delete;
-      DisplayKHRs( DisplayKHRs const & ) = delete;
-      DisplayKHRs( DisplayKHRs && rhs )  = default;
+      DisplayKHRs()                                  = delete;
+      DisplayKHRs( DisplayKHRs const & )             = delete;
+      DisplayKHRs( DisplayKHRs && rhs )              = default;
       DisplayKHRs & operator=( DisplayKHRs const & ) = delete;
-      DisplayKHRs & operator=( DisplayKHRs && rhs ) = default;
+      DisplayKHRs & operator=( DisplayKHRs && rhs )  = default;
+
+    private:
+      DisplayKHRs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class DisplayModeKHR
     {
     public:
-      using CType = VkDisplayModeKHR;
+      using CType   = VkDisplayModeKHR;
+      using CppType = vk::DisplayModeKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &             display,
                       VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &                          createInfo,
                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_physicalDevice( display.getPhysicalDevice() ), m_dispatcher( display.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( display.getDispatcher()->vkCreateDisplayModeKHR(
-          static_cast<VkPhysicalDevice>( display.getPhysicalDevice() ),
-          static_cast<VkDisplayKHR>( *display ),
-          reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          reinterpret_cast<VkDisplayModeKHR *>( &m_displayModeKHR ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDisplayModeKHR" );
-        }
+        *this = display.createMode( createInfo, allocator );
       }
+#  endif
 
       DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, VkDisplayModeKHR displayModeKHR )
         : m_physicalDevice( display.getPhysicalDevice() ), m_displayModeKHR( displayModeKHR ), m_dispatcher( display.getDispatcher() )
@@ -7523,26 +7981,30 @@
       }
 
       DisplayModeKHR() = delete;
+
       DisplayModeKHR( DisplayModeKHR const & rhs ) : m_displayModeKHR( rhs.m_displayModeKHR ), m_dispatcher( rhs.m_dispatcher ) {}
+
       DisplayModeKHR( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) )
         , m_displayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ) )
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       DisplayModeKHR & operator=( DisplayModeKHR const & rhs )
       {
         m_displayModeKHR = rhs.m_displayModeKHR;
         m_dispatcher     = rhs.m_dispatcher;
         return *this;
       }
+
       DisplayModeKHR & operator=( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} );
-          m_displayModeKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_physicalDevice, rhs.m_physicalDevice );
+          std::swap( m_displayModeKHR, rhs.m_displayModeKHR );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7592,30 +8054,22 @@
     class Event
     {
     public:
-      using CType = VkEvent;
+      using CType   = VkEvent;
+      using CppType = vk::Event;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VULKAN_HPP_NAMESPACE::EventCreateInfo const &                                   createInfo,
              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateEvent( static_cast<VkDevice>( *device ),
-                                                                                            reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
-                                                                                            reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                            reinterpret_cast<VkEvent *>( &m_event ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateEvent" );
-        }
+        *this = device.createEvent( createInfo, allocator );
       }
+#  endif
 
       Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VkEvent                                                                         event,
@@ -7629,8 +8083,6 @@
 
       Event( std::nullptr_t ) {}
 
-      Event( std::nullptr_t ) {}
-
       ~Event()
       {
         clear();
@@ -7638,6 +8090,7 @@
 
       Event()                = delete;
       Event( Event const & ) = delete;
+
       Event( Event && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ) )
@@ -7645,16 +8098,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Event & operator=( Event const & ) = delete;
-      Event & operator                   =( Event && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Event & operator=( Event && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_event      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_event, rhs.m_event );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7722,68 +8176,41 @@
     class Fence
     {
     public:
-      using CType = VkFence;
+      using CType   = VkFence;
+      using CppType = vk::Fence;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VULKAN_HPP_NAMESPACE::FenceCreateInfo const &                                   createInfo,
              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateFence( static_cast<VkDevice>( *device ),
-                                                                                            reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
-                                                                                            reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                            reinterpret_cast<VkFence *>( &m_fence ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateFence" );
-        }
+        *this = device.createFence( createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &                                deviceEventInfo,
              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkRegisterDeviceEventEXT( static_cast<VkDevice>( *device ),
-                                                            reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
-                                                            reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                            reinterpret_cast<VkFence *>( &m_fence ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkRegisterDeviceEventEXT" );
-        }
+        *this = device.registerEventEXT( deviceEventInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &             display,
              VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const &                               displayEventInfo,
              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkRegisterDisplayEventEXT( static_cast<VkDevice>( *device ),
-                                                             static_cast<VkDisplayKHR>( *display ),
-                                                             reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
-                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                             reinterpret_cast<VkFence *>( &m_fence ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkRegisterDisplayEventEXT" );
-        }
+        *this = device.registerDisplayEventEXT( display, displayEventInfo, allocator );
       }
+#  endif
 
       Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VkFence                                                                         fence,
@@ -7797,8 +8224,6 @@
 
       Fence( std::nullptr_t ) {}
 
-      Fence( std::nullptr_t ) {}
-
       ~Fence()
       {
         clear();
@@ -7806,6 +8231,7 @@
 
       Fence()                = delete;
       Fence( Fence const & ) = delete;
+
       Fence( Fence && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ) )
@@ -7813,16 +8239,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Fence & operator=( Fence const & ) = delete;
-      Fence & operator                   =( Fence && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Fence & operator=( Fence && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_fence      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_fence, rhs.m_fence );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -7886,30 +8313,22 @@
     class Framebuffer
     {
     public:
-      using CType = VkFramebuffer;
+      using CType   = VkFramebuffer;
+      using CppType = vk::Framebuffer;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &                             createInfo,
                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateFramebuffer( static_cast<VkDevice>( *device ),
-                                                       reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
-                                                       reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                       reinterpret_cast<VkFramebuffer *>( &m_framebuffer ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateFramebuffer" );
-        }
+        *this = device.createFramebuffer( createInfo, allocator );
       }
+#  endif
 
       Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VkFramebuffer                                                                   framebuffer,
@@ -7923,8 +8342,6 @@
 
       Framebuffer( std::nullptr_t ) {}
 
-      Framebuffer( std::nullptr_t ) {}
-
       ~Framebuffer()
       {
         clear();
@@ -7932,6 +8349,7 @@
 
       Framebuffer()                      = delete;
       Framebuffer( Framebuffer const & ) = delete;
+
       Framebuffer( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ) )
@@ -7939,16 +8357,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Framebuffer & operator=( Framebuffer const & ) = delete;
-      Framebuffer & operator                         =( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Framebuffer & operator=( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_framebuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} );
-          m_allocator   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_framebuffer, rhs.m_framebuffer );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8012,30 +8431,22 @@
     class Image
     {
     public:
-      using CType = VkImage;
+      using CType   = VkImage;
+      using CppType = vk::Image;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VULKAN_HPP_NAMESPACE::ImageCreateInfo const &                                   createInfo,
              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateImage( static_cast<VkDevice>( *device ),
-                                                                                            reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
-                                                                                            reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                            reinterpret_cast<VkImage *>( &m_image ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateImage" );
-        }
+        *this = device.createImage( createInfo, allocator );
       }
+#  endif
 
       Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
              VkImage                                                                         image,
@@ -8049,8 +8460,6 @@
 
       Image( std::nullptr_t ) {}
 
-      Image( std::nullptr_t ) {}
-
       ~Image()
       {
         clear();
@@ -8058,6 +8467,7 @@
 
       Image()                = delete;
       Image( Image const & ) = delete;
+
       Image( Image && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ) )
@@ -8065,16 +8475,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Image & operator=( Image const & ) = delete;
-      Image & operator                   =( Image && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Image & operator=( Image && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_image      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_image, rhs.m_image );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8139,14 +8550,23 @@
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const;
 
-      //=== VK_EXT_image_compression_control ===
+      //=== VK_EXT_host_image_copy ===
 
-      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT
-                           getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource ) const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                           getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT;
 
       template <typename X, typename Y, typename... Z>
-      VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
-                           getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource ) const VULKAN_HPP_NOEXCEPT;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT;
+
+      //=== VK_KHR_maintenance5 ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+                           getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                           getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT;
 
     private:
       VULKAN_HPP_NAMESPACE::Device                                              m_device     = {};
@@ -8158,30 +8578,22 @@
     class ImageView
     {
     public:
-      using CType = VkImageView;
+      using CType   = VkImageView;
+      using CppType = vk::ImageView;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &                               createInfo,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateImageView( static_cast<VkDevice>( *device ),
-                                                                                                reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
-                                                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                                reinterpret_cast<VkImageView *>( &m_imageView ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateImageView" );
-        }
+        *this = device.createImageView( createInfo, allocator );
       }
+#  endif
 
       ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VkImageView                                                                     imageView,
@@ -8195,8 +8607,6 @@
 
       ImageView( std::nullptr_t ) {}
 
-      ImageView( std::nullptr_t ) {}
-
       ~ImageView()
       {
         clear();
@@ -8204,6 +8614,7 @@
 
       ImageView()                    = delete;
       ImageView( ImageView const & ) = delete;
+
       ImageView( ImageView && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_imageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ) )
@@ -8211,16 +8622,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       ImageView & operator=( ImageView const & ) = delete;
-      ImageView & operator                       =( ImageView && rhs ) VULKAN_HPP_NOEXCEPT
+
+      ImageView & operator=( ImageView && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_imageView  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_imageView, rhs.m_imageView );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8284,30 +8696,22 @@
     class IndirectCommandsLayoutNV
     {
     public:
-      using CType = VkIndirectCommandsLayoutNV;
+      using CType   = VkIndirectCommandsLayoutNV;
+      using CppType = vk::IndirectCommandsLayoutNV;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &                createInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateIndirectCommandsLayoutNV( static_cast<VkDevice>( *device ),
-                                                                    reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkIndirectCommandsLayoutNV *>( &m_indirectCommandsLayout ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateIndirectCommandsLayoutNV" );
-        }
+        *this = device.createIndirectCommandsLayoutNV( createInfo, allocator );
       }
+#  endif
 
       IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                 VkIndirectCommandsLayoutNV                                                      indirectCommandsLayout,
@@ -8321,8 +8725,6 @@
 
       IndirectCommandsLayoutNV( std::nullptr_t ) {}
 
-      IndirectCommandsLayoutNV( std::nullptr_t ) {}
-
       ~IndirectCommandsLayoutNV()
       {
         clear();
@@ -8330,6 +8732,7 @@
 
       IndirectCommandsLayoutNV()                                   = delete;
       IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & ) = delete;
+
       IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_indirectCommandsLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayout, {} ) )
@@ -8337,16 +8740,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV const & ) = delete;
-      IndirectCommandsLayoutNV & operator                                      =( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT
+
+      IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                 = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_indirectCommandsLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayout, {} );
-          m_allocator              = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher             = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_indirectCommandsLayout, rhs.m_indirectCommandsLayout );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8407,30 +8811,22 @@
     class MicromapEXT
     {
     public:
-      using CType = VkMicromapEXT;
+      using CType   = VkMicromapEXT;
+      using CppType = vk::MicromapEXT;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       MicromapEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const &                             createInfo,
                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateMicromapEXT( static_cast<VkDevice>( *device ),
-                                                       reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
-                                                       reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                       reinterpret_cast<VkMicromapEXT *>( &m_micromap ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateMicromapEXT" );
-        }
+        *this = device.createMicromapEXT( createInfo, allocator );
       }
+#  endif
 
       MicromapEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                    VkMicromapEXT                                                                   micromap,
@@ -8451,6 +8847,7 @@
 
       MicromapEXT()                      = delete;
       MicromapEXT( MicromapEXT const & ) = delete;
+
       MicromapEXT( MicromapEXT && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_micromap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_micromap, {} ) )
@@ -8458,16 +8855,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       MicromapEXT & operator=( MicromapEXT const & ) = delete;
-      MicromapEXT & operator                         =( MicromapEXT && rhs ) VULKAN_HPP_NOEXCEPT
+
+      MicromapEXT & operator=( MicromapEXT && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_micromap   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_micromap, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_micromap, rhs.m_micromap );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8527,30 +8925,22 @@
     class OpticalFlowSessionNV
     {
     public:
-      using CType = VkOpticalFlowSessionNV;
+      using CType   = VkOpticalFlowSessionNV;
+      using CppType = vk::OpticalFlowSessionNV;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       OpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                             VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const &                    createInfo,
                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateOpticalFlowSessionNV( static_cast<VkDevice>( *device ),
-                                                                reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
-                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                reinterpret_cast<VkOpticalFlowSessionNV *>( &m_session ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateOpticalFlowSessionNV" );
-        }
+        *this = device.createOpticalFlowSessionNV( createInfo, allocator );
       }
+#  endif
 
       OpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                             VkOpticalFlowSessionNV                                                          session,
@@ -8571,6 +8961,7 @@
 
       OpticalFlowSessionNV()                               = delete;
       OpticalFlowSessionNV( OpticalFlowSessionNV const & ) = delete;
+
       OpticalFlowSessionNV( OpticalFlowSessionNV && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_session( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_session, {} ) )
@@ -8578,16 +8969,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       OpticalFlowSessionNV & operator=( OpticalFlowSessionNV const & ) = delete;
-      OpticalFlowSessionNV & operator                                  =( OpticalFlowSessionNV && rhs ) VULKAN_HPP_NOEXCEPT
+
+      OpticalFlowSessionNV & operator=( OpticalFlowSessionNV && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_session    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_session, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_session, rhs.m_session );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8654,26 +9046,21 @@
     class PerformanceConfigurationINTEL
     {
     public:
-      using CType = VkPerformanceConfigurationINTEL;
+      using CType   = VkPerformanceConfigurationINTEL;
+      using CppType = vk::PerformanceConfigurationINTEL;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &        device,
                                      VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo )
-        : m_device( *device ), m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkAcquirePerformanceConfigurationINTEL( static_cast<VkDevice>( *device ),
-                                                                          reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
-                                                                          reinterpret_cast<VkPerformanceConfigurationINTEL *>( &m_configuration ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkAcquirePerformanceConfigurationINTEL" );
-        }
+        *this = device.acquirePerformanceConfigurationINTEL( acquireInfo );
       }
+#  endif
 
       PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPerformanceConfigurationINTEL configuration )
         : m_device( *device ), m_configuration( configuration ), m_dispatcher( device.getDispatcher() )
@@ -8682,8 +9069,6 @@
 
       PerformanceConfigurationINTEL( std::nullptr_t ) {}
 
-      PerformanceConfigurationINTEL( std::nullptr_t ) {}
-
       ~PerformanceConfigurationINTEL()
       {
         clear();
@@ -8691,21 +9076,23 @@
 
       PerformanceConfigurationINTEL()                                        = delete;
       PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & ) = delete;
+
       PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_configuration( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_configuration, {} ) )
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL const & ) = delete;
-      PerformanceConfigurationINTEL & operator                                           =( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT
+
+      PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device        = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_configuration = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_configuration, {} );
-          m_dispatcher    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_configuration, rhs.m_configuration );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8761,30 +9148,22 @@
     class PipelineCache
     {
     public:
-      using CType = VkPipelineCache;
+      using CType   = VkPipelineCache;
+      using CppType = vk::PipelineCache;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                      VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &                           createInfo,
                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreatePipelineCache( static_cast<VkDevice>( *device ),
-                                                         reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
-                                                         reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                         reinterpret_cast<VkPipelineCache *>( &m_pipelineCache ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreatePipelineCache" );
-        }
+        *this = device.createPipelineCache( createInfo, allocator );
       }
+#  endif
 
       PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                      VkPipelineCache                                                                 pipelineCache,
@@ -8798,8 +9177,6 @@
 
       PipelineCache( std::nullptr_t ) {}
 
-      PipelineCache( std::nullptr_t ) {}
-
       ~PipelineCache()
       {
         clear();
@@ -8807,6 +9184,7 @@
 
       PipelineCache()                        = delete;
       PipelineCache( PipelineCache const & ) = delete;
+
       PipelineCache( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_pipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ) )
@@ -8814,16 +9192,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       PipelineCache & operator=( PipelineCache const & ) = delete;
-      PipelineCache & operator                           =( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT
+
+      PipelineCache & operator=( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device        = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_pipelineCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} );
-          m_allocator     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_pipelineCache, rhs.m_pipelineCache );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -8890,104 +9269,66 @@
     class Pipeline
     {
     public:
-      using CType = VkPipeline;
+      using CType   = VkPipeline;
+      using CppType = vk::Pipeline;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                 VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const &                                                      createInfo,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          getDispatcher()->vkCreateComputePipelines( static_cast<VkDevice>( *device ),
-                                                     pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-                                                     1,
-                                                     reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
-                                                     reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                     reinterpret_cast<VkPipeline *>( &m_pipeline ) ) );
-        if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          throwResultException( m_constructorSuccessCode, "vkCreateComputePipelines" );
-        }
+        *this = device.createComputePipeline( pipelineCache, createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_ENABLE_BETA_EXTENSIONS )
+      Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
+                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+                VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const &                                           createInfo,
+                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
+      {
+        *this = device.createExecutionGraphPipelineAMDX( pipelineCache, createInfo, allocator );
+      }
+#    endif /*VK_ENABLE_BETA_EXTENSIONS*/
+#  endif
+
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const &                                                     createInfo,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          getDispatcher()->vkCreateGraphicsPipelines( static_cast<VkDevice>( *device ),
-                                                      pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-                                                      1,
-                                                      reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
-                                                      reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                      reinterpret_cast<VkPipeline *>( &m_pipeline ) ) );
-        if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          throwResultException( m_constructorSuccessCode, "vkCreateGraphicsPipelines" );
-        }
+        *this = device.createGraphicsPipeline( pipelineCache, createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                                     device,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
                 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const &                                                       createInfo,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          getDispatcher()->vkCreateRayTracingPipelinesKHR( static_cast<VkDevice>( *device ),
-                                                           deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0,
-                                                           pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-                                                           1,
-                                                           reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
-                                                           reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                           reinterpret_cast<VkPipeline *>( &m_pipeline ) ) );
-        if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesKHR" );
-        }
+        *this = device.createRayTracingPipelineKHR( deferredOperation, pipelineCache, createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const &                                                 createInfo,
                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          getDispatcher()->vkCreateRayTracingPipelinesNV( static_cast<VkDevice>( *device ),
-                                                          pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-                                                          1,
-                                                          reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
-                                                          reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                          reinterpret_cast<VkPipeline *>( &m_pipeline ) ) );
-        if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
-             ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesNV" );
-        }
+        *this = device.createRayTracingPipelineNV( pipelineCache, createInfo, allocator );
       }
+#  endif
 
       Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                 VkPipeline                                                                      pipeline,
@@ -9010,6 +9351,7 @@
 
       Pipeline()                   = delete;
       Pipeline( Pipeline const & ) = delete;
+
       Pipeline( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ) )
@@ -9018,17 +9360,18 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Pipeline & operator=( Pipeline const & ) = delete;
-      Pipeline & operator                      =( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Pipeline & operator=( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                 = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_pipeline               = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} );
-          m_allocator              = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_constructorSuccessCode, {} );
-          m_dispatcher             = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_pipeline, rhs.m_pipeline );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_constructorSuccessCode, rhs.m_constructorSuccessCode );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9091,15 +9434,13 @@
       VULKAN_HPP_NODISCARD std::vector<uint8_t> getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
                                                                   VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD   infoType ) const;
 
-      //=== VK_NV_ray_tracing ===
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+      //=== VK_AMDX_shader_enqueue ===
 
-      template <typename DataType>
-      VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const;
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX getExecutionGraphScratchSizeAMDX() const;
 
-      template <typename DataType>
-      VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const;
-
-      void compileDeferredNV( uint32_t shader ) const;
+      VULKAN_HPP_NODISCARD uint32_t getExecutionGraphNodeIndexAMDX( const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
       //=== VK_KHR_ray_tracing_pipeline ===
 
@@ -9119,6 +9460,16 @@
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize
         getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_NV_ray_tracing ===
+
+      template <typename DataType>
+      VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const;
+
+      template <typename DataType>
+      VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const;
+
+      void compileDeferredNV( uint32_t shader ) const;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                              m_device                 = {};
       VULKAN_HPP_NAMESPACE::Pipeline                                            m_pipeline               = {};
@@ -9130,157 +9481,93 @@
     class Pipelines : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &                    createInfos,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkPipeline>                                                   pipelines( createInfos.size() );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateComputePipelines(
-          static_cast<VkDevice>( *device ),
-          pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-          createInfos.size(),
-          reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          pipelines.data() ) );
-        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          this->reserve( createInfos.size() );
-          for ( auto const & pipeline : pipelines )
-          {
-            this->emplace_back( device, pipeline, allocator, result );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkCreateComputePipelines" );
-        }
+        *this = device.createComputePipelines( pipelineCache, createInfos, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_ENABLE_BETA_EXTENSIONS )
+      Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
+                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+                 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const &         createInfos,
+                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
+      {
+        *this = device.createExecutionGraphPipelinesAMDX( pipelineCache, createInfos, allocator );
+      }
+#    endif /*VK_ENABLE_BETA_EXTENSIONS*/
+#  endif
+
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &                   createInfos,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkPipeline>                                                   pipelines( createInfos.size() );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateGraphicsPipelines(
-          static_cast<VkDevice>( *device ),
-          pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-          createInfos.size(),
-          reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          pipelines.data() ) );
-        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          this->reserve( createInfos.size() );
-          for ( auto const & pipeline : pipelines )
-          {
-            this->emplace_back( device, pipeline, allocator, result );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkCreateGraphicsPipelines" );
-        }
+        *this = device.createGraphicsPipelines( pipelineCache, createInfos, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                                     device,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &                     createInfos,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator = nullptr )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkPipeline>                                                   pipelines( createInfos.size() );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateRayTracingPipelinesKHR(
-          static_cast<VkDevice>( *device ),
-          deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0,
-          pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-          createInfos.size(),
-          reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          pipelines.data() ) );
-        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) ||
-             ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          this->reserve( createInfos.size() );
-          for ( auto const & pipeline : pipelines )
-          {
-            this->emplace_back( device, pipeline, allocator, result );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkCreateRayTracingPipelinesKHR" );
-        }
+        *this = device.createRayTracingPipelinesKHR( deferredOperation, pipelineCache, createInfos, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                                              device,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &               createInfos,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator = nullptr )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkPipeline>                                                   pipelines( createInfos.size() );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateRayTracingPipelinesNV(
-          static_cast<VkDevice>( *device ),
-          pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
-          createInfos.size(),
-          reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          pipelines.data() ) );
-        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
-        {
-          this->reserve( createInfos.size() );
-          for ( auto const & pipeline : pipelines )
-          {
-            this->emplace_back( device, pipeline, allocator, result );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkCreateRayTracingPipelinesNV" );
-        }
+        *this = device.createRayTracingPipelinesNV( pipelineCache, createInfos, allocator );
       }
+#  endif
 
       Pipelines( std::nullptr_t ) {}
 
-      Pipelines()                    = delete;
-      Pipelines( Pipelines const & ) = delete;
-      Pipelines( Pipelines && rhs )  = default;
+      Pipelines()                                = delete;
+      Pipelines( Pipelines const & )             = delete;
+      Pipelines( Pipelines && rhs )              = default;
       Pipelines & operator=( Pipelines const & ) = delete;
-      Pipelines & operator=( Pipelines && rhs ) = default;
+      Pipelines & operator=( Pipelines && rhs )  = default;
+
+    private:
+      Pipelines( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class PipelineLayout
     {
     public:
-      using CType = VkPipelineLayout;
+      using CType   = VkPipelineLayout;
+      using CppType = vk::PipelineLayout;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                       VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &                          createInfo,
                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreatePipelineLayout( static_cast<VkDevice>( *device ),
-                                                          reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
-                                                          reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                          reinterpret_cast<VkPipelineLayout *>( &m_pipelineLayout ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreatePipelineLayout" );
-        }
+        *this = device.createPipelineLayout( createInfo, allocator );
       }
+#  endif
 
       PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                       VkPipelineLayout                                                                pipelineLayout,
@@ -9294,8 +9581,6 @@
 
       PipelineLayout( std::nullptr_t ) {}
 
-      PipelineLayout( std::nullptr_t ) {}
-
       ~PipelineLayout()
       {
         clear();
@@ -9303,6 +9588,7 @@
 
       PipelineLayout()                         = delete;
       PipelineLayout( PipelineLayout const & ) = delete;
+
       PipelineLayout( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_pipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ) )
@@ -9310,16 +9596,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       PipelineLayout & operator=( PipelineLayout const & ) = delete;
-      PipelineLayout & operator                            =( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT
+
+      PipelineLayout & operator=( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device         = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_pipelineLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} );
-          m_allocator      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_pipelineLayout, rhs.m_pipelineLayout );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9380,30 +9667,22 @@
     class PrivateDataSlot
     {
     public:
-      using CType = VkPrivateDataSlot;
+      using CType   = VkPrivateDataSlot;
+      using CppType = vk::PrivateDataSlot;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       PrivateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                        VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreatePrivateDataSlot( static_cast<VkDevice>( *device ),
-                                                           reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
-                                                           reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                           reinterpret_cast<VkPrivateDataSlot *>( &m_privateDataSlot ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreatePrivateDataSlot" );
-        }
+        *this = device.createPrivateDataSlot( createInfo, allocator );
       }
+#  endif
 
       PrivateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                        VkPrivateDataSlot                                                               privateDataSlot,
@@ -9424,6 +9703,7 @@
 
       PrivateDataSlot()                          = delete;
       PrivateDataSlot( PrivateDataSlot const & ) = delete;
+
       PrivateDataSlot( PrivateDataSlot && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_privateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlot, {} ) )
@@ -9431,16 +9711,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       PrivateDataSlot & operator=( PrivateDataSlot const & ) = delete;
-      PrivateDataSlot & operator                             =( PrivateDataSlot && rhs ) VULKAN_HPP_NOEXCEPT
+
+      PrivateDataSlot & operator=( PrivateDataSlot && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device          = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_privateDataSlot = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlot, {} );
-          m_allocator       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_privateDataSlot, rhs.m_privateDataSlot );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9501,30 +9782,22 @@
     class QueryPool
     {
     public:
-      using CType = VkQueryPool;
+      using CType   = VkQueryPool;
+      using CppType = vk::QueryPool;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &                               createInfo,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateQueryPool( static_cast<VkDevice>( *device ),
-                                                                                                reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
-                                                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                                reinterpret_cast<VkQueryPool *>( &m_queryPool ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateQueryPool" );
-        }
+        *this = device.createQueryPool( createInfo, allocator );
       }
+#  endif
 
       QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VkQueryPool                                                                     queryPool,
@@ -9538,8 +9811,6 @@
 
       QueryPool( std::nullptr_t ) {}
 
-      QueryPool( std::nullptr_t ) {}
-
       ~QueryPool()
       {
         clear();
@@ -9547,6 +9818,7 @@
 
       QueryPool()                    = delete;
       QueryPool( QueryPool const & ) = delete;
+
       QueryPool( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_queryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ) )
@@ -9554,16 +9826,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       QueryPool & operator=( QueryPool const & ) = delete;
-      QueryPool & operator                       =( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT
+
+      QueryPool & operator=( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_queryPool  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_queryPool, rhs.m_queryPool );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9648,25 +9921,27 @@
     class Queue
     {
     public:
-      using CType = VkQueue;
+      using CType   = VkQueue;
+      using CppType = vk::Queue;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, uint32_t queueFamilyIndex, uint32_t queueIndex )
-        : m_dispatcher( device.getDispatcher() )
       {
-        getDispatcher()->vkGetDeviceQueue( static_cast<VkDevice>( *device ), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &m_queue ) );
+        *this = device.getQueue( queueFamilyIndex, queueIndex );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo )
-        : m_dispatcher( device.getDispatcher() )
       {
-        getDispatcher()->vkGetDeviceQueue2(
-          static_cast<VkDevice>( *device ), reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &m_queue ) );
+        *this = device.getQueue2( queueInfo );
       }
+#  endif
 
       Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkQueue queue ) : m_queue( queue ), m_dispatcher( device.getDispatcher() )
       {
@@ -9680,24 +9955,28 @@
       }
 
       Queue() = delete;
+
       Queue( Queue const & rhs ) : m_queue( rhs.m_queue ), m_dispatcher( rhs.m_dispatcher ) {}
+
       Queue( Queue && rhs ) VULKAN_HPP_NOEXCEPT
         : m_queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ) )
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Queue & operator=( Queue const & rhs )
       {
         m_queue      = rhs.m_queue;
         m_dispatcher = rhs.m_dispatcher;
         return *this;
       }
+
       Queue & operator=( Queue && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          m_queue      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_queue, rhs.m_queue );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9746,11 +10025,6 @@
       void submit2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
                     VULKAN_HPP_NAMESPACE::Fence fence                                                 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const;
 
-      //=== VK_VERSION_1_3 ===
-
-      void submit2( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
-                    VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const;
-
       //=== VK_KHR_swapchain ===
 
       VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const;
@@ -9778,6 +10052,10 @@
 
       VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> getCheckpointData2NV() const;
 
+      //=== VK_NV_low_latency2 ===
+
+      void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT;
+
     private:
       VULKAN_HPP_NAMESPACE::Queue                                               m_queue      = {};
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
@@ -9786,48 +10064,31 @@
     class RenderPass
     {
     public:
-      using CType = VkRenderPass;
+      using CType   = VkRenderPass;
+      using CppType = vk::RenderPass;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                   VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &                              createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateRenderPass( static_cast<VkDevice>( *device ),
-                                                      reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
-                                                      reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                      reinterpret_cast<VkRenderPass *>( &m_renderPass ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateRenderPass" );
-        }
+        *this = device.createRenderPass( createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                   VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateRenderPass2( static_cast<VkDevice>( *device ),
-                                                       reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
-                                                       reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                       reinterpret_cast<VkRenderPass *>( &m_renderPass ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateRenderPass2" );
-        }
+        *this = device.createRenderPass2( createInfo, allocator );
       }
+#  endif
 
       RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                   VkRenderPass                                                                    renderPass,
@@ -9841,8 +10102,6 @@
 
       RenderPass( std::nullptr_t ) {}
 
-      RenderPass( std::nullptr_t ) {}
-
       ~RenderPass()
       {
         clear();
@@ -9850,6 +10109,7 @@
 
       RenderPass()                     = delete;
       RenderPass( RenderPass const & ) = delete;
+
       RenderPass( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_renderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ) )
@@ -9857,16 +10117,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       RenderPass & operator=( RenderPass const & ) = delete;
-      RenderPass & operator                        =( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT
+
+      RenderPass & operator=( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_renderPass = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_renderPass, rhs.m_renderPass );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -9934,30 +10195,22 @@
     class Sampler
     {
     public:
-      using CType = VkSampler;
+      using CType   = VkSampler;
+      using CppType = vk::Sampler;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &                                 createInfo,
                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateSampler( static_cast<VkDevice>( *device ),
-                                                                                              reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
-                                                                                              reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                              reinterpret_cast<VkSampler *>( &m_sampler ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateSampler" );
-        }
+        *this = device.createSampler( createInfo, allocator );
       }
+#  endif
 
       Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                VkSampler                                                                       sampler,
@@ -9971,8 +10224,6 @@
 
       Sampler( std::nullptr_t ) {}
 
-      Sampler( std::nullptr_t ) {}
-
       ~Sampler()
       {
         clear();
@@ -9980,6 +10231,7 @@
 
       Sampler()                  = delete;
       Sampler( Sampler const & ) = delete;
+
       Sampler( Sampler && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ) )
@@ -9987,16 +10239,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Sampler & operator=( Sampler const & ) = delete;
-      Sampler & operator                     =( Sampler && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Sampler & operator=( Sampler && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_sampler    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_sampler, rhs.m_sampler );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10056,30 +10309,22 @@
     class SamplerYcbcrConversion
     {
     public:
-      using CType = VkSamplerYcbcrConversion;
+      using CType   = VkSamplerYcbcrConversion;
+      using CppType = vk::SamplerYcbcrConversion;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                               VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateSamplerYcbcrConversion( static_cast<VkDevice>( *device ),
-                                                                  reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
-                                                                  reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                  reinterpret_cast<VkSamplerYcbcrConversion *>( &m_ycbcrConversion ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateSamplerYcbcrConversion" );
-        }
+        *this = device.createSamplerYcbcrConversion( createInfo, allocator );
       }
+#  endif
 
       SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                               VkSamplerYcbcrConversion                                                        ycbcrConversion,
@@ -10093,8 +10338,6 @@
 
       SamplerYcbcrConversion( std::nullptr_t ) {}
 
-      SamplerYcbcrConversion( std::nullptr_t ) {}
-
       ~SamplerYcbcrConversion()
       {
         clear();
@@ -10102,6 +10345,7 @@
 
       SamplerYcbcrConversion()                                 = delete;
       SamplerYcbcrConversion( SamplerYcbcrConversion const & ) = delete;
+
       SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_ycbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_ycbcrConversion, {} ) )
@@ -10109,16 +10353,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       SamplerYcbcrConversion & operator=( SamplerYcbcrConversion const & ) = delete;
-      SamplerYcbcrConversion & operator                                    =( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT
+
+      SamplerYcbcrConversion & operator=( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device          = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_ycbcrConversion = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_ycbcrConversion, {} );
-          m_allocator       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_ycbcrConversion, rhs.m_ycbcrConversion );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10179,30 +10424,22 @@
     class Semaphore
     {
     public:
-      using CType = VkSemaphore;
+      using CType   = VkSemaphore;
+      using CppType = vk::Semaphore;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &                               createInfo,
                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result =
-          static_cast<VULKAN_HPP_NAMESPACE::Result>( device.getDispatcher()->vkCreateSemaphore( static_cast<VkDevice>( *device ),
-                                                                                                reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
-                                                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                                                reinterpret_cast<VkSemaphore *>( &m_semaphore ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateSemaphore" );
-        }
+        *this = device.createSemaphore( createInfo, allocator );
       }
+#  endif
 
       Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                  VkSemaphore                                                                     semaphore,
@@ -10216,8 +10453,6 @@
 
       Semaphore( std::nullptr_t ) {}
 
-      Semaphore( std::nullptr_t ) {}
-
       ~Semaphore()
       {
         clear();
@@ -10225,6 +10460,7 @@
 
       Semaphore()                    = delete;
       Semaphore( Semaphore const & ) = delete;
+
       Semaphore( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ) )
@@ -10232,16 +10468,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       Semaphore & operator=( Semaphore const & ) = delete;
-      Semaphore & operator                       =( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT
+
+      Semaphore & operator=( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_semaphore  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_semaphore, rhs.m_semaphore );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10306,33 +10543,170 @@
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
     };
 
+    class ShaderEXT
+    {
+    public:
+      using CType   = VkShaderEXT;
+      using CppType = vk::ShaderEXT;
+
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT;
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+        VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+    public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      ShaderEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                 VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const &                               createInfo,
+                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+      {
+        *this = device.createShaderEXT( createInfo, allocator );
+      }
+#  endif
+
+      ShaderEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                 VkShaderEXT                                                                     shader,
+                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+        : m_device( *device )
+        , m_shader( shader )
+        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
+        , m_dispatcher( device.getDispatcher() )
+      {
+      }
+
+      ShaderEXT( std::nullptr_t ) {}
+
+      ~ShaderEXT()
+      {
+        clear();
+      }
+
+      ShaderEXT()                    = delete;
+      ShaderEXT( ShaderEXT const & ) = delete;
+
+      ShaderEXT( ShaderEXT && rhs ) VULKAN_HPP_NOEXCEPT
+        : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
+        , m_shader( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shader, {} ) )
+        , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) )
+        , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
+      {
+      }
+
+      ShaderEXT & operator=( ShaderEXT const & ) = delete;
+
+      ShaderEXT & operator=( ShaderEXT && rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        if ( this != &rhs )
+        {
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_shader, rhs.m_shader );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
+        }
+        return *this;
+      }
+
+      VULKAN_HPP_NAMESPACE::ShaderEXT const & operator*() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_shader;
+      }
+
+      void clear() VULKAN_HPP_NOEXCEPT
+      {
+        if ( m_shader )
+        {
+          getDispatcher()->vkDestroyShaderEXT(
+            static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) );
+        }
+        m_device     = nullptr;
+        m_shader     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+      }
+
+      VULKAN_HPP_NAMESPACE::ShaderEXT release()
+      {
+        m_device     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+        return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_shader, nullptr );
+      }
+
+      VULKAN_HPP_NAMESPACE::Device getDevice() const
+      {
+        return m_device;
+      }
+
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+      {
+        VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+        return m_dispatcher;
+      }
+
+      void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT & rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        std::swap( m_device, rhs.m_device );
+        std::swap( m_shader, rhs.m_shader );
+        std::swap( m_allocator, rhs.m_allocator );
+        std::swap( m_dispatcher, rhs.m_dispatcher );
+      }
+
+      //=== VK_EXT_shader_object ===
+
+      VULKAN_HPP_NODISCARD std::vector<uint8_t> getBinaryData() const;
+
+    private:
+      VULKAN_HPP_NAMESPACE::Device                                              m_device     = {};
+      VULKAN_HPP_NAMESPACE::ShaderEXT                                           m_shader     = {};
+      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator  = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
+    };
+
+    class ShaderEXTs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>
+    {
+    public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      ShaderEXTs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                     device,
+                  VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator = nullptr )
+      {
+        *this = device.createShadersEXT( createInfos, allocator );
+      }
+#  endif
+
+      ShaderEXTs( std::nullptr_t ) {}
+
+      ShaderEXTs()                                 = delete;
+      ShaderEXTs( ShaderEXTs const & )             = delete;
+      ShaderEXTs( ShaderEXTs && rhs )              = default;
+      ShaderEXTs & operator=( ShaderEXTs const & ) = delete;
+      ShaderEXTs & operator=( ShaderEXTs && rhs )  = default;
+
+    private:
+      ShaderEXTs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
+    };
+
     class ShaderModule
     {
     public:
-      using CType = VkShaderModule;
+      using CType   = VkShaderModule;
+      using CppType = vk::ShaderModule;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &                            createInfo,
                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateShaderModule( static_cast<VkDevice>( *device ),
-                                                        reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
-                                                        reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                        reinterpret_cast<VkShaderModule *>( &m_shaderModule ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateShaderModule" );
-        }
+        *this = device.createShaderModule( createInfo, allocator );
       }
+#  endif
 
       ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VkShaderModule                                                                  shaderModule,
@@ -10346,8 +10720,6 @@
 
       ShaderModule( std::nullptr_t ) {}
 
-      ShaderModule( std::nullptr_t ) {}
-
       ~ShaderModule()
       {
         clear();
@@ -10355,6 +10727,7 @@
 
       ShaderModule()                       = delete;
       ShaderModule( ShaderModule const & ) = delete;
+
       ShaderModule( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_shaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ) )
@@ -10362,16 +10735,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       ShaderModule & operator=( ShaderModule const & ) = delete;
-      ShaderModule & operator                          =( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT
+
+      ShaderModule & operator=( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_shaderModule = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} );
-          m_allocator    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_shaderModule, rhs.m_shaderModule );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10435,308 +10809,174 @@
     class SurfaceKHR
     {
     public:
-      using CType = VkSurfaceKHR;
+      using CType   = VkSurfaceKHR;
+      using CppType = vk::SurfaceKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
 
     public:
-#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_ANDROID_KHR )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &                       createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateAndroidSurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                               reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
-                                                               reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                               reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateAndroidSurfaceKHR" );
-        }
+        *this = instance.createAndroidSurfaceKHR( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#    endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &                      createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateDirectFBSurfaceEXT( static_cast<VkInstance>( *instance ),
-                                                                reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
-                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDirectFBSurfaceEXT" );
-        }
+        *this = instance.createDirectFBSurfaceEXT( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+#    endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &                       createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateDisplayPlaneSurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                                    reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
-                                                                    reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                    reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateDisplayPlaneSurfaceKHR" );
-        }
+        *this = instance.createDisplayPlaneSurfaceKHR( createInfo, allocator );
       }
+#  endif
 
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &                      createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateHeadlessSurfaceEXT( static_cast<VkInstance>( *instance ),
-                                                                reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
-                                                                reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateHeadlessSurfaceEXT" );
-        }
+        *this = instance.createHeadlessSurfaceEXT( createInfo, allocator );
       }
+#  endif
 
-#  if defined( VK_USE_PLATFORM_IOS_MVK )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_IOS_MVK )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &                           createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateIOSSurfaceMVK( static_cast<VkInstance>( *instance ),
-                                                           reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
-                                                           reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                           reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateIOSSurfaceMVK" );
-        }
+        *this = instance.createIOSSurfaceMVK( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_IOS_MVK*/
+#    endif /*VK_USE_PLATFORM_IOS_MVK*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_FUCHSIA )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_FUCHSIA )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &                 createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA( static_cast<VkInstance>( *instance ),
-                                                                     reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
-                                                                     reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                     reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateImagePipeSurfaceFUCHSIA" );
-        }
+        *this = instance.createImagePipeSurfaceFUCHSIA( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+#    endif /*VK_USE_PLATFORM_FUCHSIA*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_MACOS_MVK )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_MACOS_MVK )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &                         createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateMacOSSurfaceMVK( static_cast<VkInstance>( *instance ),
-                                                             reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
-                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                             reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateMacOSSurfaceMVK" );
-        }
+        *this = instance.createMacOSSurfaceMVK( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_MACOS_MVK*/
+#    endif /*VK_USE_PLATFORM_MACOS_MVK*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_METAL_EXT )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_METAL_EXT )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &                         createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateMetalSurfaceEXT( static_cast<VkInstance>( *instance ),
-                                                             reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
-                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                             reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateMetalSurfaceEXT" );
-        }
+        *this = instance.createMetalSurfaceEXT( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_METAL_EXT*/
+#    endif /*VK_USE_PLATFORM_METAL_EXT*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_SCREEN_QNX )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &                        createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateScreenSurfaceQNX( static_cast<VkInstance>( *instance ),
-                                                              reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
-                                                              reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                              reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateScreenSurfaceQNX" );
-        }
+        *this = instance.createScreenSurfaceQNX( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+#    endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_GGP )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_GGP )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &              createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateStreamDescriptorSurfaceGGP( static_cast<VkInstance>( *instance ),
-                                                                        reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
-                                                                        reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                        reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateStreamDescriptorSurfaceGGP" );
-        }
+        *this = instance.createStreamDescriptorSurfaceGGP( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_GGP*/
+#    endif /*VK_USE_PLATFORM_GGP*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_VI_NN )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_VI_NN )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &                             createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateViSurfaceNN( static_cast<VkInstance>( *instance ),
-                                                         reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
-                                                         reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                         reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateViSurfaceNN" );
-        }
+        *this = instance.createViSurfaceNN( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_VI_NN*/
+#    endif /*VK_USE_PLATFORM_VI_NN*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_WAYLAND_KHR )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &                       createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateWaylandSurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                               reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
-                                                               reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                               reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateWaylandSurfaceKHR" );
-        }
+        *this = instance.createWaylandSurfaceKHR( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#    endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_WIN32_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_WIN32_KHR )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &                         createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateWin32SurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                             reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
-                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                             reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateWin32SurfaceKHR" );
-        }
+        *this = instance.createWin32SurfaceKHR( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#    endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_XCB_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_XCB_KHR )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &                           createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateXcbSurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                           reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
-                                                           reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                           reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateXcbSurfaceKHR" );
-        }
+        *this = instance.createXcbSurfaceKHR( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_XCB_KHR*/
+#    endif /*VK_USE_PLATFORM_XCB_KHR*/
+#  endif
 
-#  if defined( VK_USE_PLATFORM_XLIB_KHR )
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+#    if defined( VK_USE_PLATFORM_XLIB_KHR )
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &                          createInfo,
                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_instance( *instance )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( instance.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          instance.getDispatcher()->vkCreateXlibSurfaceKHR( static_cast<VkInstance>( *instance ),
-                                                            reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
-                                                            reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                            reinterpret_cast<VkSurfaceKHR *>( &m_surface ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateXlibSurfaceKHR" );
-        }
+        *this = instance.createXlibSurfaceKHR( createInfo, allocator );
       }
-#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#    endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#  endif
 
       SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &               instance,
                   VkSurfaceKHR                                                                    surface,
@@ -10750,8 +10990,6 @@
 
       SurfaceKHR( std::nullptr_t ) {}
 
-      SurfaceKHR( std::nullptr_t ) {}
-
       ~SurfaceKHR()
       {
         clear();
@@ -10759,6 +10997,7 @@
 
       SurfaceKHR()                     = delete;
       SurfaceKHR( SurfaceKHR const & ) = delete;
+
       SurfaceKHR( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) )
         , m_surface( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surface, {} ) )
@@ -10766,16 +11005,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       SurfaceKHR & operator=( SurfaceKHR const & ) = delete;
-      SurfaceKHR & operator                        =( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      SurfaceKHR & operator=( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_instance   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} );
-          m_surface    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surface, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_instance, rhs.m_instance );
+          std::swap( m_surface, rhs.m_surface );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10835,30 +11075,22 @@
     class SwapchainKHR
     {
     public:
-      using CType = VkSwapchainKHR;
+      using CType   = VkSwapchainKHR;
+      using CppType = vk::SwapchainKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateSwapchainKHR( static_cast<VkDevice>( *device ),
-                                                        reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
-                                                        reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                        reinterpret_cast<VkSwapchainKHR *>( &m_swapchain ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateSwapchainKHR" );
-        }
+        *this = device.createSwapchainKHR( createInfo, allocator );
       }
+#  endif
 
       SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                     VkSwapchainKHR                                                                  swapchain,
@@ -10879,6 +11111,7 @@
 
       SwapchainKHR()                       = delete;
       SwapchainKHR( SwapchainKHR const & ) = delete;
+
       SwapchainKHR( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_swapchain( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchain, {} ) )
@@ -10886,16 +11119,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       SwapchainKHR & operator=( SwapchainKHR const & ) = delete;
-      SwapchainKHR & operator                          =( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      SwapchainKHR & operator=( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_swapchain  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchain, {} );
-          m_allocator  = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_swapchain, rhs.m_swapchain );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -10984,6 +11218,16 @@
       void releaseFullScreenExclusiveModeEXT() const;
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
+      //=== VK_NV_low_latency2 ===
+
+      void setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const;
+
+      void latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const;
+
+      void setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                              m_device     = {};
       VULKAN_HPP_NAMESPACE::SwapchainKHR                                        m_swapchain  = {};
@@ -10994,68 +11238,49 @@
     class SwapchainKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
     {
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       SwapchainKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                        device,
                      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator = nullptr )
       {
-        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher();
-        std::vector<VkSwapchainKHR>                                               swapchains( createInfos.size() );
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateSharedSwapchainsKHR(
-          static_cast<VkDevice>( *device ),
-          createInfos.size(),
-          reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
-          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
-          swapchains.data() ) );
-        if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          this->reserve( createInfos.size() );
-          for ( auto const & swapchainKHR : swapchains )
-          {
-            this->emplace_back( device, swapchainKHR, allocator );
-          }
-        }
-        else
-        {
-          throwResultException( result, "vkCreateSharedSwapchainsKHR" );
-        }
+        *this = device.createSharedSwapchainsKHR( createInfos, allocator );
       }
+#  endif
 
       SwapchainKHRs( std::nullptr_t ) {}
 
-      SwapchainKHRs()                        = delete;
-      SwapchainKHRs( SwapchainKHRs const & ) = delete;
-      SwapchainKHRs( SwapchainKHRs && rhs )  = default;
+      SwapchainKHRs()                                    = delete;
+      SwapchainKHRs( SwapchainKHRs const & )             = delete;
+      SwapchainKHRs( SwapchainKHRs && rhs )              = default;
       SwapchainKHRs & operator=( SwapchainKHRs const & ) = delete;
-      SwapchainKHRs & operator=( SwapchainKHRs && rhs ) = default;
+      SwapchainKHRs & operator=( SwapchainKHRs && rhs )  = default;
+
+    private:
+      SwapchainKHRs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> && rhs )
+      {
+        std::swap( *this, rhs );
+      }
     };
 
     class ValidationCacheEXT
     {
     public:
-      using CType = VkValidationCacheEXT;
+      using CType   = VkValidationCacheEXT;
+      using CppType = vk::ValidationCacheEXT;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                           VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateValidationCacheEXT( static_cast<VkDevice>( *device ),
-                                                              reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
-                                                              reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                              reinterpret_cast<VkValidationCacheEXT *>( &m_validationCache ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateValidationCacheEXT" );
-        }
+        *this = device.createValidationCacheEXT( createInfo, allocator );
       }
+#  endif
 
       ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                           VkValidationCacheEXT                                                            validationCache,
@@ -11069,8 +11294,6 @@
 
       ValidationCacheEXT( std::nullptr_t ) {}
 
-      ValidationCacheEXT( std::nullptr_t ) {}
-
       ~ValidationCacheEXT()
       {
         clear();
@@ -11078,6 +11301,7 @@
 
       ValidationCacheEXT()                             = delete;
       ValidationCacheEXT( ValidationCacheEXT const & ) = delete;
+
       ValidationCacheEXT( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_validationCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCache, {} ) )
@@ -11085,16 +11309,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       ValidationCacheEXT & operator=( ValidationCacheEXT const & ) = delete;
-      ValidationCacheEXT & operator                                =( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT
+
+      ValidationCacheEXT & operator=( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device          = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_validationCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCache, {} );
-          m_allocator       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher      = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_validationCache, rhs.m_validationCache );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -11158,34 +11383,25 @@
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher      = nullptr;
     };
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     class VideoSessionKHR
     {
     public:
-      using CType = VkVideoSessionKHR;
+      using CType   = VkVideoSessionKHR;
+      using CppType = vk::VideoSessionKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       VideoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                        VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &                         createInfo,
                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateVideoSessionKHR( static_cast<VkDevice>( *device ),
-                                                           reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
-                                                           reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                           reinterpret_cast<VkVideoSessionKHR *>( &m_videoSession ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateVideoSessionKHR" );
-        }
+        *this = device.createVideoSessionKHR( createInfo, allocator );
       }
+#  endif
 
       VideoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                        VkVideoSessionKHR                                                               videoSession,
@@ -11199,8 +11415,6 @@
 
       VideoSessionKHR( std::nullptr_t ) {}
 
-      VideoSessionKHR( std::nullptr_t ) {}
-
       ~VideoSessionKHR()
       {
         clear();
@@ -11208,6 +11422,7 @@
 
       VideoSessionKHR()                          = delete;
       VideoSessionKHR( VideoSessionKHR const & ) = delete;
+
       VideoSessionKHR( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_videoSession( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSession, {} ) )
@@ -11215,16 +11430,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       VideoSessionKHR & operator=( VideoSessionKHR const & ) = delete;
-      VideoSessionKHR & operator                             =( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      VideoSessionKHR & operator=( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_videoSession = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSession, {} );
-          m_allocator    = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher   = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_videoSession, rhs.m_videoSession );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -11287,36 +11503,26 @@
       const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator    = {};
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher   = nullptr;
     };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     class VideoSessionParametersKHR
     {
     public:
-      using CType = VkVideoSessionParametersKHR;
+      using CType   = VkVideoSessionParametersKHR;
+      using CppType = vk::VideoSessionParametersKHR;
 
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR;
       static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
         VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
     public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
       VideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                  VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &               createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
-        : m_device( *device )
-        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
-        , m_dispatcher( device.getDispatcher() )
       {
-        VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-          device.getDispatcher()->vkCreateVideoSessionParametersKHR( static_cast<VkDevice>( *device ),
-                                                                     reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
-                                                                     reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ),
-                                                                     reinterpret_cast<VkVideoSessionParametersKHR *>( &m_videoSessionParameters ) ) );
-        if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-        {
-          throwResultException( result, "vkCreateVideoSessionParametersKHR" );
-        }
+        *this = device.createVideoSessionParametersKHR( createInfo, allocator );
       }
+#  endif
 
       VideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
                                  VkVideoSessionParametersKHR                                                     videoSessionParameters,
@@ -11330,8 +11536,6 @@
 
       VideoSessionParametersKHR( std::nullptr_t ) {}
 
-      VideoSessionParametersKHR( std::nullptr_t ) {}
-
       ~VideoSessionParametersKHR()
       {
         clear();
@@ -11339,6 +11543,7 @@
 
       VideoSessionParametersKHR()                                    = delete;
       VideoSessionParametersKHR( VideoSessionParametersKHR const & ) = delete;
+
       VideoSessionParametersKHR( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT
         : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
         , m_videoSessionParameters( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParameters, {} ) )
@@ -11346,16 +11551,17 @@
         , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
       {
       }
+
       VideoSessionParametersKHR & operator=( VideoSessionParametersKHR const & ) = delete;
-      VideoSessionParametersKHR & operator                                       =( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT
+
+      VideoSessionParametersKHR & operator=( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT
       {
         if ( this != &rhs )
         {
-          clear();
-          m_device                 = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
-          m_videoSessionParameters = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParameters, {} );
-          m_allocator              = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} );
-          m_dispatcher             = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr );
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_videoSessionParameters, rhs.m_videoSessionParameters );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
         }
         return *this;
       }
@@ -11416,7 +11622,6 @@
       const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator              = {};
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher             = nullptr;
     };
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     //===========================
     //=== COMMAND Definitions ===
@@ -11424,20 +11629,68 @@
 
     //=== VK_VERSION_1_0 ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Instance
-                                           Context::createInstance( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &                                createInfo,
-                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance>::Type
+                        Context::createInstance( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &                                createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Instance( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Instance instance;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateInstance(
+        reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkInstance *>( &instance ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Context::createInstance" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance( *this, *reinterpret_cast<VkInstance *>( &instance ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> Instance::enumeratePhysicalDevices() const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>>::Type
+      Instance::enumeratePhysicalDevices() const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PhysicalDevices( *this );
+      std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice> physicalDevices;
+      uint32_t                                          physicalDeviceCount;
+      VULKAN_HPP_NAMESPACE::Result                      result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkEnumeratePhysicalDevices( static_cast<VkInstance>( m_instance ), &physicalDeviceCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
+        {
+          physicalDevices.resize( physicalDeviceCount );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDevices(
+            static_cast<VkInstance>( m_instance ), &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::enumeratePhysicalDevices" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> physicalDevicesRAII;
+      physicalDevicesRAII.reserve( physicalDevices.size() );
+      for ( auto & physicalDevice : physicalDevices )
+      {
+        physicalDevicesRAII.emplace_back( *this, *reinterpret_cast<VkPhysicalDevice *>( &physicalDevice ) );
+      }
+      return physicalDevicesRAII;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures && "Function <vkGetPhysicalDeviceFeatures> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
       getDispatcher()->vkGetPhysicalDeviceFeatures( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                     reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) );
@@ -11446,8 +11699,10 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties
-      PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
+                                           PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties && "Function <vkGetPhysicalDeviceFormatProperties> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
       getDispatcher()->vkGetPhysicalDeviceFormatProperties(
         static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) );
@@ -11456,27 +11711,33 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties
-      PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format           format,
+                                           PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format           format,
                                                 VULKAN_HPP_NAMESPACE::ImageType        type,
                                                 VULKAN_HPP_NAMESPACE::ImageTiling      tiling,
                                                 VULKAN_HPP_NAMESPACE::ImageUsageFlags  usage,
                                                 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties &&
+                         "Function <vkGetPhysicalDeviceImageFormatProperties> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                   static_cast<VkFormat>( format ),
-                                                                                   static_cast<VkImageType>( type ),
-                                                                                   static_cast<VkImageTiling>( tiling ),
-                                                                                   static_cast<VkImageUsageFlags>( usage ),
-                                                                                   static_cast<VkImageCreateFlags>( flags ),
-                                                                                   reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                   static_cast<VkFormat>( format ),
+                                                                   static_cast<VkImageType>( type ),
+                                                                   static_cast<VkImageTiling>( tiling ),
+                                                                   static_cast<VkImageUsageFlags>( usage ),
+                                                                   static_cast<VkImageCreateFlags>( flags ),
+                                                                   reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
 
       return imageFormatProperties;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties && "Function <vkGetPhysicalDeviceProperties> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
       getDispatcher()->vkGetPhysicalDeviceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                       reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) );
@@ -11486,6 +11747,9 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> PhysicalDevice::getQueueFamilyProperties() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties &&
+                         "Function <vkGetPhysicalDeviceQueueFamilyProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> queueFamilyProperties;
       uint32_t                                                 queueFamilyPropertyCount;
       getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr );
@@ -11504,6 +11768,8 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties && "Function <vkGetPhysicalDeviceMemoryProperties> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
       getDispatcher()->vkGetPhysicalDeviceMemoryProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                             reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
@@ -11513,6 +11779,8 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetInstanceProcAddr && "Function <vkGetInstanceProcAddr> requires <VK_VERSION_1_0>" );
+
       PFN_vkVoidFunction result = getDispatcher()->vkGetInstanceProcAddr( static_cast<VkInstance>( m_instance ), name.c_str() );
 
       return result;
@@ -11520,42 +11788,58 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceProcAddr && "Function <vkGetDeviceProcAddr> requires <VK_VERSION_1_0>" );
+
       PFN_vkVoidFunction result = getDispatcher()->vkGetDeviceProcAddr( static_cast<VkDevice>( m_device ), name.c_str() );
 
       return result;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Device
-                                           PhysicalDevice::createDevice( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &                                  createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device>::Type
+                        PhysicalDevice::createDevice( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &                                  createInfo,
                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Device( *this, createInfo, allocator );
-    }
+      VULKAN_HPP_NAMESPACE::Device device;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDevice(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ),
+        reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDevice *>( &device ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::createDevice" );
+#  endif
+      }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Device PhysicalDevice::createDevice(
-      VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &                                  createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::Device( *this, createInfo, allocator );
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device( *this, *reinterpret_cast<VkDevice *>( &device ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
-      Context::enumerateInstanceExtensionProperties( Optional<const std::string> layerName ) const
+                                           Context::enumerateInstanceExtensionProperties( Optional<const std::string> layerName ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceExtensionProperties &&
+                         "Function <vkEnumerateInstanceExtensionProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties;
       uint32_t                                               propertyCount;
-      VkResult                                               result;
+      VULKAN_HPP_NAMESPACE::Result                           result;
       do
       {
-        result = getDispatcher()->vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkEnumerateInstanceExtensionProperties(
-            layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceExtensionProperties(
+            layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -11565,25 +11849,28 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
-      PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName ) const
+                                           PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceExtensionProperties && "Function <vkEnumerateDeviceExtensionProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties;
       uint32_t                                               propertyCount;
-      VkResult                                               result;
+      VULKAN_HPP_NAMESPACE::Result                           result;
       do
       {
-        result = getDispatcher()->vkEnumerateDeviceExtensionProperties(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceExtensionProperties(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                          layerName ? layerName->c_str() : nullptr,
-                                                                          &propertyCount,
-                                                                          reinterpret_cast<VkExtensionProperties *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                   layerName ? layerName->c_str() : nullptr,
+                                                                   &propertyCount,
+                                                                   reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -11594,19 +11881,22 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> Context::enumerateInstanceLayerProperties() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceLayerProperties && "Function <vkEnumerateInstanceLayerProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties;
       uint32_t                                           propertyCount;
-      VkResult                                           result;
+      VULKAN_HPP_NAMESPACE::Result                       result;
       do
       {
-        result = getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -11617,20 +11907,23 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> PhysicalDevice::enumerateDeviceLayerProperties() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceLayerProperties && "Function <vkEnumerateDeviceLayerProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties;
       uint32_t                                           propertyCount;
-      VkResult                                           result;
+      VULKAN_HPP_NAMESPACE::Result                       result;
       do
       {
-        result = getDispatcher()->vkEnumerateDeviceLayerProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkEnumerateDeviceLayerProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkEnumerateDeviceLayerProperties(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceLayerProperties(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -11639,77 +11932,114 @@
       return properties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type
+                        Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Queue( *this, queueFamilyIndex, queueIndex );
+      VULKAN_HPP_NAMESPACE::Queue queue;
+      getDispatcher()->vkGetDeviceQueue( static_cast<VkDevice>( m_device ), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) );
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue( *this, *reinterpret_cast<VkQueue *>( &queue ) );
     }
 
     VULKAN_HPP_INLINE void Queue::submit( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,
                                           VULKAN_HPP_NAMESPACE::Fence                                                      fence ) const
     {
-      VkResult result = getDispatcher()->vkQueueSubmit(
-        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit && "Function <vkQueueSubmit> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit(
+        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
     }
 
     VULKAN_HPP_INLINE void Queue::waitIdle() const
     {
-      VkResult result = getDispatcher()->vkQueueWaitIdle( static_cast<VkQueue>( m_queue ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueWaitIdle && "Function <vkQueueWaitIdle> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueWaitIdle( static_cast<VkQueue>( m_queue ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
     }
 
     VULKAN_HPP_INLINE void Device::waitIdle() const
     {
-      VkResult result = getDispatcher()->vkDeviceWaitIdle( static_cast<VkDevice>( m_device ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDeviceWaitIdle && "Function <vkDeviceWaitIdle> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDeviceWaitIdle( static_cast<VkDevice>( m_device ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DeviceMemory
-                                           Device::allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &                                allocateInfo,
-                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory>::Type
+                        Device::allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &                                allocateInfo,
+                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DeviceMemory( *this, allocateInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DeviceMemory memory;
+      VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAllocateMemory(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateMemory" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory( *this, *reinterpret_cast<VkDeviceMemory *>( &memory ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DeviceMemory::mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize     offset,
                                                                            VULKAN_HPP_NAMESPACE::DeviceSize     size,
                                                                            VULKAN_HPP_NAMESPACE::MemoryMapFlags flags ) const
     {
-      void *   pData;
-      VkResult result = getDispatcher()->vkMapMemory( static_cast<VkDevice>( m_device ),
-                                                      static_cast<VkDeviceMemory>( m_memory ),
-                                                      static_cast<VkDeviceSize>( offset ),
-                                                      static_cast<VkDeviceSize>( size ),
-                                                      static_cast<VkMemoryMapFlags>( flags ),
-                                                      &pData );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory && "Function <vkMapMemory> requires <VK_VERSION_1_0>" );
+
+      void *                       pData;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkMapMemory( static_cast<VkDevice>( m_device ),
+                                                                                                                     static_cast<VkDeviceMemory>( m_memory ),
+                                                                                                                     static_cast<VkDeviceSize>( offset ),
+                                                                                                                     static_cast<VkDeviceSize>( size ),
+                                                                                                                     static_cast<VkMemoryMapFlags>( flags ),
+                                                                                                                     &pData ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" );
 
       return pData;
     }
 
     VULKAN_HPP_INLINE void DeviceMemory::unmapMemory() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory && "Function <vkUnmapMemory> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkUnmapMemory( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ) );
     }
 
     VULKAN_HPP_INLINE void
       Device::flushMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const
     {
-      VkResult result = getDispatcher()->vkFlushMappedMemoryRanges(
-        static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkFlushMappedMemoryRanges && "Function <vkFlushMappedMemoryRanges> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkFlushMappedMemoryRanges(
+        static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
     }
 
     VULKAN_HPP_INLINE void
       Device::invalidateMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const
     {
-      VkResult result = getDispatcher()->vkInvalidateMappedMemoryRanges(
-        static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkInvalidateMappedMemoryRanges && "Function <vkInvalidateMappedMemoryRanges> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInvalidateMappedMemoryRanges(
+        static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DeviceMemory::getCommitment() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryCommitment && "Function <vkGetDeviceMemoryCommitment> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
       getDispatcher()->vkGetDeviceMemoryCommitment(
         static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) );
@@ -11719,22 +12049,32 @@
 
     VULKAN_HPP_INLINE void Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const
     {
-      VkResult result = getDispatcher()->vkBindBufferMemory( static_cast<VkDevice>( m_device ),
-                                                             static_cast<VkBuffer>( m_buffer ),
-                                                             static_cast<VkDeviceMemory>( memory ),
-                                                             static_cast<VkDeviceSize>( memoryOffset ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory && "Function <vkBindBufferMemory> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory( static_cast<VkDevice>( m_device ),
+                                                                                        static_cast<VkBuffer>( m_buffer ),
+                                                                                        static_cast<VkDeviceMemory>( memory ),
+                                                                                        static_cast<VkDeviceSize>( memoryOffset ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" );
     }
 
     VULKAN_HPP_INLINE void Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const
     {
-      VkResult result = getDispatcher()->vkBindImageMemory(
-        static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory && "Function <vkBindImageMemory> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory( static_cast<VkDevice>( m_device ),
+                                                                                       static_cast<VkImage>( m_image ),
+                                                                                       static_cast<VkDeviceMemory>( memory ),
+                                                                                       static_cast<VkDeviceSize>( memoryOffset ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Buffer::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements && "Function <vkGetBufferMemoryRequirements> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
       getDispatcher()->vkGetBufferMemoryRequirements(
         static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( m_buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
@@ -11744,6 +12084,8 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Image::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements && "Function <vkGetImageMemoryRequirements> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
       getDispatcher()->vkGetImageMemoryRequirements(
         static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
@@ -11753,6 +12095,8 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> Image::getSparseMemoryRequirements() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements && "Function <vkGetImageSparseMemoryRequirements> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> sparseMemoryRequirements;
       uint32_t                                                         sparseMemoryRequirementCount;
       getDispatcher()->vkGetImageSparseMemoryRequirements(
@@ -11772,12 +12116,15 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>
-      PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
+                                           PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
                                                       VULKAN_HPP_NAMESPACE::ImageType           type,
                                                       VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,
                                                       VULKAN_HPP_NAMESPACE::ImageUsageFlags     usage,
                                                       VULKAN_HPP_NAMESPACE::ImageTiling         tiling ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties &&
+                         "Function <vkGetPhysicalDeviceSparseImageFormatProperties> requires <VK_VERSION_1_0>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> properties;
       uint32_t                                                       propertyCount;
       getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -11809,30 +12156,53 @@
     VULKAN_HPP_INLINE void Queue::bindSparse( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,
                                               VULKAN_HPP_NAMESPACE::Fence                                                          fence ) const
     {
-      VkResult result = getDispatcher()->vkQueueBindSparse(
-        static_cast<VkQueue>( m_queue ), bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBindSparse && "Function <vkQueueBindSparse> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueBindSparse(
+        static_cast<VkQueue>( m_queue ), bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
-                                           Device::createFence( VULKAN_HPP_NAMESPACE::FenceCreateInfo const &                                   createInfo,
-                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
+                        Device::createFence( VULKAN_HPP_NAMESPACE::FenceCreateInfo const &                                   createInfo,
+                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Fence( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Fence  fence;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateFence(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkFence *>( &fence ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFence" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator );
     }
 
     VULKAN_HPP_INLINE void Device::resetFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const
     {
-      VkResult result = getDispatcher()->vkResetFences( static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetFences && "Function <vkResetFences> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkResetFences( static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Fence::getStatus() const
     {
-      VkResult result = getDispatcher()->vkGetFenceStatus( static_cast<VkDevice>( m_device ), static_cast<VkFence>( m_fence ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceStatus && "Function <vkGetFenceStatus> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceStatus( static_cast<VkDevice>( m_device ), static_cast<VkFence>( m_fence ) ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
@@ -11840,89 +12210,134 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitForFences(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout ) const
     {
-      VkResult result = getDispatcher()->vkWaitForFences(
-        static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForFences && "Function <vkWaitForFences> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitForFences(
+        static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Semaphore
-                                           Device::createSemaphore( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &                               createInfo,
-                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore>::Type
+                        Device::createSemaphore( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &                               createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Semaphore( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Semaphore semaphore;
+      VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSemaphore(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSemaphore" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore( *this, *reinterpret_cast<VkSemaphore *>( &semaphore ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Event
-                                           Device::createEvent( VULKAN_HPP_NAMESPACE::EventCreateInfo const &                                   createInfo,
-                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event>::Type
+                        Device::createEvent( VULKAN_HPP_NAMESPACE::EventCreateInfo const &                                   createInfo,
+                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Event( *this, createInfo, allocator );
-    }
+      VULKAN_HPP_NAMESPACE::Event  event;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateEvent(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkEvent *>( &event ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createEvent" );
+#  endif
+      }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Semaphore Device::createSemaphore(
-      VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &                               createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::Semaphore( *this, createInfo, allocator );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Event Device::createEvent(
-      VULKAN_HPP_NAMESPACE::EventCreateInfo const &                                   createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::Event( *this, createInfo, allocator );
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event( *this, *reinterpret_cast<VkEvent *>( &event ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Event::getStatus() const
     {
-      VkResult result = getDispatcher()->vkGetEventStatus( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus",
-                   { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetEventStatus && "Function <vkGetEventStatus> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEventStatus( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
 
     VULKAN_HPP_INLINE void Event::set() const
     {
-      VkResult result = getDispatcher()->vkSetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Event::set" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetEvent && "Function <vkSetEvent> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::set" );
     }
 
     VULKAN_HPP_INLINE void Event::reset() const
     {
-      VkResult result = getDispatcher()->vkResetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Event::reset" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetEvent && "Function <vkResetEvent> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::QueryPool
-                                           Device::createQueryPool( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &                               createInfo,
-                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool>::Type
+                        Device::createQueryPool( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &                               createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::QueryPool( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::QueryPool queryPool;
+      VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateQueryPool(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createQueryPool" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool( *this, *reinterpret_cast<VkQueryPool *>( &queryPool ), allocator );
     }
 
     template <typename DataType>
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<DataType>> QueryPool::getResults(
       uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ),
-                                                                static_cast<VkQueryPool>( m_queryPool ),
-                                                                firstQuery,
-                                                                queryCount,
-                                                                data.size() * sizeof( DataType ),
-                                                                reinterpret_cast<void *>( data.data() ),
-                                                                static_cast<VkDeviceSize>( stride ),
-                                                                static_cast<VkQueryResultFlags>( flags ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ),
+                                                                                           static_cast<VkQueryPool>( m_queryPool ),
+                                                                                           firstQuery,
+                                                                                           queryCount,
+                                                                                           data.size() * sizeof( DataType ),
+                                                                                           reinterpret_cast<void *>( data.data() ),
+                                                                                           static_cast<VkDeviceSize>( stride ),
+                                                                                           static_cast<VkQueryResultFlags>( flags ) ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
       return std::make_pair( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
     }
@@ -11931,46 +12346,99 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, DataType> QueryPool::getResult(
       uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const
     {
-      DataType data;
-      VkResult result = getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ),
-                                                                static_cast<VkQueryPool>( m_queryPool ),
-                                                                firstQuery,
-                                                                queryCount,
-                                                                sizeof( DataType ),
-                                                                reinterpret_cast<void *>( &data ),
-                                                                static_cast<VkDeviceSize>( stride ),
-                                                                static_cast<VkQueryResultFlags>( flags ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" );
+
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ),
+                                                                                           static_cast<VkQueryPool>( m_queryPool ),
+                                                                                           firstQuery,
+                                                                                           queryCount,
+                                                                                           sizeof( DataType ),
+                                                                                           reinterpret_cast<void *>( &data ),
+                                                                                           static_cast<VkDeviceSize>( stride ),
+                                                                                           static_cast<VkQueryResultFlags>( flags ) ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
 
       return std::make_pair( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Buffer
-                                           Device::createBuffer( VULKAN_HPP_NAMESPACE::BufferCreateInfo const &                                  createInfo,
-                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer>::Type
+                        Device::createBuffer( VULKAN_HPP_NAMESPACE::BufferCreateInfo const &                                  createInfo,
+                            VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Buffer( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Buffer buffer;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBuffer(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkBuffer *>( &buffer ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBuffer" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer( *this, *reinterpret_cast<VkBuffer *>( &buffer ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::BufferView
-                                           Device::createBufferView( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &                              createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView>::Type
+                        Device::createBufferView( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &                              createInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::BufferView( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::BufferView view;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBufferView(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkBufferView *>( &view ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferView" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView( *this, *reinterpret_cast<VkBufferView *>( &view ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Image
-                                           Device::createImage( VULKAN_HPP_NAMESPACE::ImageCreateInfo const &                                   createInfo,
-                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image>::Type
+                        Device::createImage( VULKAN_HPP_NAMESPACE::ImageCreateInfo const &                                   createInfo,
+                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Image( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Image  image;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImage(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkImage *>( &image ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImage" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image( *this, *reinterpret_cast<VkImage *>( &image ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout
                                            Image::getSubresourceLayout( const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSubresourceLayout && "Function <vkGetImageSubresourceLayout> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
       getDispatcher()->vkGetImageSubresourceLayout( static_cast<VkDevice>( m_device ),
                                                     static_cast<VkImage>( m_image ),
@@ -11980,44 +12448,96 @@
       return layout;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ImageView
-                                           Device::createImageView( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &                               createInfo,
-                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView>::Type
+                        Device::createImageView( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &                               createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::ImageView( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::ImageView view;
+      VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImageView(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkImageView *>( &view ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImageView" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView( *this, *reinterpret_cast<VkImageView *>( &view ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ShaderModule
-                                           Device::createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &                            createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule>::Type
+                        Device::createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &                            createInfo,
                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::ShaderModule( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
+      VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShaderModule(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderModule" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule( *this, *reinterpret_cast<VkShaderModule *>( &shaderModule ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PipelineCache
-                                           Device::createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &                           createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache>::Type
+                        Device::createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &                           createInfo,
                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PipelineCache( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
+      VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePipelineCache(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineCache" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache( *this, *reinterpret_cast<VkPipelineCache *>( &pipelineCache ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> PipelineCache::getData() const
     {
-      std::vector<uint8_t> data;
-      size_t               dataSize;
-      VkResult             result;
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineCacheData && "Function <vkGetPipelineCacheData> requires <VK_VERSION_1_0>" );
+
+      std::vector<uint8_t>         data;
+      size_t                       dataSize;
+      VULKAN_HPP_NAMESPACE::Result result;
       do
       {
-        result =
-          getDispatcher()->vkGetPipelineCacheData( static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, nullptr );
-        if ( ( result == VK_SUCCESS ) && dataSize )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPipelineCacheData( static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
         {
           data.resize( dataSize );
-          result = getDispatcher()->vkGetPipelineCacheData(
-            static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineCacheData(
+            static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" );
       VULKAN_HPP_ASSERT( dataSize <= data.size() );
       if ( dataSize < data.size() )
       {
@@ -12028,95 +12548,273 @@
 
     VULKAN_HPP_INLINE void PipelineCache::merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const
     {
-      VkResult result = getDispatcher()->vkMergePipelineCaches( static_cast<VkDevice>( m_device ),
-                                                                static_cast<VkPipelineCache>( m_pipelineCache ),
-                                                                srcCaches.size(),
-                                                                reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkMergePipelineCaches && "Function <vkMergePipelineCaches> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkMergePipelineCaches( static_cast<VkDevice>( m_device ),
+                                                                                           static_cast<VkPipelineCache>( m_pipelineCache ),
+                                                                                           srcCaches.size(),
+                                                                                           reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::createGraphicsPipelines(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &                   createInfos,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+      Device::createGraphicsPipelines(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &                   createInfos,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipelines( *this, pipelineCache, createInfos, allocator );
+      std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateGraphicsPipelines(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        createInfos.size(),
+        reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipelines" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII;
+      pipelinesRAII.reserve( pipelines.size() );
+      for ( auto & pipeline : pipelines )
+      {
+        pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
+      }
+      return pipelinesRAII;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::createGraphicsPipeline(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
-      VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const &                                                     createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                        Device::createGraphicsPipeline(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const &                                                     createInfo,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, pipelineCache, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateGraphicsPipelines(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        1,
+        reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipeline" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::createComputePipelines(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &                    createInfos,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+      Device::createComputePipelines(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &                    createInfos,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipelines( *this, pipelineCache, createInfos, allocator );
+      std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateComputePipelines(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        createInfos.size(),
+        reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipelines" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII;
+      pipelinesRAII.reserve( pipelines.size() );
+      for ( auto & pipeline : pipelines )
+      {
+        pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
+      }
+      return pipelinesRAII;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
       Device::createComputePipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
                                      VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const &                                                      createInfo,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, pipelineCache, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateComputePipelines(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        1,
+        reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipeline" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PipelineLayout
-                                           Device::createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &                          createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout>::Type
+                        Device::createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &                          createInfo,
                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PipelineLayout( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
+      VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePipelineLayout(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineLayout" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout( *this, *reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Sampler
-                                           Device::createSampler( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &                                 createInfo,
-                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler>::Type
+                        Device::createSampler( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &                                 createInfo,
+                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Sampler( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Sampler sampler;
+      VULKAN_HPP_NAMESPACE::Result  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSampler(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSampler *>( &sampler ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSampler" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler( *this, *reinterpret_cast<VkSampler *>( &sampler ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout
-                                           Device::createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &                     createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout>::Type
+      Device::createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &                     createInfo,
                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
+      VULKAN_HPP_NAMESPACE::Result              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorSetLayout(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorSetLayout" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout( *this, *reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorPool
-                                           Device::createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &                          createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool>::Type
+                        Device::createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &                          createInfo,
                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorPool( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
+      VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorPool(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorPool" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool( *this, *reinterpret_cast<VkDescriptorPool *>( &descriptorPool ), allocator );
     }
 
     VULKAN_HPP_INLINE void DescriptorPool::reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetDescriptorPool && "Function <vkResetDescriptorPool> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkResetDescriptorPool(
         static_cast<VkDevice>( m_device ), static_cast<VkDescriptorPool>( m_descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
-                                           Device::allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorSets( *this, allocateInfo );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>>::Type
       Device::allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorSets( *this, allocateInfo );
+      std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
+      VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAllocateDescriptorSets( static_cast<VkDevice>( m_device ),
+                                                   reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ),
+                                                   reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateDescriptorSets" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> descriptorSetsRAII;
+      descriptorSetsRAII.reserve( descriptorSets.size() );
+      for ( auto & descriptorSet : descriptorSets )
+      {
+        descriptorSetsRAII.emplace_back(
+          *this, *reinterpret_cast<VkDescriptorSet *>( &descriptorSet ), static_cast<VkDescriptorPool>( allocateInfo.descriptorPool ) );
+      }
+      return descriptorSetsRAII;
     }
 
     VULKAN_HPP_INLINE void Device::updateDescriptorSets(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const &  descriptorCopies ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSets && "Function <vkUpdateDescriptorSets> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkUpdateDescriptorSets( static_cast<VkDevice>( m_device ),
                                                descriptorWrites.size(),
                                                reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ),
@@ -12124,22 +12822,58 @@
                                                reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Framebuffer
-                                           Device::createFramebuffer( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer>::Type
+                        Device::createFramebuffer( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &                             createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Framebuffer( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
+      VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateFramebuffer(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFramebuffer" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer( *this, *reinterpret_cast<VkFramebuffer *>( &framebuffer ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
-                                           Device::createRenderPass( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &                              createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
+                        Device::createRenderPass( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &                              createInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::RenderPass renderPass;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D RenderPass::getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRenderAreaGranularity && "Function <vkGetRenderAreaGranularity> requires <VK_VERSION_1_0>" );
+
       VULKAN_HPP_NAMESPACE::Extent2D granularity;
       getDispatcher()->vkGetRenderAreaGranularity(
         static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) );
@@ -12147,49 +12881,99 @@
       return granularity;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CommandPool
-                                           Device::createCommandPool( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool>::Type
+                        Device::createCommandPool( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &                             createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::CommandPool( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::CommandPool commandPool;
+      VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCommandPool(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCommandPool" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool( *this, *reinterpret_cast<VkCommandPool *>( &commandPool ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandPool::reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags ) const
     {
-      VkResult result = getDispatcher()->vkResetCommandPool(
-        static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandPool && "Function <vkResetCommandPool> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetCommandPool(
+        static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
-                                           Device::allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>>::Type
+      Device::allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::CommandBuffers( *this, allocateInfo );
+      std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
+      VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAllocateCommandBuffers( static_cast<VkDevice>( m_device ),
+                                                   reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ),
+                                                   reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateCommandBuffers" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> commandBuffersRAII;
+      commandBuffersRAII.reserve( commandBuffers.size() );
+      for ( auto & commandBuffer : commandBuffers )
+      {
+        commandBuffersRAII.emplace_back(
+          *this, *reinterpret_cast<VkCommandBuffer *>( &commandBuffer ), static_cast<VkCommandPool>( allocateInfo.commandPool ) );
+      }
+      return commandBuffersRAII;
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo ) const
     {
-      VkResult result = getDispatcher()->vkBeginCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                               reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBeginCommandBuffer && "Function <vkBeginCommandBuffer> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBeginCommandBuffer(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::end() const
     {
-      VkResult result = getDispatcher()->vkEndCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEndCommandBuffer && "Function <vkEndCommandBuffer> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEndCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags ) const
     {
-      VkResult result =
-        getDispatcher()->vkResetCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCommandBufferResetFlags>( flags ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandBuffer && "Function <vkResetCommandBuffer> requires <VK_VERSION_1_0>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkResetCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCommandBufferResetFlags>( flags ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
                                                         VULKAN_HPP_NAMESPACE::Pipeline          pipeline ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindPipeline && "Function <vkCmdBindPipeline> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBindPipeline(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
     }
@@ -12198,6 +12982,8 @@
       CommandBuffer::setViewport( uint32_t                                                                       firstViewport,
                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewport && "Function <vkCmdSetViewport> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetViewport(
         static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
     }
@@ -12206,44 +12992,60 @@
       CommandBuffer::setScissor( uint32_t                                                                     firstScissor,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissor && "Function <vkCmdSetScissor> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetScissor(
         static_cast<VkCommandBuffer>( m_commandBuffer ), firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineWidth && "Function <vkCmdSetLineWidth> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetLineWidth( static_cast<VkCommandBuffer>( m_commandBuffer ), lineWidth );
     }
 
     VULKAN_HPP_INLINE void
       CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBias && "Function <vkCmdSetDepthBias> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetDepthBias( static_cast<VkCommandBuffer>( m_commandBuffer ), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetBlendConstants && "Function <vkCmdSetBlendConstants> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetBlendConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), blendConstants );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBounds && "Function <vkCmdSetDepthBounds> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetDepthBounds( static_cast<VkCommandBuffer>( m_commandBuffer ), minDepthBounds, maxDepthBounds );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
                                                                  uint32_t                               compareMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilCompareMask && "Function <vkCmdSetStencilCompareMask> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetStencilCompareMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilWriteMask && "Function <vkCmdSetStencilWriteMask> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetStencilWriteMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilReference && "Function <vkCmdSetStencilReference> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetStencilReference( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), reference );
     }
 
@@ -12254,6 +13056,8 @@
                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorSets && "Function <vkCmdBindDescriptorSets> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBindDescriptorSets( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                 static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
                                                 static_cast<VkPipelineLayout>( layout ),
@@ -12268,6 +13072,8 @@
                                                            VULKAN_HPP_NAMESPACE::DeviceSize offset,
                                                            VULKAN_HPP_NAMESPACE::IndexType  indexType ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindIndexBuffer && "Function <vkCmdBindIndexBuffer> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBindIndexBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              static_cast<VkBuffer>( buffer ),
                                              static_cast<VkDeviceSize>( offset ),
@@ -12278,10 +13084,15 @@
                                                              VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
                                                              VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers && "Function <vkCmdBindVertexBuffers> requires <VK_VERSION_1_0>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
+#  else
       if ( buffers.size() != offsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBindVertexBuffers( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                firstBinding,
@@ -12293,12 +13104,16 @@
     VULKAN_HPP_INLINE void
       CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDraw && "Function <vkCmdDraw> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDraw( static_cast<VkCommandBuffer>( m_commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::drawIndexed(
       uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexed && "Function <vkCmdDrawIndexed> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDrawIndexed( static_cast<VkCommandBuffer>( m_commandBuffer ), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
     }
 
@@ -12307,6 +13122,8 @@
                                                         uint32_t                         drawCount,
                                                         uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirect && "Function <vkCmdDrawIndirect> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDrawIndirect(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
     }
@@ -12316,18 +13133,24 @@
                                                                uint32_t                         drawCount,
                                                                uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirect && "Function <vkCmdDrawIndexedIndirect> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDrawIndexedIndirect(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatch && "Function <vkCmdDispatch> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDispatch( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer     buffer,
                                                             VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchIndirect && "Function <vkCmdDispatchIndirect> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdDispatchIndirect(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
     }
@@ -12337,6 +13160,8 @@
                                  VULKAN_HPP_NAMESPACE::Buffer                                                     dstBuffer,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer && "Function <vkCmdCopyBuffer> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdCopyBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                         static_cast<VkBuffer>( srcBuffer ),
                                         static_cast<VkBuffer>( dstBuffer ),
@@ -12351,6 +13176,8 @@
                                 VULKAN_HPP_NAMESPACE::ImageLayout                                               dstImageLayout,
                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage && "Function <vkCmdCopyImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdCopyImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                        static_cast<VkImage>( srcImage ),
                                        static_cast<VkImageLayout>( srcImageLayout ),
@@ -12367,6 +13194,8 @@
                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,
                                                      VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage && "Function <vkCmdBlitImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBlitImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                        static_cast<VkImage>( srcImage ),
                                        static_cast<VkImageLayout>( srcImageLayout ),
@@ -12383,6 +13212,8 @@
       VULKAN_HPP_NAMESPACE::ImageLayout                                                     dstImageLayout,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage && "Function <vkCmdCopyBufferToImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdCopyBufferToImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                static_cast<VkBuffer>( srcBuffer ),
                                                static_cast<VkImage>( dstImage ),
@@ -12397,6 +13228,8 @@
       VULKAN_HPP_NAMESPACE::Buffer                                                          dstBuffer,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer && "Function <vkCmdCopyImageToBuffer> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdCopyImageToBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                static_cast<VkImage>( srcImage ),
                                                static_cast<VkImageLayout>( srcImageLayout ),
@@ -12410,6 +13243,8 @@
                                                         VULKAN_HPP_NAMESPACE::DeviceSize                         dstOffset,
                                                         VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdUpdateBuffer && "Function <vkCmdUpdateBuffer> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdUpdateBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                           static_cast<VkBuffer>( dstBuffer ),
                                           static_cast<VkDeviceSize>( dstOffset ),
@@ -12422,6 +13257,8 @@
                                                       VULKAN_HPP_NAMESPACE::DeviceSize size,
                                                       uint32_t                         data ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdFillBuffer && "Function <vkCmdFillBuffer> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdFillBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                         static_cast<VkBuffer>( dstBuffer ),
                                         static_cast<VkDeviceSize>( dstOffset ),
@@ -12435,6 +13272,8 @@
       const VULKAN_HPP_NAMESPACE::ClearColorValue &                                               color,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearColorImage && "Function <vkCmdClearColorImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdClearColorImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              static_cast<VkImage>( image ),
                                              static_cast<VkImageLayout>( imageLayout ),
@@ -12449,6 +13288,8 @@
       const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue &                                        depthStencil,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearDepthStencilImage && "Function <vkCmdClearDepthStencilImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdClearDepthStencilImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                     static_cast<VkImage>( image ),
                                                     static_cast<VkImageLayout>( imageLayout ),
@@ -12461,6 +13302,8 @@
       CommandBuffer::clearAttachments( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,
                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const &       rects ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearAttachments && "Function <vkCmdClearAttachments> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdClearAttachments( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                               attachments.size(),
                                               reinterpret_cast<const VkClearAttachment *>( attachments.data() ),
@@ -12475,6 +13318,8 @@
                                    VULKAN_HPP_NAMESPACE::ImageLayout                                                  dstImageLayout,
                                    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage && "Function <vkCmdResolveImage> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdResolveImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                           static_cast<VkImage>( srcImage ),
                                           static_cast<VkImageLayout>( srcImageLayout ),
@@ -12487,6 +13332,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event              event,
                                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent && "Function <vkCmdSetEvent> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdSetEvent(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
     }
@@ -12494,6 +13341,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event              event,
                                                       VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent && "Function <vkCmdResetEvent> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdResetEvent(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
     }
@@ -12506,6 +13355,8 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &  imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents && "Function <vkCmdWaitEvents> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdWaitEvents( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                         events.size(),
                                         reinterpret_cast<const VkEvent *>( events.data() ),
@@ -12527,6 +13378,8 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &  imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier && "Function <vkCmdPipelineBarrier> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdPipelineBarrier( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              static_cast<VkPipelineStageFlags>( srcStageMask ),
                                              static_cast<VkPipelineStageFlags>( dstStageMask ),
@@ -12543,18 +13396,24 @@
                                                       uint32_t                                query,
                                                       VULKAN_HPP_NAMESPACE::QueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQuery && "Function <vkCmdBeginQuery> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBeginQuery(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQuery && "Function <vkCmdEndQuery> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdEndQuery( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query );
     }
 
     VULKAN_HPP_INLINE void
       CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetQueryPool && "Function <vkCmdResetQueryPool> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdResetQueryPool( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
     }
 
@@ -12562,6 +13421,8 @@
                                                           VULKAN_HPP_NAMESPACE::QueryPool             queryPool,
                                                           uint32_t                                    query ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp && "Function <vkCmdWriteTimestamp> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdWriteTimestamp(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
     }
@@ -12574,6 +13435,8 @@
                                                                 VULKAN_HPP_NAMESPACE::DeviceSize       stride,
                                                                 VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyQueryPoolResults && "Function <vkCmdCopyQueryPoolResults> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdCopyQueryPoolResults( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkQueryPool>( queryPool ),
                                                   firstQuery,
@@ -12590,6 +13453,8 @@
                                                          uint32_t                                                   offset,
                                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushConstants && "Function <vkCmdPushConstants> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdPushConstants( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                            static_cast<VkPipelineLayout>( layout ),
                                            static_cast<VkShaderStageFlags>( stageFlags ),
@@ -12601,6 +13466,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
                                                            VULKAN_HPP_NAMESPACE::SubpassContents             contents ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass && "Function <vkCmdBeginRenderPass> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdBeginRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
                                              static_cast<VkSubpassContents>( contents ) );
@@ -12608,17 +13475,23 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass && "Function <vkCmdNextSubpass> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdNextSubpass( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkSubpassContents>( contents ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::endRenderPass() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass && "Function <vkCmdEndRenderPass> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdEndRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::executeCommands(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteCommands && "Function <vkCmdExecuteCommands> requires <VK_VERSION_1_0>" );
+
       getDispatcher()->vkCmdExecuteCommands(
         static_cast<VkCommandBuffer>( m_commandBuffer ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
     }
@@ -12627,9 +13500,11 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const
     {
-      uint32_t apiVersion;
-      VkResult result = getDispatcher()->vkEnumerateInstanceVersion( &apiVersion );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceVersion && "Function <vkEnumerateInstanceVersion> requires <VK_VERSION_1_1>" );
+
+      uint32_t                     apiVersion;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceVersion( &apiVersion ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" );
 
       return apiVersion;
     }
@@ -12637,21 +13512,28 @@
     VULKAN_HPP_INLINE void
       Device::bindBufferMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const
     {
-      VkResult result = getDispatcher()->vkBindBufferMemory2(
-        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2 && "Function <vkBindBufferMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory2(
+        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
     }
 
     VULKAN_HPP_INLINE void Device::bindImageMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const
     {
-      VkResult result = getDispatcher()->vkBindImageMemory2(
-        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2 && "Function <vkBindImageMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory2(
+        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags
       Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures &&
+                         "Function <vkGetDeviceGroupPeerMemoryFeatures> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
       getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures( static_cast<VkDevice>( m_device ),
                                                            heapIndex,
@@ -12664,6 +13546,8 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMask && "Function <vkCmdSetDeviceMask> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
+
       getDispatcher()->vkCmdSetDeviceMask( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask );
     }
 
@@ -12674,28 +13558,34 @@
                                                         uint32_t groupCountY,
                                                         uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBase && "Function <vkCmdDispatchBase> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
+
       getDispatcher()->vkCmdDispatchBase(
         static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroups() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroups &&
+                         "Function <vkEnumeratePhysicalDeviceGroups> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties;
       uint32_t                                                         physicalDeviceGroupCount;
-      VkResult                                                         result;
+      VULKAN_HPP_NAMESPACE::Result                                     result;
       do
       {
-        result = getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
         {
           physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-          result =
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
             getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ),
                                                               &physicalDeviceGroupCount,
-                                                              reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+                                                              reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
       if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
       {
@@ -12707,6 +13597,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
       Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2 &&
+                         "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetImageMemoryRequirements2( static_cast<VkDevice>( m_device ),
                                                       reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ),
@@ -12716,11 +13609,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2 &&
+                         "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetImageMemoryRequirements2( static_cast<VkDevice>( m_device ),
                                                       reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ),
                                                       reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -12731,6 +13627,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
       Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2 &&
+                         "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetBufferMemoryRequirements2( static_cast<VkDevice>( m_device ),
                                                        reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ),
@@ -12740,11 +13639,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2 &&
+                         "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetBufferMemoryRequirements2( static_cast<VkDevice>( m_device ),
                                                        reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ),
                                                        reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -12755,6 +13657,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
       Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements2 &&
+                         "Function <vkGetImageSparseMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements;
       uint32_t                                                          sparseMemoryRequirementCount;
       getDispatcher()->vkGetImageSparseMemoryRequirements2(
@@ -12775,6 +13680,9 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2 &&
+                         "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
       getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                      reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
@@ -12783,10 +13691,13 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                      structureChain;
-      VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2 &&
+                         "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
       getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                      reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
 
@@ -12795,6 +13706,9 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2 &&
+                         "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
       getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                        reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
@@ -12803,9 +13717,12 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                        structureChain;
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2 &&
+                         "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
       VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
       getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                        reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
@@ -12814,8 +13731,11 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
-      PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
+                                           PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2 &&
+                         "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
       getDispatcher()->vkGetPhysicalDeviceFormatProperties2(
         static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
@@ -12824,11 +13744,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
-      PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                           PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                structureChain;
-      VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2 &&
+                         "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
       getDispatcher()->vkGetPhysicalDeviceFormatProperties2(
         static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
 
@@ -12838,33 +13761,42 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2
       PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 &&
+                         "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
-      VkResult                                     result =
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                     reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
+                                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
 
       return imageFormatProperties;
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 &&
+                         "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       StructureChain<X, Y, Z...>                     structureChain;
       VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
-      VkResult                                       result =
+      VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                     reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
+                                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
 
       return structureChain;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> PhysicalDevice::getQueueFamilyProperties2() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2 &&
+                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
       uint32_t                                                  queueFamilyPropertyCount;
       getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr );
@@ -12884,6 +13816,9 @@
     template <typename StructureChain>
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2 &&
+                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       std::vector<StructureChain>                               structureChains;
       std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
       uint32_t                                                  queueFamilyPropertyCount;
@@ -12913,6 +13848,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
                                            PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2 &&
+                         "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
       getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                              reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
@@ -12921,9 +13859,12 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                              structureChain;
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2 &&
+                         "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
       VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
         structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
       getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -12935,6 +13876,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
       PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2 &&
+                         "Function <vkGetPhysicalDeviceSparseImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties;
       uint32_t                                                        propertyCount;
       getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -12957,33 +13901,80 @@
 
     VULKAN_HPP_INLINE void CommandPool::trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPool && "Function <vkTrimCommandPool> requires <VK_KHR_maintenance1> or <VK_VERSION_1_1>" );
+
       getDispatcher()->vkTrimCommandPool(
         static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Queue Device::getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type
+                        Device::getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Queue( *this, queueInfo );
+      VULKAN_HPP_NAMESPACE::Queue queue;
+      getDispatcher()->vkGetDeviceQueue2(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) );
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue( *this, *reinterpret_cast<VkQueue *>( &queue ) );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
-                                           Device::createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type
+      Device::createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSamplerYcbcrConversion(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversion" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion(
+        *this, *reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
-                                           Device::createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type
+      Device::createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
+      VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorUpdateTemplate(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplate" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate(
+        *this, *reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ), allocator );
     }
 
     template <typename DataType>
     VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
                                                               DataType const &                               data ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSetWithTemplate &&
+                         "Function <vkUpdateDescriptorSetWithTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
+
       getDispatcher()->vkUpdateDescriptorSetWithTemplate( static_cast<VkDevice>( m_device ),
                                                           static_cast<VkDescriptorSet>( m_descriptorSet ),
                                                           static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -12993,6 +13984,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties
       PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties &&
+                         "Function <vkGetPhysicalDeviceExternalBufferProperties> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                     reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ),
@@ -13004,6 +13998,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties
       PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties &&
+                         "Function <vkGetPhysicalDeviceExternalFenceProperties> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                    reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ),
@@ -13015,6 +14012,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties(
       const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties &&
+                         "Function <vkGetPhysicalDeviceExternalSemaphoreProperties> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties(
         static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -13027,6 +14027,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
       Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupport &&
+                         "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
+
       VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
       getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast<VkDevice>( m_device ),
                                                         reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
@@ -13036,10 +14039,13 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                         structureChain;
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupport &&
+                         "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
       VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
       getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast<VkDevice>( m_device ),
                                                         reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
@@ -13057,6 +14063,9 @@
                                                              uint32_t                         maxDrawCount,
                                                              uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCount &&
+                         "Function <vkCmdDrawIndirectCount> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkCmdDrawIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                static_cast<VkBuffer>( buffer ),
                                                static_cast<VkDeviceSize>( offset ),
@@ -13073,6 +14082,9 @@
                                                                     uint32_t                         maxDrawCount,
                                                                     uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirectCount &&
+                         "Function <vkCmdDrawIndexedIndirectCount> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkCmdDrawIndexedIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       static_cast<VkBuffer>( buffer ),
                                                       static_cast<VkDeviceSize>( offset ),
@@ -13082,16 +14094,36 @@
                                                       stride );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
-                                           Device::createRenderPass2( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
+                        Device::createRenderPass2( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::RenderPass renderPass;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass2(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
                                                             const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &    subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass2 &&
+                         "Function <vkCmdBeginRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkCmdBeginRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                               reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
                                               reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
@@ -13100,6 +14132,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,
                                                         const VULKAN_HPP_NAMESPACE::SubpassEndInfo &   subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2 && "Function <vkCmdNextSubpass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkCmdNextSubpass2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                           reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ),
                                           reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
@@ -13107,19 +14141,27 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2 && "Function <vkCmdEndRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkCmdEndRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
     }
 
     VULKAN_HPP_INLINE void QueryPool::reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPool && "Function <vkResetQueryPool> requires <VK_EXT_host_query_reset> or <VK_VERSION_1_2>" );
+
       getDispatcher()->vkResetQueryPool( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const
     {
-      uint64_t value;
-      VkResult result = getDispatcher()->vkGetSemaphoreCounterValue( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValue &&
+                         "Function <vkGetSemaphoreCounterValue> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
+
+      uint64_t                     value;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetSemaphoreCounterValue( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" );
 
       return value;
     }
@@ -13127,24 +14169,31 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,
                                                                                                 uint64_t                                        timeout ) const
     {
-      VkResult result =
-        getDispatcher()->vkWaitSemaphores( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphores && "Function <vkWaitSemaphores> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkWaitSemaphores( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
 
     VULKAN_HPP_INLINE void Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const
     {
-      VkResult result = getDispatcher()->vkSignalSemaphore( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphore && "Function <vkSignalSemaphore> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkSignalSemaphore( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
                                            Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferDeviceAddress &&
+                         "Function <vkGetBufferDeviceAddress> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
+
       VkDeviceAddress result =
         getDispatcher()->vkGetBufferDeviceAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
 
@@ -13154,6 +14203,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
       Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureAddress &&
+                         "Function <vkGetBufferOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
+
       uint64_t result =
         getDispatcher()->vkGetBufferOpaqueCaptureAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
 
@@ -13163,6 +14215,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
       Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress &&
+                         "Function <vkGetDeviceMemoryOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
+
       uint64_t result = getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress( static_cast<VkDevice>( m_device ),
                                                                                 reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
 
@@ -13173,20 +14228,24 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolProperties() const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolProperties &&
+                         "Function <vkGetPhysicalDeviceToolProperties> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties;
       uint32_t                                                        toolCount;
-      VkResult                                                        result;
+      VULKAN_HPP_NAMESPACE::Result                                    result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceToolProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && toolCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceToolProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
         {
           toolProperties.resize( toolCount );
-          result = getDispatcher()->vkGetPhysicalDeviceToolProperties(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolProperties(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
       if ( toolCount < toolProperties.size() )
       {
@@ -13195,11 +14254,28 @@
       return toolProperties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
-                                           Device::createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type
+      Device::createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
+      VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePrivateDataSlot(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlot" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, *reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ), allocator );
     }
 
     VULKAN_HPP_INLINE void Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
@@ -13207,15 +14283,19 @@
                                                    VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                    uint64_t                              data ) const
     {
-      VkResult result = getDispatcher()->vkSetPrivateData(
-        static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateData && "Function <vkSetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetPrivateData(
+        static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                             uint64_t                              objectHandle,
                                                                             VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateData && "Function <vkGetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
+
       uint64_t data;
       getDispatcher()->vkGetPrivateData(
         static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
@@ -13226,6 +14306,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
                                                      const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2 && "Function <vkCmdSetEvent2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetEvent2(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
     }
@@ -13233,6 +14315,8 @@
     VULKAN_HPP_INLINE void CommandBuffer::resetEvent2( VULKAN_HPP_NAMESPACE::Event               event,
                                                        VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2 && "Function <vkCmdResetEvent2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdResetEvent2(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) );
     }
@@ -13241,10 +14325,15 @@
       CommandBuffer::waitEvents2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2 && "Function <vkCmdWaitEvents2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
+#  else
       if ( events.size() != dependencyInfos.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdWaitEvents2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                          events.size(),
@@ -13254,6 +14343,8 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2 && "Function <vkCmdPipelineBarrier2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdPipelineBarrier2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
     }
 
@@ -13261,6 +14352,8 @@
                                                            VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
                                                            uint32_t                                  query ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2 && "Function <vkCmdWriteTimestamp2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdWriteTimestamp2(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query );
     }
@@ -13268,24 +14361,33 @@
     VULKAN_HPP_INLINE void Queue::submit2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
                                            VULKAN_HPP_NAMESPACE::Fence                                                       fence ) const
     {
-      VkResult result = getDispatcher()->vkQueueSubmit2(
-        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2 && "Function <vkQueueSubmit2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit2(
+        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2 && "Function <vkCmdCopyBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdCopyBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2 && "Function <vkCmdCopyImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdCopyImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
     }
 
     VULKAN_HPP_INLINE void
       CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2 &&
+                         "Function <vkCmdCopyBufferToImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdCopyBufferToImage2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                 reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
     }
@@ -13293,49 +14395,72 @@
     VULKAN_HPP_INLINE void
       CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2 &&
+                         "Function <vkCmdCopyImageToBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdCopyImageToBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                 reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2 && "Function <vkCmdBlitImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdBlitImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2 && "Function <vkCmdResolveImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdResolveImage2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                            reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRendering && "Function <vkCmdBeginRendering> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdBeginRendering( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::endRendering() const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRendering && "Function <vkCmdEndRendering> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdEndRendering( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullMode &&
+                         "Function <vkCmdSetCullMode> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetCullMode( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFace &&
+                         "Function <vkCmdSetFrontFace> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetFrontFace( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveTopology &&
+                         "Function <vkCmdSetPrimitiveTopology> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetPrimitiveTopology( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) );
     }
 
     VULKAN_HPP_INLINE void
       CommandBuffer::setViewportWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWithCount &&
+                         "Function <vkCmdSetViewportWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetViewportWithCount(
         static_cast<VkCommandBuffer>( m_commandBuffer ), viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
     }
@@ -13343,6 +14468,9 @@
     VULKAN_HPP_INLINE void
       CommandBuffer::setScissorWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissorWithCount &&
+                         "Function <vkCmdSetScissorWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetScissorWithCount(
         static_cast<VkCommandBuffer>( m_commandBuffer ), scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
     }
@@ -13353,6 +14481,13 @@
                                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
                                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers2 &&
+                         "Function <vkCmdBindVertexBuffers2> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
+      VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
+      VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
+#  else
       if ( buffers.size() != offsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()" );
@@ -13365,6 +14500,7 @@
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBindVertexBuffers2( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                 firstBinding,
@@ -13377,26 +14513,41 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthTestEnable &&
+                         "Function <vkCmdSetDepthTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetDepthTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthWriteEnable &&
+                         "Function <vkCmdSetDepthWriteEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetDepthWriteEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthCompareOp &&
+                         "Function <vkCmdSetDepthCompareOp> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetDepthCompareOp( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBoundsTestEnable &&
+                         "Function <vkCmdSetDepthBoundsTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetDepthBoundsTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilTestEnable &&
+                         "Function <vkCmdSetStencilTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetStencilTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) );
     }
 
@@ -13406,6 +14557,9 @@
                                                         VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
                                                         VULKAN_HPP_NAMESPACE::CompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOp &&
+                         "Function <vkCmdSetStencilOp> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetStencilOp( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                           static_cast<VkStencilFaceFlags>( faceMask ),
                                           static_cast<VkStencilOp>( failOp ),
@@ -13416,22 +14570,34 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizerDiscardEnable &&
+                         "Function <vkCmdSetRasterizerDiscardEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetRasterizerDiscardEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBiasEnable &&
+                         "Function <vkCmdSetDepthBiasEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetDepthBiasEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveRestartEnable &&
+                         "Function <vkCmdSetPrimitiveRestartEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+
       getDispatcher()->vkCmdSetPrimitiveRestartEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
       Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirements &&
+                         "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetDeviceBufferMemoryRequirements( static_cast<VkDevice>( m_device ),
                                                             reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
@@ -13441,11 +14607,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirements &&
+                         "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetDeviceBufferMemoryRequirements( static_cast<VkDevice>( m_device ),
                                                             reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
                                                             reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -13456,6 +14625,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
       Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirements &&
+                         "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
+
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetDeviceImageMemoryRequirements( static_cast<VkDevice>( m_device ),
                                                            reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
@@ -13465,11 +14637,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirements &&
+                         "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetDeviceImageMemoryRequirements( static_cast<VkDevice>( m_device ),
                                                            reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
                                                            reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -13480,6 +14655,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
                                            Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const
     {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSparseMemoryRequirements &&
+                         "Function <vkGetDeviceImageSparseMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
+
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements;
       uint32_t                                                          sparseMemoryRequirementCount;
       getDispatcher()->vkGetDeviceImageSparseMemoryRequirements(
@@ -13498,478 +14676,63 @@
       return sparseMemoryRequirements;
     }
 
-    //=== VK_VERSION_1_3 ===
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>
-                                           PhysicalDevice::getToolProperties() const
-    {
-      std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties;
-      uint32_t                                                        toolCount;
-      VULKAN_HPP_NAMESPACE::Result                                    result;
-      do
-      {
-        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolProperties(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) );
-        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
-        {
-          toolProperties.resize( toolCount );
-          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolProperties(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ),
-            &toolCount,
-            reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
-        }
-      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
-      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-      {
-        throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
-      }
-      if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
-      {
-        VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
-        if ( toolCount < toolProperties.size() )
-        {
-          toolProperties.resize( toolCount );
-        }
-      }
-      return toolProperties;
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot Device::createPrivateDataSlot(
-      VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, createInfo, allocator );
-    }
-
-    VULKAN_HPP_INLINE void Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
-                                                   uint64_t                              objectHandle,
-                                                   VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
-                                                   uint64_t                              data ) const
-    {
-      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-        getDispatcher()->vkSetPrivateData( static_cast<VkDevice>( m_device ),
-                                           static_cast<VkObjectType>( objectType_ ),
-                                           objectHandle,
-                                           static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                           data ) );
-      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-      {
-        throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
-      }
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
-      Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
-                              uint64_t                              objectHandle,
-                              VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT
-    {
-      uint64_t data;
-      getDispatcher()->vkGetPrivateData( static_cast<VkDevice>( m_device ),
-                                         static_cast<VkObjectType>( objectType_ ),
-                                         objectHandle,
-                                         static_cast<VkPrivateDataSlot>( privateDataSlot ),
-                                         &data );
-      return data;
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
-                                const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetEvent2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                       static_cast<VkEvent>( event ),
-                                       reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::resetEvent2( VULKAN_HPP_NAMESPACE::Event               event,
-                                  VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdResetEvent2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                         static_cast<VkEvent>( event ),
-                                         static_cast<VkPipelineStageFlags2>( stageMask ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::waitEvents2( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
-                                  ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const
-      VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
-    {
-#  ifdef VULKAN_HPP_NO_EXCEPTIONS
-      VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
-#  else
-      if ( events.size() != dependencyInfos.size() )
-      {
-        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                          "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()" );
-      }
-#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
-
-      getDispatcher()->vkCmdWaitEvents2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                         events.size(),
-                                         reinterpret_cast<const VkEvent *>( events.data() ),
-                                         reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2(
-      const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdPipelineBarrier2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                              reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
-                                                           VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
-                                                           uint32_t query ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdWriteTimestamp2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                             static_cast<VkPipelineStageFlags2>( stage ),
-                                             static_cast<VkQueryPool>( queryPool ),
-                                             query );
-    }
-
-    VULKAN_HPP_INLINE void Queue::submit2( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
-                                           VULKAN_HPP_NAMESPACE::Fence                                 fence ) const
-    {
-      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
-        getDispatcher()->vkQueueSubmit2( static_cast<VkQueue>( m_queue ),
-                                         submits.size(),
-                                         reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ),
-                                         static_cast<VkFence>( fence ) ) );
-      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-      {
-        throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
-      }
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2(
-      const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdCopyBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                         reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdCopyImage2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                        reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2(
-      const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdCopyBufferToImage2(
-        static_cast<VkCommandBuffer>( m_commandBuffer ),
-        reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2(
-      const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdCopyImageToBuffer2(
-        static_cast<VkCommandBuffer>( m_commandBuffer ),
-        reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdBlitImage2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                        reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::resolveImage2(
-      const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdResolveImage2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                           reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::beginRendering(
-      const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdBeginRendering( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                            reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::endRendering() const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdEndRendering( static_cast<VkCommandBuffer>( m_commandBuffer ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetCullMode( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                         static_cast<VkCullModeFlags>( cullMode ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetFrontFace( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                          static_cast<VkFrontFace>( frontFace ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology(
-      VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetPrimitiveTopology( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                  static_cast<VkPrimitiveTopology>( primitiveTopology ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCount(
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetViewportWithCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                  viewports.size(),
-                                                  reinterpret_cast<const VkViewport *>( viewports.data() ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCount(
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetScissorWithCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                 scissors.size(),
-                                                 reinterpret_cast<const VkRect2D *>( scissors.data() ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2(
-      uint32_t                                                   firstBinding,
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
-      ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
-    {
-#  ifdef VULKAN_HPP_NO_EXCEPTIONS
-      VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
-      VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
-      VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
-#  else
-      if ( buffers.size() != offsets.size() )
-      {
-        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                          "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()" );
-      }
-      if ( !sizes.empty() && buffers.size() != sizes.size() )
-      {
-        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                          "::CommandBuffer::bindVertexBuffers2: buffers.size() != sizes.size()" );
-      }
-      if ( !strides.empty() && buffers.size() != strides.size() )
-      {
-        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                          "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()" );
-      }
-#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
-
-      getDispatcher()->vkCmdBindVertexBuffers2( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                firstBinding,
-                                                buffers.size(),
-                                                reinterpret_cast<const VkBuffer *>( buffers.data() ),
-                                                reinterpret_cast<const VkDeviceSize *>( offsets.data() ),
-                                                reinterpret_cast<const VkDeviceSize *>( sizes.data() ),
-                                                reinterpret_cast<const VkDeviceSize *>( strides.data() ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetDepthTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                static_cast<VkBool32>( depthTestEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetDepthWriteEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                 static_cast<VkBool32>( depthWriteEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetDepthCompareOp( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                               static_cast<VkCompareOp>( depthCompareOp ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable(
-      VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetDepthBoundsTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                      static_cast<VkBool32>( depthBoundsTestEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetStencilTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                  static_cast<VkBool32>( stencilTestEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setStencilOp( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
-                                   VULKAN_HPP_NAMESPACE::StencilOp        failOp,
-                                   VULKAN_HPP_NAMESPACE::StencilOp        passOp,
-                                   VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
-                                   VULKAN_HPP_NAMESPACE::CompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetStencilOp( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                          static_cast<VkStencilFaceFlags>( faceMask ),
-                                          static_cast<VkStencilOp>( failOp ),
-                                          static_cast<VkStencilOp>( passOp ),
-                                          static_cast<VkStencilOp>( depthFailOp ),
-                                          static_cast<VkCompareOp>( compareOp ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnable(
-      VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetRasterizerDiscardEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                        static_cast<VkBool32>( rasterizerDiscardEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetDepthBiasEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                static_cast<VkBool32>( depthBiasEnable ) );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable(
-      VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
-    {
-      getDispatcher()->vkCmdSetPrimitiveRestartEnable( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                       static_cast<VkBool32>( primitiveRestartEnable ) );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
-      Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const
-      VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
-      getDispatcher()->vkGetDeviceBufferMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
-        reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-      return memoryRequirements;
-    }
-
-    template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
-    {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
-        structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
-      getDispatcher()->vkGetDeviceBufferMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
-        reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-      return structureChain;
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
-      getDispatcher()->vkGetDeviceImageMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-        reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-      return memoryRequirements;
-    }
-
-    template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements(
-      const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
-    {
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
-        structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
-      getDispatcher()->vkGetDeviceImageMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-        reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
-      return structureChain;
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
-      Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const
-      VULKAN_HPP_NOEXCEPT
-    {
-      uint32_t sparseMemoryRequirementCount;
-      getDispatcher()->vkGetDeviceImageSparseMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-        &sparseMemoryRequirementCount,
-        nullptr );
-      std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements(
-        sparseMemoryRequirementCount );
-      getDispatcher()->vkGetDeviceImageSparseMemoryRequirements(
-        static_cast<VkDevice>( m_device ),
-        reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
-        &sparseMemoryRequirementCount,
-        reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
-      VULKAN_HPP_ASSERT( sparseMemoryRequirementCount == sparseMemoryRequirements.size() );
-      return sparseMemoryRequirements;
-    }
-
     //=== VK_KHR_surface ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getSurfaceSupportKHR( uint32_t                         queueFamilyIndex,
                                                                                                               VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceSupportKHR> needs extension <VK_KHR_surface> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && "Function <vkGetPhysicalDeviceSurfaceSupportKHR> requires <VK_KHR_surface>" );
 
       VULKAN_HPP_NAMESPACE::Bool32 supported;
-      VkResult                     result = getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR(
-        static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                                                          queueFamilyIndex,
+                                                                                                          static_cast<VkSurfaceKHR>( surface ),
+                                                                                                          reinterpret_cast<VkBool32 *>( &supported ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
 
       return supported;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR
-      PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> needs extension <VK_KHR_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> requires <VK_KHR_surface>" );
 
       VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                    static_cast<VkSurfaceKHR>( surface ),
-                                                                                    reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                    static_cast<VkSurfaceKHR>( surface ),
+                                                                    reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
 
       return surfaceCapabilities;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>
-      PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> needs extension <VK_KHR_surface> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> requires <VK_KHR_surface>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> surfaceFormats;
       uint32_t                                            surfaceFormatCount;
-      VkResult                                            result;
+      VULKAN_HPP_NAMESPACE::Result                        result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
         {
           surfaceFormats.resize( surfaceFormatCount );
-          result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                          static_cast<VkSurfaceKHR>( surface ),
-                                                                          &surfaceFormatCount,
-                                                                          reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                   static_cast<VkSurfaceKHR>( surface ),
+                                                                   &surfaceFormatCount,
+                                                                   reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
       if ( surfaceFormatCount < surfaceFormats.size() )
       {
@@ -13979,28 +14742,29 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR>
-      PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR &&
-                         "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> needs extension <VK_KHR_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> requires <VK_KHR_surface>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes;
       uint32_t                                          presentModeCount;
-      VkResult                                          result;
+      VULKAN_HPP_NAMESPACE::Result                      result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && presentModeCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
         {
           presentModes.resize( presentModeCount );
-          result = getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                               static_cast<VkSurfaceKHR>( surface ),
-                                                                               &presentModeCount,
-                                                                               reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                        static_cast<VkSurfaceKHR>( surface ),
+                                                                        &presentModeCount,
+                                                                        reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
       if ( presentModeCount < presentModes.size() )
       {
@@ -14011,34 +14775,52 @@
 
     //=== VK_KHR_swapchain ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
-                                           Device::createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type
+                        Device::createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
+      VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSwapchainKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSwapchainKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Image> SwapchainKHR::getImages() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> needs extension <VK_KHR_swapchain> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> requires <VK_KHR_swapchain>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::Image> swapchainImages;
       uint32_t                                 swapchainImageCount;
-      VkResult                                 result;
+      VULKAN_HPP_NAMESPACE::Result             result;
       do
       {
-        result = getDispatcher()->vkGetSwapchainImagesKHR(
-          static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &swapchainImageCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && swapchainImageCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainImagesKHR(
+          static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &swapchainImageCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount )
         {
           swapchainImages.resize( swapchainImageCount );
-          result = getDispatcher()->vkGetSwapchainImagesKHR( static_cast<VkDevice>( m_device ),
-                                                             static_cast<VkSwapchainKHR>( m_swapchain ),
-                                                             &swapchainImageCount,
-                                                             reinterpret_cast<VkImage *>( swapchainImages.data() ) );
+          result =
+            static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainImagesKHR( static_cast<VkDevice>( m_device ),
+                                                                                                 static_cast<VkSwapchainKHR>( m_swapchain ),
+                                                                                                 &swapchainImageCount,
+                                                                                                 reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" );
       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
       if ( swapchainImageCount < swapchainImages.size() )
       {
@@ -14050,16 +14832,17 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
       SwapchainKHR::acquireNextImage( uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && "Function <vkAcquireNextImageKHR> needs extension <VK_KHR_swapchain> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && "Function <vkAcquireNextImageKHR> requires <VK_KHR_swapchain>" );
 
-      uint32_t imageIndex;
-      VkResult result = getDispatcher()->vkAcquireNextImageKHR( static_cast<VkDevice>( m_device ),
-                                                                static_cast<VkSwapchainKHR>( m_swapchain ),
-                                                                timeout,
-                                                                static_cast<VkSemaphore>( semaphore ),
-                                                                static_cast<VkFence>( fence ),
-                                                                &imageIndex );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      uint32_t                     imageIndex;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireNextImageKHR( static_cast<VkDevice>( m_device ),
+                                                                                           static_cast<VkSwapchainKHR>( m_swapchain ),
+                                                                                           timeout,
+                                                                                           static_cast<VkSemaphore>( semaphore ),
+                                                                                           static_cast<VkFence>( fence ),
+                                                                                           &imageIndex ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eTimeout,
@@ -14071,12 +14854,12 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && "Function <vkQueuePresentKHR> needs extension <VK_KHR_swapchain> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && "Function <vkQueuePresentKHR> requires <VK_KHR_swapchain>" );
 
-      VkResult result = getDispatcher()->vkQueuePresentKHR( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkQueuePresentKHR( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
@@ -14084,51 +14867,54 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR &&
-                         "Function <vkGetDeviceGroupPresentCapabilitiesKHR> needs extension <VK_KHR_swapchain> enabled!" );
+                         "Function <vkGetDeviceGroupPresentCapabilitiesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
 
       VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
-      VkResult                                                result = getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
 
       return deviceGroupPresentCapabilities;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
-      Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR &&
-                         "Function <vkGetDeviceGroupSurfacePresentModesKHR> needs extension <VK_KHR_swapchain> enabled!" );
+                         "Function <vkGetDeviceGroupSurfacePresentModesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
 
       VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
-      VkResult                                             result = getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR(
-        static_cast<VkDevice>( m_device ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR(
+        static_cast<VkDevice>( m_device ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
 
       return modes;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Rect2D>
-      PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR &&
-                         "Function <vkGetPhysicalDevicePresentRectanglesKHR> needs extension <VK_KHR_swapchain> enabled!" );
+                         "Function <vkGetPhysicalDevicePresentRectanglesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::Rect2D> rects;
       uint32_t                                  rectCount;
-      VkResult                                  result;
+      VULKAN_HPP_NAMESPACE::Result              result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && rectCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount )
         {
           rects.resize( rectCount );
-          result = getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                      static_cast<VkSurfaceKHR>( surface ),
+                                                                      &rectCount,
+                                                                      reinterpret_cast<VkRect2D *>( rects.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
       if ( rectCount < rects.size() )
       {
@@ -14140,12 +14926,12 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
                                            Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && "Function <vkAcquireNextImage2KHR> needs extension <VK_KHR_swapchain> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && "Function <vkAcquireNextImage2KHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
 
-      uint32_t imageIndex;
-      VkResult result = getDispatcher()->vkAcquireNextImage2KHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      uint32_t                     imageIndex;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireNextImage2KHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eTimeout,
@@ -14160,22 +14946,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> PhysicalDevice::getDisplayPropertiesKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> needs extension <VK_KHR_display> enabled!" );
+                         "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> requires <VK_KHR_display>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> properties;
       uint32_t                                                propertyCount;
-      VkResult                                                result;
+      VULKAN_HPP_NAMESPACE::Result                            result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -14187,22 +14974,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> PhysicalDevice::getDisplayPlanePropertiesKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> needs extension <VK_KHR_display> enabled!" );
+                         "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> requires <VK_KHR_display>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> properties;
       uint32_t                                                     propertyCount;
-      VkResult                                                     result;
+      VULKAN_HPP_NAMESPACE::Result                                 result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -14211,34 +14999,64 @@
       return properties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>
-                                           PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>>::Type
+      PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHRs( *this, planeIndex );
+      std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR> displays;
+      uint32_t                                      displayCount;
+      VULKAN_HPP_NAMESPACE::Result                  result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetDisplayPlaneSupportedDisplaysKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), planeIndex, &displayCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
+        {
+          displays.resize( displayCount );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayPlaneSupportedDisplaysKHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> displaysRAII;
+      displaysRAII.reserve( displays.size() );
+      for ( auto & display : displays )
+      {
+        displaysRAII.emplace_back( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) );
+      }
+      return displaysRAII;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> DisplayKHR::getModeProperties() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR &&
-                         "Function <vkGetDisplayModePropertiesKHR> needs extension <VK_KHR_display> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && "Function <vkGetDisplayModePropertiesKHR> requires <VK_KHR_display>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> properties;
       uint32_t                                                    propertyCount;
-      VkResult                                                    result;
+      VULKAN_HPP_NAMESPACE::Result                                result;
       do
       {
-        result = getDispatcher()->vkGetDisplayModePropertiesKHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModePropertiesKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                   static_cast<VkDisplayKHR>( m_display ),
-                                                                   &propertyCount,
-                                                                   reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                            static_cast<VkDisplayKHR>( m_display ),
+                                                            &propertyCount,
+                                                            reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -14247,67 +15065,159 @@
       return properties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR
-                                           DisplayKHR::createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &                          createInfo,
-                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR>::Type
+                        DisplayKHR::createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &                          createInfo,
+                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
+      VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayModeKHR(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ),
+        static_cast<VkDisplayKHR>( m_display ),
+        reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "DisplayKHR::createMode" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR( *this, *reinterpret_cast<VkDisplayModeKHR *>( &mode ) );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR
                                            DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR &&
-                         "Function <vkGetDisplayPlaneCapabilitiesKHR> needs extension <VK_KHR_display> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && "Function <vkGetDisplayPlaneCapabilitiesKHR> requires <VK_KHR_display>" );
 
       VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
-      VkResult result = getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                           static_cast<VkDisplayModeKHR>( m_displayModeKHR ),
-                                                                           planeIndex,
-                                                                           reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" );
+      VULKAN_HPP_NAMESPACE::Result                      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                           static_cast<VkDisplayModeKHR>( m_displayModeKHR ),
+                                                           planeIndex,
+                                                           reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" );
 
       return capabilities;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createDisplayPlaneSurfaceKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &                       createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createDisplayPlaneSurfaceKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &                       createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayPlaneSurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDisplayPlaneSurfaceKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     //=== VK_KHR_display_swapchain ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>>::Type
       Device::createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHRs( *this, createInfos, allocator );
+      std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSharedSwapchainsKHR(
+        static_cast<VkDevice>( m_device ),
+        createInfos.size(),
+        reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainsKHR" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> swapchainsRAII;
+      swapchainsRAII.reserve( swapchains.size() );
+      for ( auto & swapchain : swapchains )
+      {
+        swapchainsRAII.emplace_back( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator );
+      }
+      return swapchainsRAII;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
-                                           Device::createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type
+                        Device::createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &                            createInfo,
                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
+      VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSharedSwapchainsKHR(
+        static_cast<VkDevice>( m_device ),
+        1,
+        reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator );
     }
 
 #  if defined( VK_USE_PLATFORM_XLIB_KHR )
     //=== VK_KHR_xlib_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createXlibSurfaceKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &                          createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createXlibSurfaceKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &                          createInfo,
                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateXlibSurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXlibSurfaceKHR" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
       PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR &&
-                         "Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> needs extension <VK_KHR_xlib_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> requires <VK_KHR_xlib_surface>" );
 
       VkBool32 result =
         getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dpy, visualID );
@@ -14319,18 +15229,35 @@
 #  if defined( VK_USE_PLATFORM_XCB_KHR )
     //=== VK_KHR_xcb_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createXcbSurfaceKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &                           createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createXcbSurfaceKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &                           createInfo,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateXcbSurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXcbSurfaceKHR" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR(
       uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR &&
-                         "Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> needs extension <VK_KHR_xcb_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> requires <VK_KHR_xcb_surface>" );
 
       VkBool32 result = getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR(
         static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &connection, visual_id );
@@ -14342,18 +15269,35 @@
 #  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
     //=== VK_KHR_wayland_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createWaylandSurfaceKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &                       createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createWaylandSurfaceKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &                       createInfo,
                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWaylandSurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWaylandSurfaceKHR" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
       PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR &&
-                         "Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> needs extension <VK_KHR_wayland_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> requires <VK_KHR_wayland_surface>" );
 
       VkBool32 result =
         getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &display );
@@ -14365,29 +15309,63 @@
 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
     //=== VK_KHR_android_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createAndroidSurfaceKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &                       createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createAndroidSurfaceKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &                       createInfo,
                                          VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAndroidSurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createAndroidSurfaceKHR" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
     //=== VK_KHR_win32_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createWin32SurfaceKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &                         createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createWin32SurfaceKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &                         createInfo,
                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWin32SurfaceKHR(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWin32SurfaceKHR" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
-      PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
+                                           PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR &&
-                         "Function <vkGetPhysicalDeviceWin32PresentationSupportKHR> needs extension <VK_KHR_win32_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceWin32PresentationSupportKHR> requires <VK_KHR_win32_surface>" );
 
       VkBool32 result = getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex );
 
@@ -14397,11 +15375,29 @@
 
     //=== VK_EXT_debug_report ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT
-                                           Instance::createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &                  createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT>::Type
+      Instance::createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &                  createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugReportCallbackEXT(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugReportCallbackEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT(
+        *this, *reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ), allocator );
     }
 
     VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
@@ -14412,7 +15408,7 @@
                                                             const std::string &                            layerPrefix,
                                                             const std::string &                            message ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && "Function <vkDebugReportMessageEXT> needs extension <VK_EXT_debug_report> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && "Function <vkDebugReportMessageEXT> requires <VK_EXT_debug_report>" );
 
       getDispatcher()->vkDebugReportMessageEXT( static_cast<VkInstance>( m_instance ),
                                                 static_cast<VkDebugReportFlagsEXT>( flags ),
@@ -14428,27 +15424,25 @@
 
     VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT &&
-                         "Function <vkDebugMarkerSetObjectTagEXT> needs extension <VK_EXT_debug_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && "Function <vkDebugMarkerSetObjectTagEXT> requires <VK_EXT_debug_marker>" );
 
-      VkResult result =
-        getDispatcher()->vkDebugMarkerSetObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectTagEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
     }
 
     VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT &&
-                         "Function <vkDebugMarkerSetObjectNameEXT> needs extension <VK_EXT_debug_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && "Function <vkDebugMarkerSetObjectNameEXT> requires <VK_EXT_debug_marker>" );
 
-      VkResult result = getDispatcher()->vkDebugMarkerSetObjectNameEXT( static_cast<VkDevice>( m_device ),
-                                                                        reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectNameEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && "Function <vkCmdDebugMarkerBeginEXT> needs extension <VK_EXT_debug_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && "Function <vkCmdDebugMarkerBeginEXT> requires <VK_EXT_debug_marker>" );
 
       getDispatcher()->vkCmdDebugMarkerBeginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                  reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
@@ -14456,50 +15450,51 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && "Function <vkCmdDebugMarkerEndEXT> needs extension <VK_EXT_debug_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && "Function <vkCmdDebugMarkerEndEXT> requires <VK_EXT_debug_marker>" );
 
       getDispatcher()->vkCmdDebugMarkerEndEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && "Function <vkCmdDebugMarkerInsertEXT> needs extension <VK_EXT_debug_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && "Function <vkCmdDebugMarkerInsertEXT> requires <VK_EXT_debug_marker>" );
 
       getDispatcher()->vkCmdDebugMarkerInsertEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
     }
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_queue ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR
                                            PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR &&
-                         "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> needs extension <VK_KHR_video_queue> enabled!" );
+                         "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" );
 
       VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities;
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                  reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ),
-                                                                                  reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
+      VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                  reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ),
+                                                                  reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
 
       return capabilities;
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                                            PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR &&
-                         "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> needs extension <VK_KHR_video_queue> enabled!" );
+                         "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" );
 
       StructureChain<X, Y, Z...>                   structureChain;
       VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>();
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                  reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ),
-                                                                                  reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
+      VULKAN_HPP_NAMESPACE::Result                 result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                  reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ),
+                                                                  reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
 
       return structureChain;
     }
@@ -14508,28 +15503,29 @@
       PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> needs extension <VK_KHR_video_queue> enabled!" );
+                         "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties;
       uint32_t                                                    videoFormatPropertyCount;
-      VkResult                                                    result;
+      VULKAN_HPP_NAMESPACE::Result                                result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                               reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
-                                                                               &videoFormatPropertyCount,
-                                                                               nullptr );
-        if ( ( result == VK_SUCCESS ) && videoFormatPropertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                        reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
+                                                                        &videoFormatPropertyCount,
+                                                                        nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
         {
           videoFormatProperties.resize( videoFormatPropertyCount );
-          result =
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
             getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                           reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
                                                                           &videoFormatPropertyCount,
-                                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) );
+                                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
       VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
       if ( videoFormatPropertyCount < videoFormatProperties.size() )
       {
@@ -14538,36 +15534,53 @@
       return videoFormatProperties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR
-                                           Device::createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &                         createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR>::Type
+      Device::createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &                         createInfo,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
+      VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR( *this, *reinterpret_cast<VkVideoSessionKHR *>( &videoSession ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR> VideoSessionKHR::getMemoryRequirements() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR &&
-                         "Function <vkGetVideoSessionMemoryRequirementsKHR> needs extension <VK_KHR_video_queue> enabled!" );
+                         "Function <vkGetVideoSessionMemoryRequirementsKHR> requires <VK_KHR_video_queue>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR> memoryRequirements;
       uint32_t                                                             memoryRequirementsCount;
-      VkResult                                                             result;
+      VULKAN_HPP_NAMESPACE::Result                                         result;
       do
       {
-        result = getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR(
-          static_cast<VkDevice>( m_device ), static_cast<VkVideoSessionKHR>( m_videoSession ), &memoryRequirementsCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && memoryRequirementsCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR(
+          static_cast<VkDevice>( m_device ), static_cast<VkVideoSessionKHR>( m_videoSession ), &memoryRequirementsCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount )
         {
           memoryRequirements.resize( memoryRequirementsCount );
-          result =
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
             getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
                                                                      static_cast<VkVideoSessionKHR>( m_videoSession ),
                                                                      &memoryRequirementsCount,
-                                                                     reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) );
+                                                                     reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::getMemoryRequirements" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+
       VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() );
       if ( memoryRequirementsCount < memoryRequirements.size() )
       {
@@ -14579,38 +15592,55 @@
     VULKAN_HPP_INLINE void VideoSessionKHR::bindMemory(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkBindVideoSessionMemoryKHR &&
-                         "Function <vkBindVideoSessionMemoryKHR> needs extension <VK_KHR_video_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindVideoSessionMemoryKHR && "Function <vkBindVideoSessionMemoryKHR> requires <VK_KHR_video_queue>" );
 
-      VkResult result =
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkBindVideoSessionMemoryKHR( static_cast<VkDevice>( m_device ),
                                                       static_cast<VkVideoSessionKHR>( m_videoSession ),
                                                       bindSessionMemoryInfos.size(),
-                                                      reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" );
+                                                      reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR>::Type
       Device::createVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &               createInfo,
                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
+      VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionParametersKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionParametersKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR(
+        *this, *reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ), allocator );
     }
 
     VULKAN_HPP_INLINE void VideoSessionParametersKHR::update( const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateVideoSessionParametersKHR &&
-                         "Function <vkUpdateVideoSessionParametersKHR> needs extension <VK_KHR_video_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateVideoSessionParametersKHR && "Function <vkUpdateVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
 
-      VkResult result = getDispatcher()->vkUpdateVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
-                                                                            static_cast<VkVideoSessionParametersKHR>( m_videoSessionParameters ),
-                                                                            reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkUpdateVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
+                                                            static_cast<VkVideoSessionParametersKHR>( m_videoSessionParameters ),
+                                                            reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginVideoCodingKHR && "Function <vkCmdBeginVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginVideoCodingKHR && "Function <vkCmdBeginVideoCodingKHR> requires <VK_KHR_video_queue>" );
 
       getDispatcher()->vkCmdBeginVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                  reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) );
@@ -14618,7 +15648,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndVideoCodingKHR && "Function <vkCmdEndVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndVideoCodingKHR && "Function <vkCmdEndVideoCodingKHR> requires <VK_KHR_video_queue>" );
 
       getDispatcher()->vkCmdEndVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) );
@@ -14627,23 +15657,20 @@
     VULKAN_HPP_INLINE void
       CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdControlVideoCodingKHR && "Function <vkCmdControlVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdControlVideoCodingKHR && "Function <vkCmdControlVideoCodingKHR> requires <VK_KHR_video_queue>" );
 
       getDispatcher()->vkCmdControlVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) );
     }
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_decode_queue ===
 
     VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecodeVideoKHR && "Function <vkCmdDecodeVideoKHR> needs extension <VK_KHR_video_decode_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecodeVideoKHR && "Function <vkCmdDecodeVideoKHR> requires <VK_KHR_video_decode_queue>" );
 
       getDispatcher()->vkCmdDecodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoDecodeInfoKHR *>( &decodeInfo ) );
     }
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     //=== VK_EXT_transform_feedback ===
 
@@ -14654,7 +15681,11 @@
                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT &&
-                         "Function <vkCmdBindTransformFeedbackBuffersEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+                         "Function <vkCmdBindTransformFeedbackBuffersEXT> requires <VK_EXT_transform_feedback>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
+      VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
+#  else
       if ( buffers.size() != offsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
@@ -14663,6 +15694,7 @@
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                              firstBinding,
@@ -14677,12 +15709,15 @@
                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     counterBuffers,
                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginTransformFeedbackEXT &&
-                         "Function <vkCmdBeginTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginTransformFeedbackEXT && "Function <vkCmdBeginTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
+#  else
       if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBeginTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                        firstCounterBuffer,
@@ -14696,12 +15731,15 @@
                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     counterBuffers,
                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndTransformFeedbackEXT &&
-                         "Function <vkCmdEndTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndTransformFeedbackEXT && "Function <vkCmdEndTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
+#  else
       if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdEndTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                      firstCounterBuffer,
@@ -14715,8 +15753,7 @@
                                                                 VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
                                                                 uint32_t                                index ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT &&
-                         "Function <vkCmdBeginQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT && "Function <vkCmdBeginQueryIndexedEXT> requires <VK_EXT_transform_feedback>" );
 
       getDispatcher()->vkCmdBeginQueryIndexedEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
@@ -14725,8 +15762,7 @@
     VULKAN_HPP_INLINE void
       CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT &&
-                         "Function <vkCmdEndQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT && "Function <vkCmdEndQueryIndexedEXT> requires <VK_EXT_transform_feedback>" );
 
       getDispatcher()->vkCmdEndQueryIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, index );
     }
@@ -14738,8 +15774,7 @@
                                                                     uint32_t                         counterOffset,
                                                                     uint32_t                         vertexStride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectByteCountEXT &&
-                         "Function <vkCmdDrawIndirectByteCountEXT> needs extension <VK_EXT_transform_feedback> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectByteCountEXT && "Function <vkCmdDrawIndirectByteCountEXT> requires <VK_EXT_transform_feedback>" );
 
       getDispatcher()->vkCmdDrawIndirectByteCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       instanceCount,
@@ -14752,23 +15787,57 @@
 
     //=== VK_NVX_binary_import ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX
-                                           Device::createCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX>::Type
+                        Device::createCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &                             createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::CuModuleNVX module;
+      VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCuModuleNVX(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkCuModuleNVX *>( &module ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuModuleNVX" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX( *this, *reinterpret_cast<VkCuModuleNVX *>( &module ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX
-                                           Device::createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &                           createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX>::Type
+                        Device::createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &                           createInfo,
                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
+      VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCuFunctionNVX(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkCuFunctionNVX *>( &function ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuFunctionNVX" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX( *this, *reinterpret_cast<VkCuFunctionNVX *>( &function ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCuLaunchKernelNVX && "Function <vkCmdCuLaunchKernelNVX> needs extension <VK_NVX_binary_import> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCuLaunchKernelNVX && "Function <vkCmdCuLaunchKernelNVX> requires <VK_NVX_binary_import>" );
 
       getDispatcher()->vkCmdCuLaunchKernelNVX( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCuLaunchInfoNVX *>( &launchInfo ) );
     }
@@ -14778,7 +15847,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t
       Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && "Function <vkGetImageViewHandleNVX> needs extension <VK_NVX_image_view_handle> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && "Function <vkGetImageViewHandleNVX> requires <VK_NVX_image_view_handle>" );
 
       uint32_t result =
         getDispatcher()->vkGetImageViewHandleNVX( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
@@ -14788,13 +15857,12 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX &&
-                         "Function <vkGetImageViewAddressNVX> needs extension <VK_NVX_image_view_handle> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && "Function <vkGetImageViewAddressNVX> requires <VK_NVX_image_view_handle>" );
 
       VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
-      VkResult                                            result = getDispatcher()->vkGetImageViewAddressNVX(
-        static_cast<VkDevice>( m_device ), static_cast<VkImageView>( m_imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" );
+      VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageViewAddressNVX(
+        static_cast<VkDevice>( m_device ), static_cast<VkImageView>( m_imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" );
 
       return properties;
     }
@@ -14809,7 +15877,7 @@
                                                                 uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountAMD &&
-                         "Function <vkCmdDrawIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!" );
+                         "Function <vkCmdDrawIndirectCountAMD> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdDrawIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkBuffer>( buffer ),
@@ -14827,8 +15895,9 @@
                                                                        uint32_t                         maxDrawCount,
                                                                        uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirectCountAMD &&
-                         "Function <vkCmdDrawIndexedIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkCmdDrawIndexedIndirectCountAMD &&
+        "Function <vkCmdDrawIndexedIndirectCountAMD> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdDrawIndexedIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkBuffer>( buffer ),
@@ -14844,31 +15913,31 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> Pipeline::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
                                                                                             VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD   infoType ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> needs extension <VK_AMD_shader_info> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> requires <VK_AMD_shader_info>" );
 
-      std::vector<uint8_t> info;
-      size_t               infoSize;
-      VkResult             result;
+      std::vector<uint8_t>         info;
+      size_t                       infoSize;
+      VULKAN_HPP_NAMESPACE::Result result;
       do
       {
-        result = getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ),
-                                                      static_cast<VkPipeline>( m_pipeline ),
-                                                      static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                                      static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                                      &infoSize,
-                                                      nullptr );
-        if ( ( result == VK_SUCCESS ) && infoSize )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ),
+                                                                                                 static_cast<VkPipeline>( m_pipeline ),
+                                                                                                 static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                                 static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                                 &infoSize,
+                                                                                                 nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize )
         {
           info.resize( infoSize );
-          result = getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ),
-                                                        static_cast<VkPipeline>( m_pipeline ),
-                                                        static_cast<VkShaderStageFlagBits>( shaderStage ),
-                                                        static_cast<VkShaderInfoTypeAMD>( infoType ),
-                                                        &infoSize,
-                                                        reinterpret_cast<void *>( info.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ),
+                                                                                                   static_cast<VkPipeline>( m_pipeline ),
+                                                                                                   static_cast<VkShaderStageFlagBits>( shaderStage ),
+                                                                                                   static_cast<VkShaderInfoTypeAMD>( infoType ),
+                                                                                                   &infoSize,
+                                                                                                   reinterpret_cast<void *>( info.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" );
       VULKAN_HPP_ASSERT( infoSize <= info.size() );
       if ( infoSize < info.size() )
       {
@@ -14881,14 +15950,15 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderingKHR && "Function <vkCmdBeginRenderingKHR> needs extension <VK_KHR_dynamic_rendering> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderingKHR &&
+                         "Function <vkCmdBeginRenderingKHR> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdBeginRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::endRenderingKHR() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderingKHR && "Function <vkCmdEndRenderingKHR> needs extension <VK_KHR_dynamic_rendering> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderingKHR && "Function <vkCmdEndRenderingKHR> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdEndRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
@@ -14896,11 +15966,28 @@
 #  if defined( VK_USE_PLATFORM_GGP )
     //=== VK_GGP_stream_descriptor_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-      Instance::createStreamDescriptorSurfaceGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &              createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createStreamDescriptorSurfaceGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &              createInfo,
                                                   VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateStreamDescriptorSurfaceGGP(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createStreamDescriptorSurfaceGGP" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_GGP*/
 
@@ -14915,10 +16002,10 @@
                                                           VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV &&
-                         "Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> needs extension <VK_NV_external_memory_capabilities> enabled!" );
+                         "Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> requires <VK_NV_external_memory_capabilities>" );
 
       VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
-      VkResult                                              result = getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
         static_cast<VkPhysicalDevice>( m_physicalDevice ),
         static_cast<VkFormat>( format ),
         static_cast<VkImageType>( type ),
@@ -14926,8 +16013,8 @@
         static_cast<VkImageUsageFlags>( usage ),
         static_cast<VkImageCreateFlags>( flags ),
         static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ),
-        reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
+        reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
 
       return externalImageFormatProperties;
     }
@@ -14937,13 +16024,12 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV &&
-                         "Function <vkGetMemoryWin32HandleNV> needs extension <VK_NV_external_memory_win32> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && "Function <vkGetMemoryWin32HandleNV> requires <VK_NV_external_memory_win32>" );
 
-      HANDLE   handle;
-      VkResult result = getDispatcher()->vkGetMemoryWin32HandleNV(
-        static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" );
+      HANDLE                       handle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandleNV(
+        static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" );
 
       return handle;
     }
@@ -14954,7 +16040,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2KHR &&
-                         "Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
       getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -14964,13 +16050,13 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2KHR &&
-                         "Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                      structureChain;
-      VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
       getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                         reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
 
@@ -14980,7 +16066,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
       getDispatcher()->vkGetPhysicalDeviceProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -14990,12 +16076,12 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                        structureChain;
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
       VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
       getDispatcher()->vkGetPhysicalDeviceProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                           reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
@@ -15004,10 +16090,10 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
-      PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
+                                           PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
       getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR(
@@ -15017,14 +16103,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
-      PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                           PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                structureChain;
-      VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
       getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR(
         static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
 
@@ -15035,32 +16121,32 @@
       PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
-      VkResult                                     result =
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                        reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
+                                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
 
       return imageFormatProperties;
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       StructureChain<X, Y, Z...>                     structureChain;
       VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
-      VkResult                                       result =
+      VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
                                                                        reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
-                                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
+                                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
 
       return structureChain;
     }
@@ -15068,7 +16154,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> PhysicalDevice::getQueueFamilyProperties2KHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
       uint32_t                                                  queueFamilyPropertyCount;
@@ -15090,7 +16176,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2KHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       std::vector<StructureChain>                               structureChains;
       std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
@@ -15122,7 +16208,7 @@
                                            PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
       getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -15132,12 +16218,12 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                              structureChain;
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
       VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
         structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
       getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -15149,8 +16235,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
       PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR &&
+        "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties;
       uint32_t                                                        propertyCount;
@@ -15178,7 +16265,7 @@
       Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR &&
-                         "Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> needs extension <VK_KHR_device_group> enabled!" );
+                         "Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
       getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR( static_cast<VkDevice>( m_device ),
@@ -15192,7 +16279,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMaskKHR && "Function <vkCmdSetDeviceMaskKHR> needs extension <VK_KHR_device_group> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMaskKHR && "Function <vkCmdSetDeviceMaskKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkCmdSetDeviceMaskKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask );
     }
@@ -15204,7 +16291,7 @@
                                                            uint32_t groupCountY,
                                                            uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBaseKHR && "Function <vkCmdDispatchBaseKHR> needs extension <VK_KHR_device_group> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBaseKHR && "Function <vkCmdDispatchBaseKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkCmdDispatchBaseKHR(
         static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
@@ -15213,11 +16300,28 @@
 #  if defined( VK_USE_PLATFORM_VI_NN )
     //=== VK_NN_vi_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createViSurfaceNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createViSurfaceNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &                             createInfo,
                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateViSurfaceNN(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createViSurfaceNN" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_VI_NN*/
 
@@ -15225,7 +16329,7 @@
 
     VULKAN_HPP_INLINE void CommandPool::trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPoolKHR && "Function <vkTrimCommandPoolKHR> needs extension <VK_KHR_maintenance1> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPoolKHR && "Function <vkTrimCommandPoolKHR> requires <VK_KHR_maintenance1> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkTrimCommandPoolKHR(
         static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
@@ -15236,24 +16340,25 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroupsKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR &&
-                         "Function <vkEnumeratePhysicalDeviceGroupsKHR> needs extension <VK_KHR_device_group_creation> enabled!" );
+                         "Function <vkEnumeratePhysicalDeviceGroupsKHR> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties;
       uint32_t                                                         physicalDeviceGroupCount;
-      VkResult                                                         result;
+      VULKAN_HPP_NAMESPACE::Result                                     result;
       do
       {
-        result = getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && physicalDeviceGroupCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
         {
           physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
-          result =
-            getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( static_cast<VkInstance>( m_instance ),
-                                                                 &physicalDeviceGroupCount,
-                                                                 reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR(
+            static_cast<VkInstance>( m_instance ),
+            &physicalDeviceGroupCount,
+            reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
       if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
       {
@@ -15268,7 +16373,7 @@
       const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> needs extension <VK_KHR_external_memory_capabilities> enabled!" );
+                         "Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -15284,13 +16389,12 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
       Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleKHR &&
-                         "Function <vkGetMemoryWin32HandleKHR> needs extension <VK_KHR_external_memory_win32> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleKHR && "Function <vkGetMemoryWin32HandleKHR> requires <VK_KHR_external_memory_win32>" );
 
-      HANDLE   handle;
-      VkResult result = getDispatcher()->vkGetMemoryWin32HandleKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
+      HANDLE                       handle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandleKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
 
       return handle;
     }
@@ -15299,15 +16403,15 @@
       Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR &&
-                         "Function <vkGetMemoryWin32HandlePropertiesKHR> needs extension <VK_KHR_external_memory_win32> enabled!" );
+                         "Function <vkGetMemoryWin32HandlePropertiesKHR> requires <VK_KHR_external_memory_win32>" );
 
       VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
-      VkResult                                             result =
+      VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR( static_cast<VkDevice>( m_device ),
                                                               static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
                                                               handle,
-                                                              reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
+                                                              reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
 
       return memoryWin32HandleProperties;
     }
@@ -15317,12 +16421,12 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && "Function <vkGetMemoryFdKHR> needs extension <VK_KHR_external_memory_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && "Function <vkGetMemoryFdKHR> requires <VK_KHR_external_memory_fd>" );
 
-      int      fd;
-      VkResult result =
-        getDispatcher()->vkGetMemoryFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
+      int                          fd;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetMemoryFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
 
       return fd;
     }
@@ -15330,15 +16434,15 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR
                                            Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR &&
-                         "Function <vkGetMemoryFdPropertiesKHR> needs extension <VK_KHR_external_memory_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && "Function <vkGetMemoryFdPropertiesKHR> requires <VK_KHR_external_memory_fd>" );
 
       VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
-      VkResult                                    result = getDispatcher()->vkGetMemoryFdPropertiesKHR( static_cast<VkDevice>( m_device ),
-                                                                     static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
-                                                                     fd,
-                                                                     reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetMemoryFdPropertiesKHR( static_cast<VkDevice>( m_device ),
+                                                     static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
+                                                     fd,
+                                                     reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
 
       return memoryFdProperties;
     }
@@ -15349,7 +16453,7 @@
       const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> needs extension <VK_KHR_external_semaphore_capabilities> enabled!" );
+                         "Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
@@ -15367,23 +16471,23 @@
       Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreWin32HandleKHR &&
-                         "Function <vkImportSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!" );
+                         "Function <vkImportSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" );
 
-      VkResult result = getDispatcher()->vkImportSemaphoreWin32HandleKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreWin32HandleKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
       Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreWin32HandleKHR &&
-                         "Function <vkGetSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!" );
+                         "Function <vkGetSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" );
 
-      HANDLE   handle;
-      VkResult result = getDispatcher()->vkGetSemaphoreWin32HandleKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
+      HANDLE                       handle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreWin32HandleKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
 
       return handle;
     }
@@ -15393,22 +16497,21 @@
 
     VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR &&
-                         "Function <vkImportSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && "Function <vkImportSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" );
 
-      VkResult result = getDispatcher()->vkImportSemaphoreFdKHR( static_cast<VkDevice>( m_device ),
-                                                                 reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreFdKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && "Function <vkGetSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && "Function <vkGetSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" );
 
-      int      fd;
-      VkResult result =
-        getDispatcher()->vkGetSemaphoreFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
+      int                          fd;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetSemaphoreFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
 
       return fd;
     }
@@ -15421,8 +16524,7 @@
       uint32_t                                                                                 set,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR &&
-                         "Function <vkCmdPushDescriptorSetKHR> needs extension <VK_KHR_push_descriptor> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR && "Function <vkCmdPushDescriptorSetKHR> requires <VK_KHR_push_descriptor>" );
 
       getDispatcher()->vkCmdPushDescriptorSetKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
@@ -15439,7 +16541,7 @@
                                                                             DataType const &                               data ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR &&
-                         "Function <vkCmdPushDescriptorSetWithTemplateKHR> needs extension <VK_KHR_push_descriptor> enabled!" );
+                         "Function <vkCmdPushDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_KHR_push_descriptor>" );
 
       getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                               static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -15454,7 +16556,7 @@
       const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginConditionalRenderingEXT &&
-                         "Function <vkCmdBeginConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!" );
+                         "Function <vkCmdBeginConditionalRenderingEXT> requires <VK_EXT_conditional_rendering>" );
 
       getDispatcher()->vkCmdBeginConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                           reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
@@ -15463,18 +16565,36 @@
     VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndConditionalRenderingEXT &&
-                         "Function <vkCmdEndConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!" );
+                         "Function <vkCmdEndConditionalRenderingEXT> requires <VK_EXT_conditional_rendering>" );
 
       getDispatcher()->vkCmdEndConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
 
     //=== VK_KHR_descriptor_update_template ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type
       Device::createDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &                createInfo,
                                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
+      VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorUpdateTemplateKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplateKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate(
+        *this, *reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ), allocator );
     }
 
     VULKAN_HPP_INLINE void
@@ -15482,7 +16602,7 @@
                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR &&
-                         "Function <vkDestroyDescriptorUpdateTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!" );
+                         "Function <vkDestroyDescriptorUpdateTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR(
         static_cast<VkDevice>( m_device ),
@@ -15495,7 +16615,7 @@
                                                                  DataType const &                               data ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR &&
-                         "Function <vkUpdateDescriptorSetWithTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!" );
+                         "Function <vkUpdateDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR( static_cast<VkDevice>( m_device ),
                                                              static_cast<VkDescriptorSet>( m_descriptorSet ),
@@ -15509,8 +16629,7 @@
       uint32_t                                                                                 firstViewport,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingNV &&
-                         "Function <vkCmdSetViewportWScalingNV> needs extension <VK_NV_clip_space_w_scaling> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingNV && "Function <vkCmdSetViewportWScalingNV> requires <VK_NV_clip_space_w_scaling>" );
 
       getDispatcher()->vkCmdSetViewportWScalingNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    firstViewport,
@@ -15523,40 +16642,47 @@
 
     VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT &&
-                         "Function <vkAcquireXlibDisplayEXT> needs extension <VK_EXT_acquire_xlib_display> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && "Function <vkAcquireXlibDisplayEXT> requires <VK_EXT_acquire_xlib_display>" );
 
-      VkResult result =
-        getDispatcher()->vkAcquireXlibDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, static_cast<VkDisplayKHR>( display ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquireXlibDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, static_cast<VkDisplayKHR>( display ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getRandROutputDisplayEXT( Display & dpy,
-                                                                                                                           RROutput  rrOutput ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                        PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, dpy, rrOutput );
-    }
+      VULKAN_HPP_NAMESPACE::DisplayKHR display;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRandROutputDisplayEXT(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getRandROutputDisplayEXT" );
+#    endif
+      }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR
-      PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, dpy, rrOutput );
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) );
     }
 #  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
 
     //=== VK_EXT_display_surface_counter ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT
-      PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
+                                           PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT &&
-                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> needs extension <VK_EXT_display_surface_counter> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> requires <VK_EXT_display_surface_counter>" );
 
       VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                     static_cast<VkSurfaceKHR>( surface ),
-                                                                                     reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
+      VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                     static_cast<VkSurfaceKHR>( surface ),
+                                                                     reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
 
       return surfaceCapabilities;
     }
@@ -15566,36 +16692,71 @@
     VULKAN_HPP_INLINE void Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR                  display,
                                                            const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && "Function <vkDisplayPowerControlEXT> needs extension <VK_EXT_display_control> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && "Function <vkDisplayPowerControlEXT> requires <VK_EXT_display_control>" );
 
-      VkResult result = getDispatcher()->vkDisplayPowerControlEXT(
-        static_cast<VkDevice>( m_device ), static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDisplayPowerControlEXT(
+        static_cast<VkDevice>( m_device ), static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
-                                           Device::registerEventEXT( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &                                deviceEventInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
+                        Device::registerEventEXT( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &                                deviceEventInfo,
                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Fence( *this, deviceEventInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Fence  fence;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkRegisterDeviceEventEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkFence *>( &fence ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerEventEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
-                                           Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &             display,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type
+                        Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &             display,
                                        VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const &                               displayEventInfo,
                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Fence( *this, display, displayEventInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Fence  fence;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkRegisterDisplayEventEXT(
+        static_cast<VkDevice>( m_device ),
+        static_cast<VkDisplayKHR>( *display ),
+        reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkFence *>( &fence ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerDisplayEventEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && "Function <vkGetSwapchainCounterEXT> needs extension <VK_EXT_display_control> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && "Function <vkGetSwapchainCounterEXT> requires <VK_EXT_display_control>" );
 
-      uint64_t counterValue;
-      VkResult result = getDispatcher()->vkGetSwapchainCounterEXT(
-        static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" );
+      uint64_t                     counterValue;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainCounterEXT(
+        static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" );
 
       return counterValue;
     }
@@ -15604,14 +16765,14 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRefreshCycleDurationGOOGLE &&
-                         "Function <vkGetRefreshCycleDurationGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRefreshCycleDurationGOOGLE && "Function <vkGetRefreshCycleDurationGOOGLE> requires <VK_GOOGLE_display_timing>" );
 
       VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
-      VkResult                                         result = getDispatcher()->vkGetRefreshCycleDurationGOOGLE( static_cast<VkDevice>( m_device ),
-                                                                          static_cast<VkSwapchainKHR>( m_swapchain ),
-                                                                          reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" );
+      VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetRefreshCycleDurationGOOGLE( static_cast<VkDevice>( m_device ),
+                                                          static_cast<VkSwapchainKHR>( m_swapchain ),
+                                                          reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" );
 
       return displayTimingProperties;
     }
@@ -15619,25 +16780,26 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> SwapchainKHR::getPastPresentationTimingGOOGLE() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPastPresentationTimingGOOGLE &&
-                         "Function <vkGetPastPresentationTimingGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!" );
+                         "Function <vkGetPastPresentationTimingGOOGLE> requires <VK_GOOGLE_display_timing>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> presentationTimings;
       uint32_t                                                        presentationTimingCount;
-      VkResult                                                        result;
+      VULKAN_HPP_NAMESPACE::Result                                    result;
       do
       {
-        result = getDispatcher()->vkGetPastPresentationTimingGOOGLE(
-          static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &presentationTimingCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && presentationTimingCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPastPresentationTimingGOOGLE(
+          static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &presentationTimingCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount )
         {
           presentationTimings.resize( presentationTimingCount );
-          result = getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast<VkDevice>( m_device ),
-                                                                       static_cast<VkSwapchainKHR>( m_swapchain ),
-                                                                       &presentationTimingCount,
-                                                                       reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast<VkDevice>( m_device ),
+                                                                static_cast<VkSwapchainKHR>( m_swapchain ),
+                                                                &presentationTimingCount,
+                                                                reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" );
       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
       if ( presentationTimingCount < presentationTimings.size() )
       {
@@ -15651,8 +16813,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT(
       uint32_t firstDiscardRectangle, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEXT &&
-                         "Function <vkCmdSetDiscardRectangleEXT> needs extension <VK_EXT_discard_rectangles> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEXT && "Function <vkCmdSetDiscardRectangleEXT> requires <VK_EXT_discard_rectangles>" );
 
       getDispatcher()->vkCmdSetDiscardRectangleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                     firstDiscardRectangle,
@@ -15660,16 +16821,38 @@
                                                     reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
     }
 
+    VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEnableEXT &&
+                         "Function <vkCmdSetDiscardRectangleEnableEXT> requires <VK_EXT_discard_rectangles>" );
+
+      getDispatcher()->vkCmdSetDiscardRectangleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( discardRectangleEnable ) );
+    }
+
+    VULKAN_HPP_INLINE void
+      CommandBuffer::setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleModeEXT &&
+                         "Function <vkCmdSetDiscardRectangleModeEXT> requires <VK_EXT_discard_rectangles>" );
+
+      getDispatcher()->vkCmdSetDiscardRectangleModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                        static_cast<VkDiscardRectangleModeEXT>( discardRectangleMode ) );
+    }
+
     //=== VK_EXT_hdr_metadata ===
 
     VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const &   swapchains,
                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && "Function <vkSetHdrMetadataEXT> needs extension <VK_EXT_hdr_metadata> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && "Function <vkSetHdrMetadataEXT> requires <VK_EXT_hdr_metadata>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
+#  else
       if ( swapchains.size() != metadata.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkSetHdrMetadataEXT( static_cast<VkDevice>( m_device ),
                                             swapchains.size(),
@@ -15679,18 +16862,35 @@
 
     //=== VK_KHR_create_renderpass2 ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
-                                           Device::createRenderPass2KHR( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type
+                        Device::createRenderPass2KHR( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &                             createInfo,
                                     VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::RenderPass renderPass;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass2KHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2KHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
                                                                const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &    subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass2KHR &&
-                         "Function <vkCmdBeginRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" );
+                         "Function <vkCmdBeginRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdBeginRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                  reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
@@ -15700,7 +16900,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,
                                                            const VULKAN_HPP_NAMESPACE::SubpassEndInfo &   subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2KHR && "Function <vkCmdNextSubpass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2KHR && "Function <vkCmdNextSubpass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdNextSubpass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ),
@@ -15709,7 +16909,8 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2KHR && "Function <vkCmdEndRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2KHR &&
+                         "Function <vkCmdEndRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdEndRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
     }
@@ -15718,11 +16919,11 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainStatusKHR &&
-                         "Function <vkGetSwapchainStatusKHR> needs extension <VK_KHR_shared_presentable_image> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainStatusKHR && "Function <vkGetSwapchainStatusKHR> requires <VK_KHR_shared_presentable_image>" );
 
-      VkResult result = getDispatcher()->vkGetSwapchainStatusKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetSwapchainStatusKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
@@ -15735,7 +16936,7 @@
       PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR &&
-                         "Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> needs extension <VK_KHR_external_fence_capabilities> enabled!" );
+                         "Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
       getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -15750,24 +16951,22 @@
 
     VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceWin32HandleKHR &&
-                         "Function <vkImportFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceWin32HandleKHR && "Function <vkImportFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" );
 
-      VkResult result = getDispatcher()->vkImportFenceWin32HandleKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportFenceWin32HandleKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
       Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR &&
-                         "Function <vkGetFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && "Function <vkGetFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" );
 
-      HANDLE   handle;
-      VkResult result = getDispatcher()->vkGetFenceWin32HandleKHR(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
+      HANDLE                       handle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceWin32HandleKHR(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
 
       return handle;
     }
@@ -15777,20 +16976,21 @@
 
     VULKAN_HPP_INLINE void Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && "Function <vkImportFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && "Function <vkImportFenceFdKHR> requires <VK_KHR_external_fence_fd>" );
 
-      VkResult result =
-        getDispatcher()->vkImportFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkImportFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && "Function <vkGetFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && "Function <vkGetFenceFdKHR> requires <VK_KHR_external_fence_fd>" );
 
-      int      fd;
-      VkResult result = getDispatcher()->vkGetFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
+      int                          fd;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
 
       return fd;
     }
@@ -15802,45 +17002,44 @@
                         PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR &&
-                         "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> needs extension <VK_KHR_performance_query> enabled!" );
+                         "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> requires <VK_KHR_performance_query>" );
 
-      std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>, std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>> data;
-      std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> &            counters            = data.first;
-      std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR> & counterDescriptions = data.second;
+      std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>, std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>> data_;
+      std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> &            counters            = data_.first;
+      std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR> & counterDescriptions = data_.second;
       uint32_t                                                              counterCount;
-      VkResult                                                              result;
+      VULKAN_HPP_NAMESPACE::Result                                          result;
       do
       {
-        result = getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &counterCount, nullptr, nullptr );
-        if ( ( result == VK_SUCCESS ) && counterCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &counterCount, nullptr, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount )
         {
           counters.resize( counterCount );
           counterDescriptions.resize( counterCount );
-          result = getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
             static_cast<VkPhysicalDevice>( m_physicalDevice ),
             queueFamilyIndex,
             &counterCount,
             reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ),
-            reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) );
+            reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
       VULKAN_HPP_ASSERT( counterCount <= counters.size() );
       if ( counterCount < counters.size() )
       {
         counters.resize( counterCount );
         counterDescriptions.resize( counterCount );
       }
-      return data;
+      return data_;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR(
       const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR &&
-                         "Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> needs extension <VK_KHR_performance_query> enabled!" );
+                         "Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> requires <VK_KHR_performance_query>" );
 
       uint32_t numPasses;
       getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
@@ -15853,18 +17052,16 @@
 
     VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR &&
-                         "Function <vkAcquireProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && "Function <vkAcquireProfilingLockKHR> requires <VK_KHR_performance_query>" );
 
-      VkResult result =
-        getDispatcher()->vkAcquireProfilingLockKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquireProfilingLockKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
     }
 
     VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR &&
-                         "Function <vkReleaseProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR && "Function <vkReleaseProfilingLockKHR> requires <VK_KHR_performance_query>" );
 
       getDispatcher()->vkReleaseProfilingLockKHR( static_cast<VkDevice>( m_device ) );
     }
@@ -15875,30 +17072,32 @@
       PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" );
 
       VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
+      VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
 
       return surfaceCapabilities;
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" );
 
       StructureChain<X, Y, Z...>                      structureChain;
       VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
-      VkResult result = getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
+      VULKAN_HPP_NAMESPACE::Result                    result              = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
 
       return structureChain;
     }
@@ -15907,27 +17106,29 @@
       PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
       uint32_t                                             surfaceFormatCount;
-      VkResult                                             result;
+      VULKAN_HPP_NAMESPACE::Result                         result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                         reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                         &surfaceFormatCount,
-                                                                         nullptr );
-        if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                  reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                  &surfaceFormatCount,
+                                                                  nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
         {
           surfaceFormats.resize( surfaceFormatCount );
-          result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                           reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                           &surfaceFormatCount,
-                                                                           reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                    &surfaceFormatCount,
+                                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
       if ( surfaceFormatCount < surfaceFormats.size() )
       {
@@ -15941,19 +17142,20 @@
       PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR &&
-                         "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
 
       std::vector<StructureChain>                          structureChains;
       std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
       uint32_t                                             surfaceFormatCount;
-      VkResult                                             result;
+      VULKAN_HPP_NAMESPACE::Result                         result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                         reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                         &surfaceFormatCount,
-                                                                         nullptr );
-        if ( ( result == VK_SUCCESS ) && surfaceFormatCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                  reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                  &surfaceFormatCount,
+                                                                  nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
         {
           structureChains.resize( surfaceFormatCount );
           surfaceFormats.resize( surfaceFormatCount );
@@ -15961,13 +17163,14 @@
           {
             surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext;
           }
-          result = getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                           reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                           &surfaceFormatCount,
-                                                                           reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                    &surfaceFormatCount,
+                                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
       if ( surfaceFormatCount < surfaceFormats.size() )
       {
@@ -15985,22 +17188,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> PhysicalDevice::getDisplayProperties2KHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceDisplayProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceDisplayProperties2KHR> requires <VK_KHR_get_display_properties2>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> properties;
       uint32_t                                                 propertyCount;
-      VkResult                                                 result;
+      VULKAN_HPP_NAMESPACE::Result                             result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -16012,22 +17216,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> PhysicalDevice::getDisplayPlaneProperties2KHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR &&
-                         "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" );
+                         "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> requires <VK_KHR_get_display_properties2>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> properties;
       uint32_t                                                      propertyCount;
-      VkResult                                                      result;
+      VULKAN_HPP_NAMESPACE::Result                                  result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -16039,25 +17244,26 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> DisplayKHR::getModeProperties2() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModeProperties2KHR &&
-                         "Function <vkGetDisplayModeProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" );
+                         "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties;
       uint32_t                                                     propertyCount;
-      VkResult                                                     result;
+      VULKAN_HPP_NAMESPACE::Result                                 result;
       do
       {
-        result = getDispatcher()->vkGetDisplayModeProperties2KHR(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModeProperties2KHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                    static_cast<VkDisplayKHR>( m_display ),
-                                                                    &propertyCount,
-                                                                    reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                             static_cast<VkDisplayKHR>( m_display ),
+                                                             &propertyCount,
+                                                             reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -16070,13 +17276,14 @@
       PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR &&
-                         "Function <vkGetDisplayPlaneCapabilities2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" );
+                         "Function <vkGetDisplayPlaneCapabilities2KHR> requires <VK_KHR_get_display_properties2>" );
 
       VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
-      VkResult result = getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                            reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ),
-                                                                            reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
+      VULKAN_HPP_NAMESPACE::Result                       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                            reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ),
+                                                            reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
 
       return capabilities;
     }
@@ -16084,22 +17291,56 @@
 #  if defined( VK_USE_PLATFORM_IOS_MVK )
     //=== VK_MVK_ios_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createIOSSurfaceMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &                           createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createIOSSurfaceMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &                           createInfo,
                                      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIOSSurfaceMVK(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createIOSSurfaceMVK" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_IOS_MVK*/
 
 #  if defined( VK_USE_PLATFORM_MACOS_MVK )
     //=== VK_MVK_macos_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createMacOSSurfaceMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &                         createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createMacOSSurfaceMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &                         createInfo,
                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMacOSSurfaceMVK(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMacOSSurfaceMVK" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
 
@@ -16107,52 +17348,46 @@
 
     VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT &&
-                         "Function <vkSetDebugUtilsObjectNameEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && "Function <vkSetDebugUtilsObjectNameEXT> requires <VK_EXT_debug_utils>" );
 
-      VkResult result = getDispatcher()->vkSetDebugUtilsObjectNameEXT( static_cast<VkDevice>( m_device ),
-                                                                       reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetDebugUtilsObjectNameEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
     }
 
     VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT &&
-                         "Function <vkSetDebugUtilsObjectTagEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && "Function <vkSetDebugUtilsObjectTagEXT> requires <VK_EXT_debug_utils>" );
 
-      VkResult result =
-        getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
     }
 
     VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT &&
-                         "Function <vkQueueBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT && "Function <vkQueueBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkQueueBeginDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
     }
 
     VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT &&
-                         "Function <vkQueueEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT && "Function <vkQueueEndDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkQueueEndDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ) );
     }
 
     VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT &&
-                         "Function <vkQueueInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT && "Function <vkQueueInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkQueueInsertDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT &&
-                         "Function <vkCmdBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT && "Function <vkCmdBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkCmdBeginDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                      reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
@@ -16160,25 +17395,42 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && "Function <vkCmdEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && "Function <vkCmdEndDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkCmdEndDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT &&
-                         "Function <vkCmdInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT && "Function <vkCmdInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkCmdInsertDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT
-                                           Instance::createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &                  createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT>::Type
+      Instance::createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &                  createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugUtilsMessengerEXT(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugUtilsMessengerEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT(
+        *this, *reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ), allocator );
     }
 
     VULKAN_HPP_INLINE void
@@ -16186,8 +17438,7 @@
                                             VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT              messageTypes,
                                             const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT &&
-                         "Function <vkSubmitDebugUtilsMessageEXT> needs extension <VK_EXT_debug_utils> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT && "Function <vkSubmitDebugUtilsMessageEXT> requires <VK_EXT_debug_utils>" );
 
       getDispatcher()->vkSubmitDebugUtilsMessageEXT( static_cast<VkInstance>( m_instance ),
                                                      static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ),
@@ -16199,60 +17450,190 @@
     //=== VK_ANDROID_external_memory_android_hardware_buffer ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID
-      Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const
+                                           Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const
     {
-      VULKAN_HPP_ASSERT(
-        getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID &&
-        "Function <vkGetAndroidHardwareBufferPropertiesANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID &&
+                         "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
 
       VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
-      VkResult                                                     result = getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
-        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
+        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
 
       return properties;
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
                                            Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const
     {
-      VULKAN_HPP_ASSERT(
-        getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID &&
-        "Function <vkGetAndroidHardwareBufferPropertiesANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID &&
+                         "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
 
       StructureChain<X, Y, Z...>                                     structureChain;
       VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties =
         structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
-      VkResult result = getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
-        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
+        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
 
       return structureChain;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer *
-                         Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const
+      Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID &&
-                         "Function <vkGetMemoryAndroidHardwareBufferANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!" );
+                         "Function <vkGetMemoryAndroidHardwareBufferANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
 
-      struct AHardwareBuffer * buffer;
-      VkResult                 result = getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
+      struct AHardwareBuffer *     buffer;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
 
       return buffer;
     }
 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_AMDX_shader_enqueue ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+      Device::createExecutionGraphPipelinesAMDX(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const &         createInfos,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    {
+      std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateExecutionGraphPipelinesAMDX(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        createInfos.size(),
+        reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelinesAMDX" );
+#    endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII;
+      pipelinesRAII.reserve( pipelines.size() );
+      for ( auto & pipeline : pipelines )
+      {
+        pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
+      }
+      return pipelinesRAII;
+    }
+
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                        Device::createExecutionGraphPipelineAMDX(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const &                                           createInfo,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateExecutionGraphPipelinesAMDX(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        1,
+        reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelineAMDX" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX Pipeline::getExecutionGraphScratchSizeAMDX() const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX &&
+                         "Function <vkGetExecutionGraphPipelineScratchSizeAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX sizeInfo;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX(
+        static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( &sizeInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphScratchSizeAMDX" );
+
+      return sizeInfo;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t
+      Pipeline::getExecutionGraphNodeIndexAMDX( const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineNodeIndexAMDX &&
+                         "Function <vkGetExecutionGraphPipelineNodeIndexAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      uint32_t                     nodeIndex;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetExecutionGraphPipelineNodeIndexAMDX( static_cast<VkDevice>( m_device ),
+                                                                   static_cast<VkPipeline>( m_pipeline ),
+                                                                   reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( &nodeInfo ),
+                                                                   &nodeIndex ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphNodeIndexAMDX" );
+
+      return nodeIndex;
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInitializeGraphScratchMemoryAMDX &&
+                         "Function <vkCmdInitializeGraphScratchMemoryAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      getDispatcher()->vkCmdInitializeGraphScratchMemoryAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( scratch ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                             const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphAMDX && "Function <vkCmdDispatchGraphAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      getDispatcher()->vkCmdDispatchGraphAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                               static_cast<VkDeviceAddress>( scratch ),
+                                               reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void
+      CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
+                                                const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphIndirectAMDX && "Function <vkCmdDispatchGraphIndirectAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      getDispatcher()->vkCmdDispatchGraphIndirectAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                       static_cast<VkDeviceAddress>( scratch ),
+                                                       reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
+                                                                          VULKAN_HPP_NAMESPACE::DeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphIndirectCountAMDX &&
+                         "Function <vkCmdDispatchGraphIndirectCountAMDX> requires <VK_AMDX_shader_enqueue>" );
+
+      getDispatcher()->vkCmdDispatchGraphIndirectCountAMDX(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( scratch ), static_cast<VkDeviceAddress>( countInfo ) );
+    }
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
     //=== VK_EXT_sample_locations ===
 
     VULKAN_HPP_INLINE void
       CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT &&
-                         "Function <vkCmdSetSampleLocationsEXT> needs extension <VK_EXT_sample_locations> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT && "Function <vkCmdSetSampleLocationsEXT> requires <VK_EXT_sample_locations>" );
 
       getDispatcher()->vkCmdSetSampleLocationsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
@@ -16262,7 +17643,7 @@
       PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT &&
-                         "Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> needs extension <VK_EXT_sample_locations> enabled!" );
+                         "Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> requires <VK_EXT_sample_locations>" );
 
       VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
       getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
@@ -16278,7 +17659,7 @@
       Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2KHR &&
-                         "Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" );
+                         "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetImageMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
@@ -16289,14 +17670,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2KHR &&
-                         "Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" );
+                         "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetImageMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
                                                          reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ),
                                                          reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -16308,7 +17689,7 @@
       Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2KHR &&
-                         "Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" );
+                         "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetBufferMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
@@ -16319,14 +17700,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2KHR &&
-                         "Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" );
+                         "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetBufferMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
                                                           reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ),
                                                           reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -16338,7 +17719,7 @@
       Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements2KHR &&
-                         "Function <vkGetImageSparseMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" );
+                         "Function <vkGetImageSparseMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements;
       uint32_t                                                          sparseMemoryRequirementCount;
@@ -16360,11 +17741,29 @@
 
     //=== VK_KHR_acceleration_structure ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR
-                                           Device::createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &                createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR>::Type
+      Device::createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &                createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
+      VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR(
+        *this, *reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR(
@@ -16372,11 +17771,15 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresKHR &&
-                         "Function <vkCmdBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
+#  else
       if ( infos.size() != pBuildRangeInfos.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBuildAccelerationStructuresKHR(
         static_cast<VkCommandBuffer>( m_commandBuffer ),
@@ -16392,7 +17795,12 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const &                                                pMaxPrimitiveCounts ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR &&
-                         "Function <vkCmdBuildAccelerationStructuresIndirectKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdBuildAccelerationStructuresIndirectKHR> requires <VK_KHR_acceleration_structure>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() );
+      VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() );
+      VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() );
+#  else
       if ( infos.size() != indirectDeviceAddresses.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING
@@ -16406,6 +17814,7 @@
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                     infos.size(),
@@ -16421,19 +17830,23 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkBuildAccelerationStructuresKHR &&
-                         "Function <vkBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
+#  else
       if ( infos.size() != pBuildRangeInfos.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
-      VkResult result = getDispatcher()->vkBuildAccelerationStructuresKHR(
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBuildAccelerationStructuresKHR(
         static_cast<VkDevice>( m_device ),
         static_cast<VkDeferredOperationKHR>( deferredOperation ),
         infos.size(),
         reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ),
-        reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+        reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -16447,12 +17860,13 @@
                                             const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureKHR &&
-                         "Function <vkCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
 
-      VkResult result = getDispatcher()->vkCopyAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
-                                                                         static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                         reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkCopyAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
+                                                         static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                         reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -16466,13 +17880,13 @@
                                                     const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR &&
-                         "Function <vkCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" );
 
-      VkResult result =
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkCopyAccelerationStructureToMemoryKHR( static_cast<VkDevice>( m_device ),
                                                                  static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+                                                                 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -16486,13 +17900,13 @@
                                                     const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR &&
-                         "Function <vkCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
 
-      VkResult result =
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkCopyMemoryToAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
                                                                  static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+                                                                 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -16509,19 +17923,19 @@
       size_t                                                                                         stride ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR &&
-                         "Function <vkWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
 
       VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result =
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast<VkDevice>( m_device ),
                                                                      accelerationStructures.size(),
                                                                      reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
                                                                      static_cast<VkQueryType>( queryType ),
                                                                      data.size() * sizeof( DataType ),
                                                                      reinterpret_cast<void *>( data.data() ),
-                                                                     stride );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
+                                                                     stride ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
 
       return data;
     }
@@ -16533,18 +17947,18 @@
       size_t                                                                                         stride ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR &&
-                         "Function <vkWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
 
-      DataType data;
-      VkResult result =
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast<VkDevice>( m_device ),
                                                                      accelerationStructures.size(),
                                                                      reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
                                                                      static_cast<VkQueryType>( queryType ),
                                                                      sizeof( DataType ),
                                                                      reinterpret_cast<void *>( &data ),
-                                                                     stride );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
+                                                                     stride ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
 
       return data;
     }
@@ -16553,7 +17967,7 @@
       CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureKHR &&
-                         "Function <vkCmdCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
 
       getDispatcher()->vkCmdCopyAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                           reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
@@ -16563,7 +17977,7 @@
       const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR &&
-                         "Function <vkCmdCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" );
 
       getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                   reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
@@ -16573,7 +17987,7 @@
       const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR &&
-                         "Function <vkCmdCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
 
       getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                   reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
@@ -16583,7 +17997,7 @@
       Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR &&
-                         "Function <vkGetAccelerationStructureDeviceAddressKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkGetAccelerationStructureDeviceAddressKHR> requires <VK_KHR_acceleration_structure>" );
 
       VkDeviceAddress result = getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR(
         static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
@@ -16598,7 +18012,7 @@
       uint32_t                                                                                       firstQuery ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR &&
-                         "Function <vkCmdWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkCmdWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
 
       getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                       accelerationStructures.size(),
@@ -16612,7 +18026,7 @@
       const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR &&
-                         "Function <vkGetDeviceAccelerationStructureCompatibilityKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkGetDeviceAccelerationStructureCompatibilityKHR> requires <VK_KHR_acceleration_structure>" );
 
       VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
       getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR( static_cast<VkDevice>( m_device ),
@@ -16628,11 +18042,15 @@
                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const &                maxPrimitiveCounts ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureBuildSizesKHR &&
-                         "Function <vkGetAccelerationStructureBuildSizesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" );
+                         "Function <vkGetAccelerationStructureBuildSizesKHR> requires <VK_KHR_acceleration_structure>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount );
+#  else
       if ( maxPrimitiveCounts.size() != buildInfo.geometryCount )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
       getDispatcher()->vkGetAccelerationStructureBuildSizesKHR( static_cast<VkDevice>( m_device ),
@@ -16644,13 +18062,235 @@
       return sizeInfo;
     }
 
+    //=== VK_KHR_ray_tracing_pipeline ===
+
+    VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                                                        uint32_t                                                    width,
+                                                        uint32_t                                                    height,
+                                                        uint32_t                                                    depth ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && "Function <vkCmdTraceRaysKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      getDispatcher()->vkCmdTraceRaysKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
+                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
+                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
+                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
+                                          width,
+                                          height,
+                                          depth );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+      Device::createRayTracingPipelinesKHR(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
+        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &                     createInfos,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator ) const
+    {
+      std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesKHR(
+        static_cast<VkDevice>( m_device ),
+        deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0,
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        createInfos.size(),
+        reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) &&
+           ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesKHR" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII;
+      pipelinesRAII.reserve( pipelines.size() );
+      for ( auto & pipeline : pipelines )
+      {
+        pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
+      }
+      return pipelinesRAII;
+    }
+
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                        Device::createRayTracingPipelineKHR(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
+        VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const &                                                       createInfo,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesKHR(
+        static_cast<VkDevice>( m_device ),
+        deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0,
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        1,
+        reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) &&
+           ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+    }
+
+    template <typename DataType>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
+                                           Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR &&
+                         "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
+
+      VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
+                                                                                                          static_cast<VkPipeline>( m_pipeline ),
+                                                                                                          firstGroup,
+                                                                                                          groupCount,
+                                                                                                          data.size() * sizeof( DataType ),
+                                                                                                          reinterpret_cast<void *>( data.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" );
+
+      return data;
+    }
+
+    template <typename DataType>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR &&
+                         "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
+
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
+                                                                                                          static_cast<VkPipeline>( m_pipeline ),
+                                                                                                          firstGroup,
+                                                                                                          groupCount,
+                                                                                                          sizeof( DataType ),
+                                                                                                          reinterpret_cast<void *>( &data ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" );
+
+      return data;
+    }
+
+    template <typename DataType>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
+      Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
+                         "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
+                                                                            static_cast<VkPipeline>( m_pipeline ),
+                                                                            firstGroup,
+                                                                            groupCount,
+                                                                            data.size() * sizeof( DataType ),
+                                                                            reinterpret_cast<void *>( data.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
+
+      return data;
+    }
+
+    template <typename DataType>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
+                         "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
+                                                                                                                       static_cast<VkPipeline>( m_pipeline ),
+                                                                                                                       firstGroup,
+                                                                                                                       groupCount,
+                                                                                                                       sizeof( DataType ),
+                                                                                                                       reinterpret_cast<void *>( &data ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" );
+
+      return data;
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
+                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
+                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
+                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
+                                                                VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirectKHR && "Function <vkCmdTraceRaysIndirectKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      getDispatcher()->vkCmdTraceRaysIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
+                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
+                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
+                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
+                                                  static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize
+      Pipeline::getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR &&
+                         "Function <vkGetRayTracingShaderGroupStackSizeKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      VkDeviceSize result = getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR(
+        static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) );
+
+      return static_cast<VULKAN_HPP_NAMESPACE::DeviceSize>( result );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR &&
+                         "Function <vkCmdSetRayTracingPipelineStackSizeKHR> requires <VK_KHR_ray_tracing_pipeline>" );
+
+      getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), pipelineStackSize );
+    }
+
     //=== VK_KHR_sampler_ycbcr_conversion ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
-                                           Device::createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type
+      Device::createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &                  createInfo,
                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSamplerYcbcrConversionKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversionKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion(
+        *this, *reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ), allocator );
     }
 
     VULKAN_HPP_INLINE void
@@ -16658,7 +18298,7 @@
                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkDestroySamplerYcbcrConversionKHR &&
-                         "Function <vkDestroySamplerYcbcrConversionKHR> needs extension <VK_KHR_sampler_ycbcr_conversion> enabled!" );
+                         "Function <vkDestroySamplerYcbcrConversionKHR> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
 
       getDispatcher()->vkDestroySamplerYcbcrConversionKHR(
         static_cast<VkDevice>( m_device ),
@@ -16671,21 +18311,21 @@
     VULKAN_HPP_INLINE void
       Device::bindBufferMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2KHR && "Function <vkBindBufferMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2KHR && "Function <vkBindBufferMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
 
-      VkResult result = getDispatcher()->vkBindBufferMemory2KHR(
-        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory2KHR(
+        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
     }
 
     VULKAN_HPP_INLINE void
       Device::bindImageMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2KHR && "Function <vkBindImageMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2KHR && "Function <vkBindImageMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
 
-      VkResult result = getDispatcher()->vkBindImageMemory2KHR(
-        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory2KHR(
+        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
     }
 
     //=== VK_EXT_image_drm_format_modifier ===
@@ -16693,57 +18333,74 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT &&
-                         "Function <vkGetImageDrmFormatModifierPropertiesEXT> needs extension <VK_EXT_image_drm_format_modifier> enabled!" );
+                         "Function <vkGetImageDrmFormatModifierPropertiesEXT> requires <VK_EXT_image_drm_format_modifier>" );
 
       VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
-      VkResult                                                  result = getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT(
-        static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT(
+        static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" );
 
       return properties;
     }
 
     //=== VK_EXT_validation_cache ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT
-                                           Device::createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT>::Type
+      Device::createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &                      createInfo,
                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
+      VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateValidationCacheEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createValidationCacheEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT(
+        *this, *reinterpret_cast<VkValidationCacheEXT *>( &validationCache ), allocator );
     }
 
     VULKAN_HPP_INLINE void ValidationCacheEXT::merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT &&
-                         "Function <vkMergeValidationCachesEXT> needs extension <VK_EXT_validation_cache> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && "Function <vkMergeValidationCachesEXT> requires <VK_EXT_validation_cache>" );
 
-      VkResult result = getDispatcher()->vkMergeValidationCachesEXT( static_cast<VkDevice>( m_device ),
-                                                                     static_cast<VkValidationCacheEXT>( m_validationCache ),
-                                                                     srcCaches.size(),
-                                                                     reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkMergeValidationCachesEXT( static_cast<VkDevice>( m_device ),
+                                                     static_cast<VkValidationCacheEXT>( m_validationCache ),
+                                                     srcCaches.size(),
+                                                     reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ValidationCacheEXT::getData() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT &&
-                         "Function <vkGetValidationCacheDataEXT> needs extension <VK_EXT_validation_cache> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && "Function <vkGetValidationCacheDataEXT> requires <VK_EXT_validation_cache>" );
 
-      std::vector<uint8_t> data;
-      size_t               dataSize;
-      VkResult             result;
+      std::vector<uint8_t>         data;
+      size_t                       dataSize;
+      VULKAN_HPP_NAMESPACE::Result result;
       do
       {
-        result = getDispatcher()->vkGetValidationCacheDataEXT(
-          static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, nullptr );
-        if ( ( result == VK_SUCCESS ) && dataSize )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetValidationCacheDataEXT(
+          static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
         {
           data.resize( dataSize );
-          result = getDispatcher()->vkGetValidationCacheDataEXT(
-            static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetValidationCacheDataEXT(
+            static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" );
       VULKAN_HPP_ASSERT( dataSize <= data.size() );
       if ( dataSize < data.size() )
       {
@@ -16757,8 +18414,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView   imageView,
                                                                   VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV &&
-                         "Function <vkCmdBindShadingRateImageNV> needs extension <VK_NV_shading_rate_image> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV && "Function <vkCmdBindShadingRateImageNV> requires <VK_NV_shading_rate_image>" );
 
       getDispatcher()->vkCmdBindShadingRateImageNV(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
@@ -16769,7 +18425,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportShadingRatePaletteNV &&
-                         "Function <vkCmdSetViewportShadingRatePaletteNV> needs extension <VK_NV_shading_rate_image> enabled!" );
+                         "Function <vkCmdSetViewportShadingRatePaletteNV> requires <VK_NV_shading_rate_image>" );
 
       getDispatcher()->vkCmdSetViewportShadingRatePaletteNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                              firstViewport,
@@ -16781,8 +18437,7 @@
       VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV                                                   sampleOrderType,
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV &&
-                         "Function <vkCmdSetCoarseSampleOrderNV> needs extension <VK_NV_shading_rate_image> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV && "Function <vkCmdSetCoarseSampleOrderNV> requires <VK_NV_shading_rate_image>" );
 
       getDispatcher()->vkCmdSetCoarseSampleOrderNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                     static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ),
@@ -16792,18 +18447,36 @@
 
     //=== VK_NV_ray_tracing ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV
-                                           Device::createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &                 createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV>::Type
+      Device::createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &                 createInfo,
                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
+      VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureNV(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureNV" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV(
+        *this, *reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV(
       const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV &&
-                         "Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
       getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
@@ -16814,14 +18487,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV(
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV(
       const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV &&
-                         "Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" );
 
-      StructureChain<X, Y, Z...>                     structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR &   memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
       getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
                                                                        reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ),
                                                                        reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
@@ -16833,11 +18506,11 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkBindAccelerationStructureMemoryNV &&
-                         "Function <vkBindAccelerationStructureMemoryNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkBindAccelerationStructureMemoryNV> requires <VK_NV_ray_tracing>" );
 
-      VkResult result = getDispatcher()->vkBindAccelerationStructureMemoryNV(
-        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindAccelerationStructureMemoryNV(
+        static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info,
@@ -16849,8 +18522,7 @@
                                                                         VULKAN_HPP_NAMESPACE::Buffer                              scratch,
                                                                         VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV &&
-                         "Function <vkCmdBuildAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV && "Function <vkCmdBuildAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
 
       getDispatcher()->vkCmdBuildAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                           reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ),
@@ -16867,8 +18539,7 @@
                                                                        VULKAN_HPP_NAMESPACE::AccelerationStructureNV          src,
                                                                        VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV &&
-                         "Function <vkCmdCopyAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV && "Function <vkCmdCopyAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
 
       getDispatcher()->vkCmdCopyAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkAccelerationStructureNV>( dst ),
@@ -16891,7 +18562,7 @@
                                                        uint32_t                         height,
                                                        uint32_t                         depth ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && "Function <vkCmdTraceRaysNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && "Function <vkCmdTraceRaysNV> requires <VK_NV_ray_tracing>" );
 
       getDispatcher()->vkCmdTraceRaysNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                          static_cast<VkBuffer>( raygenShaderBindingTableBuffer ),
@@ -16910,20 +18581,64 @@
                                          depth );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::createRayTracingPipelinesNV(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &               createInfos,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type
+      Device::createRayTracingPipelinesNV(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &               createInfos,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipelines( *this, pipelineCache, createInfos, allocator );
+      std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesNV(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        createInfos.size(),
+        reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesNV" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII;
+      pipelinesRAII.reserve( pipelines.size() );
+      for ( auto & pipeline : pipelines )
+      {
+        pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
+      }
+      return pipelinesRAII;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::createRayTracingPipelineNV(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
-      VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const &                                                 createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                              allocator ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type
+                        Device::createRayTracingPipelineNV(
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,
+        VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const &                                                 createInfo,
+        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, pipelineCache, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::Pipeline pipeline;
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesNV(
+        static_cast<VkDevice>( m_device ),
+        pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0,
+        1,
+        reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPipeline *>( &pipeline ) ) );
+      if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineNV" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
     }
 
     template <typename DataType>
@@ -16931,17 +18646,18 @@
                                            Pipeline::getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV &&
-                         "Function <vkGetRayTracingShaderGroupHandlesNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
 
       VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ),
-                                                                              static_cast<VkPipeline>( m_pipeline ),
-                                                                              firstGroup,
-                                                                              groupCount,
-                                                                              data.size() * sizeof( DataType ),
-                                                                              reinterpret_cast<void *>( data.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ),
+                                                                                                         static_cast<VkPipeline>( m_pipeline ),
+                                                                                                         firstGroup,
+                                                                                                         groupCount,
+                                                                                                         data.size() * sizeof( DataType ),
+                                                                                                         reinterpret_cast<void *>( data.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" );
 
       return data;
     }
@@ -16950,16 +18666,17 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV &&
-                         "Function <vkGetRayTracingShaderGroupHandlesNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ),
-                                                                              static_cast<VkPipeline>( m_pipeline ),
-                                                                              firstGroup,
-                                                                              groupCount,
-                                                                              sizeof( DataType ),
-                                                                              reinterpret_cast<void *>( &data ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ),
+                                                                                                         static_cast<VkPipeline>( m_pipeline ),
+                                                                                                         firstGroup,
+                                                                                                         groupCount,
+                                                                                                         sizeof( DataType ),
+                                                                                                         reinterpret_cast<void *>( &data ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" );
 
       return data;
     }
@@ -16967,16 +18684,16 @@
     template <typename DataType>
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> AccelerationStructureNV::getHandle( size_t dataSize ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV &&
-                         "Function <vkGetAccelerationStructureHandleNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" );
 
       VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ),
-                                                                             static_cast<VkAccelerationStructureNV>( m_accelerationStructure ),
-                                                                             data.size() * sizeof( DataType ),
-                                                                             reinterpret_cast<void *>( data.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ),
+                                                             static_cast<VkAccelerationStructureNV>( m_accelerationStructure ),
+                                                             data.size() * sizeof( DataType ),
+                                                             reinterpret_cast<void *>( data.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" );
 
       return data;
     }
@@ -16984,15 +18701,15 @@
     template <typename DataType>
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType AccelerationStructureNV::getHandle() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV &&
-                         "Function <vkGetAccelerationStructureHandleNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ),
-                                                                             static_cast<VkAccelerationStructureNV>( m_accelerationStructure ),
-                                                                             sizeof( DataType ),
-                                                                             reinterpret_cast<void *>( &data ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ),
+                                                             static_cast<VkAccelerationStructureNV>( m_accelerationStructure ),
+                                                             sizeof( DataType ),
+                                                             reinterpret_cast<void *>( &data ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" );
 
       return data;
     }
@@ -17004,7 +18721,7 @@
       uint32_t                                                                                      firstQuery ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV &&
-                         "Function <vkCmdWriteAccelerationStructuresPropertiesNV> needs extension <VK_NV_ray_tracing> enabled!" );
+                         "Function <vkCmdWriteAccelerationStructuresPropertiesNV> requires <VK_NV_ray_tracing>" );
 
       getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                      accelerationStructures.size(),
@@ -17016,10 +18733,11 @@
 
     VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && "Function <vkCompileDeferredNV> needs extension <VK_NV_ray_tracing> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && "Function <vkCompileDeferredNV> requires <VK_NV_ray_tracing>" );
 
-      VkResult result = getDispatcher()->vkCompileDeferredNV( static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), shader );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkCompileDeferredNV( static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), shader ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" );
     }
 
     //=== VK_KHR_maintenance3 ===
@@ -17028,7 +18746,7 @@
       Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupportKHR &&
-                         "Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!" );
+                         "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
 
       VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
       getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( static_cast<VkDevice>( m_device ),
@@ -17039,13 +18757,13 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupportKHR &&
-                         "Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!" );
+                         "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
 
-      StructureChain<X, Y, Z...>                         structureChain;
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
       VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
       getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( static_cast<VkDevice>( m_device ),
                                                            reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
@@ -17064,7 +18782,7 @@
                                                                 uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountKHR &&
-                         "Function <vkCmdDrawIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!" );
+                         "Function <vkCmdDrawIndirectCountKHR> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdDrawIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkBuffer>( buffer ),
@@ -17082,8 +18800,9 @@
                                                                        uint32_t                         maxDrawCount,
                                                                        uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirectCountKHR &&
-                         "Function <vkCmdDrawIndexedIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkCmdDrawIndexedIndirectCountKHR &&
+        "Function <vkCmdDrawIndexedIndirectCountKHR> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkCmdDrawIndexedIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkBuffer>( buffer ),
@@ -17100,15 +18819,15 @@
       Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT &&
-                         "Function <vkGetMemoryHostPointerPropertiesEXT> needs extension <VK_EXT_external_memory_host> enabled!" );
+                         "Function <vkGetMemoryHostPointerPropertiesEXT> requires <VK_EXT_external_memory_host>" );
 
       VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
-      VkResult                                             result =
+      VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkGetMemoryHostPointerPropertiesEXT( static_cast<VkDevice>( m_device ),
                                                               static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
                                                               pHostPointer,
-                                                              reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
+                                                              reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
 
       return memoryHostPointerProperties;
     }
@@ -17120,7 +18839,7 @@
                                                                 VULKAN_HPP_NAMESPACE::DeviceSize            dstOffset,
                                                                 uint32_t                                    marker ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && "Function <vkCmdWriteBufferMarkerAMD> needs extension <VK_AMD_buffer_marker> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && "Function <vkCmdWriteBufferMarkerAMD> requires <VK_AMD_buffer_marker>" );
 
       getDispatcher()->vkCmdWriteBufferMarkerAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkPipelineStageFlagBits>( pipelineStage ),
@@ -17131,26 +18850,27 @@
 
     //=== VK_EXT_calibrated_timestamps ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> PhysicalDevice::getCalibrateableTimeDomainsEXT() const
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> PhysicalDevice::getCalibrateableTimeDomainsEXT() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT &&
-                         "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT &&
+        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
 
-      std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> timeDomains;
+      std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> timeDomains;
       uint32_t                                         timeDomainCount;
-      VkResult                                         result;
+      VULKAN_HPP_NAMESPACE::Result                     result;
       do
       {
-        result =
-          getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && timeDomainCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
         {
           timeDomains.resize( timeDomainCount );
-          result = getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
       if ( timeDomainCount < timeDomains.size() )
       {
@@ -17160,69 +18880,46 @@
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t> Device::getCalibratedTimestampsEXT(
-      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos ) const
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT &&
-                         "Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" );
+                         "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
 
-      std::pair<std::vector<uint64_t>, uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
-      std::vector<uint64_t> &                    timestamps   = data.first;
-      uint64_t &                                 maxDeviation = data.second;
-      VkResult                                   result       = getDispatcher()->vkGetCalibratedTimestampsEXT( static_cast<VkDevice>( m_device ),
-                                                                       timestampInfos.size(),
-                                                                       reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ),
-                                                                       timestamps.data(),
-                                                                       &maxDeviation );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
+      std::pair<std::vector<uint64_t>, uint64_t> data_( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
+      std::vector<uint64_t> &                    timestamps   = data_.first;
+      uint64_t &                                 maxDeviation = data_.second;
+      VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetCalibratedTimestampsEXT( static_cast<VkDevice>( m_device ),
+                                                       timestampInfos.size(),
+                                                       reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ),
+                                                       timestamps.data(),
+                                                       &maxDeviation ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
 
-      return data;
+      return data_;
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t>
-                                           Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const
+                                           Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT &&
-                         "Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" );
+                         "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
 
-      std::pair<uint64_t, uint64_t> data;
-      uint64_t &                    timestamp    = data.first;
-      uint64_t &                    maxDeviation = data.second;
-      VkResult                      result       = getDispatcher()->vkGetCalibratedTimestampsEXT(
-        static_cast<VkDevice>( m_device ), 1, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( &timestampInfo ), &timestamp, &maxDeviation );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
+      std::pair<uint64_t, uint64_t> data_;
+      uint64_t &                    timestamp    = data_.first;
+      uint64_t &                    maxDeviation = data_.second;
+      VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsEXT(
+        static_cast<VkDevice>( m_device ), 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
 
-      return data;
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t>
-      Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const
-    {
-      VULKAN_HPP_ASSERT(
-        getDispatcher()->vkGetCalibratedTimestampsEXT &&
-        "Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" );
-
-      std::pair<uint64_t, uint64_t> data;
-      uint64_t &                    timestamp    = data.first;
-      uint64_t &                    maxDeviation = data.second;
-      VULKAN_HPP_NAMESPACE::Result  result =
-        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsEXT(
-          static_cast<VkDevice>( m_device ),
-          1,
-          reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( &timestampInfo ),
-          &timestamp,
-          &maxDeviation ) );
-      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
-      {
-        throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
-      }
-      return data;
+      return data_;
     }
 
     //=== VK_NV_mesh_shader ===
 
     VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && "Function <vkCmdDrawMeshTasksNV> needs extension <VK_NV_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && "Function <vkCmdDrawMeshTasksNV> requires <VK_NV_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksNV( static_cast<VkCommandBuffer>( m_commandBuffer ), taskCount, firstTask );
     }
@@ -17232,8 +18929,7 @@
                                                                    uint32_t                         drawCount,
                                                                    uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV &&
-                         "Function <vkCmdDrawMeshTasksIndirectNV> needs extension <VK_NV_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV && "Function <vkCmdDrawMeshTasksIndirectNV> requires <VK_NV_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksIndirectNV(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
@@ -17246,8 +18942,7 @@
                                                                         uint32_t                         maxDrawCount,
                                                                         uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV &&
-                         "Function <vkCmdDrawMeshTasksIndirectCountNV> needs extension <VK_NV_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV && "Function <vkCmdDrawMeshTasksIndirectCountNV> requires <VK_NV_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                           static_cast<VkBuffer>( buffer ),
@@ -17260,11 +18955,23 @@
 
     //=== VK_NV_scissor_exclusive ===
 
+    VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorEnableNV(
+      uint32_t                                                                     firstExclusiveScissor,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorEnableNV &&
+                         "Function <vkCmdSetExclusiveScissorEnableNV> requires <VK_NV_scissor_exclusive>" );
+
+      getDispatcher()->vkCmdSetExclusiveScissorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                         firstExclusiveScissor,
+                                                         exclusiveScissorEnables.size(),
+                                                         reinterpret_cast<const VkBool32 *>( exclusiveScissorEnables.data() ) );
+    }
+
     VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV(
       uint32_t firstExclusiveScissor, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV &&
-                         "Function <vkCmdSetExclusiveScissorNV> needs extension <VK_NV_scissor_exclusive> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV && "Function <vkCmdSetExclusiveScissorNV> requires <VK_NV_scissor_exclusive>" );
 
       getDispatcher()->vkCmdSetExclusiveScissorNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    firstExclusiveScissor,
@@ -17277,8 +18984,7 @@
     template <typename CheckpointMarkerType>
     VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( CheckpointMarkerType const & checkpointMarker ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCheckpointNV &&
-                         "Function <vkCmdSetCheckpointNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCheckpointNV && "Function <vkCmdSetCheckpointNV> requires <VK_NV_device_diagnostic_checkpoints>" );
 
       getDispatcher()->vkCmdSetCheckpointNV( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const void *>( &checkpointMarker ) );
     }
@@ -17286,7 +18992,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> Queue::getCheckpointDataNV() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointDataNV &&
-                         "Function <vkGetQueueCheckpointDataNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!" );
+                         "Function <vkGetQueueCheckpointDataNV> requires <VK_NV_device_diagnostic_checkpoints>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> checkpointData;
       uint32_t                                            checkpointDataCount;
@@ -17308,11 +19014,12 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValueKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValueKHR &&
-                         "Function <vkGetSemaphoreCounterValueKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" );
+                         "Function <vkGetSemaphoreCounterValueKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
 
-      uint64_t value;
-      VkResult result = getDispatcher()->vkGetSemaphoreCounterValueKHR( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" );
+      uint64_t                     value;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetSemaphoreCounterValueKHR( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" );
 
       return value;
     }
@@ -17320,24 +19027,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,
                                                                                                    uint64_t timeout ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphoresKHR && "Function <vkWaitSemaphoresKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphoresKHR && "Function <vkWaitSemaphoresKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
 
-      VkResult result =
-        getDispatcher()->vkWaitSemaphoresKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR",
-                   { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkWaitSemaphoresKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
+      resultCheck(
+        result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
 
     VULKAN_HPP_INLINE void Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphoreKHR && "Function <vkSignalSemaphoreKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphoreKHR && "Function <vkSignalSemaphoreKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
 
-      VkResult result =
-        getDispatcher()->vkSignalSemaphoreKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkSignalSemaphoreKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
     }
 
     //=== VK_INTEL_performance_query ===
@@ -17345,77 +19051,92 @@
     VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkInitializePerformanceApiINTEL &&
-                         "Function <vkInitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+                         "Function <vkInitializePerformanceApiINTEL> requires <VK_INTEL_performance_query>" );
 
-      VkResult result = getDispatcher()->vkInitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ),
-                                                                          reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInitializePerformanceApiINTEL(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
     }
 
     VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkUninitializePerformanceApiINTEL &&
-                         "Function <vkUninitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+                         "Function <vkUninitializePerformanceApiINTEL> requires <VK_INTEL_performance_query>" );
 
       getDispatcher()->vkUninitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceMarkerINTEL &&
-                         "Function <vkCmdSetPerformanceMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceMarkerINTEL && "Function <vkCmdSetPerformanceMarkerINTEL> requires <VK_INTEL_performance_query>" );
 
-      VkResult result = getDispatcher()->vkCmdSetPerformanceMarkerINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                                         reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceMarkerINTEL(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL &&
-                         "Function <vkCmdSetPerformanceStreamMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+                         "Function <vkCmdSetPerformanceStreamMarkerINTEL> requires <VK_INTEL_performance_query>" );
 
-      VkResult result = getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                                               reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceOverrideINTEL &&
-                         "Function <vkCmdSetPerformanceOverrideINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+                         "Function <vkCmdSetPerformanceOverrideINTEL> requires <VK_INTEL_performance_query>" );
 
-      VkResult result = getDispatcher()->vkCmdSetPerformanceOverrideINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                                           reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceOverrideINTEL(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL>::Type
       Device::acquirePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL( *this, acquireInfo );
+      VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
+      VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquirePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ),
+                                                                 reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
+                                                                 reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::acquirePerformanceConfigurationINTEL" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL(
+        *this, *reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) );
     }
 
     VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL &&
-                         "Function <vkQueueSetPerformanceConfigurationINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+                         "Function <vkQueueSetPerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
 
-      VkResult result = getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( static_cast<VkQueue>( m_queue ),
-                                                                                  static_cast<VkPerformanceConfigurationINTEL>( configuration ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL(
+        static_cast<VkQueue>( m_queue ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL
-      Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const
+                                           Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPerformanceParameterINTEL &&
-                         "Function <vkGetPerformanceParameterINTEL> needs extension <VK_INTEL_performance_query> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPerformanceParameterINTEL && "Function <vkGetPerformanceParameterINTEL> requires <VK_INTEL_performance_query>" );
 
       VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
-      VkResult                                    result = getDispatcher()->vkGetPerformanceParameterINTEL(
-        static_cast<VkDevice>( m_device ), static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
+      VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPerformanceParameterINTEL(
+        static_cast<VkDevice>( m_device ), static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
 
       return value;
     }
@@ -17424,7 +19145,7 @@
 
     VULKAN_HPP_INLINE void SwapchainKHR::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && "Function <vkSetLocalDimmingAMD> needs extension <VK_AMD_display_native_hdr> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && "Function <vkSetLocalDimmingAMD> requires <VK_AMD_display_native_hdr>" );
 
       getDispatcher()->vkSetLocalDimmingAMD(
         static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), static_cast<VkBool32>( localDimmingEnable ) );
@@ -17433,22 +19154,56 @@
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
     //=== VK_FUCHSIA_imagepipe_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createImagePipeSurfaceFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &                 createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createImagePipeSurfaceFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &                 createInfo,
                                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createImagePipeSurfaceFUCHSIA" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
 
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
     //=== VK_EXT_metal_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createMetalSurfaceEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &                         createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createMetalSurfaceEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &                         createInfo,
                                        VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMetalSurfaceEXT(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMetalSurfaceEXT" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
 
@@ -17458,25 +19213,25 @@
                                            PhysicalDevice::getFragmentShadingRatesKHR() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR &&
-                         "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!" );
+                         "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> requires <VK_KHR_fragment_shading_rate>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> fragmentShadingRates;
       uint32_t                                                                fragmentShadingRateCount;
-      VkResult                                                                result;
+      VULKAN_HPP_NAMESPACE::Result                                            result;
       do
       {
-        result =
-          getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &fragmentShadingRateCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && fragmentShadingRateCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), &fragmentShadingRateCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount )
         {
           fragmentShadingRates.resize( fragmentShadingRateCount );
-          result = getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR(
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR(
             static_cast<VkPhysicalDevice>( m_physicalDevice ),
             &fragmentShadingRateCount,
-            reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) );
+            reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
       VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
       if ( fragmentShadingRateCount < fragmentShadingRates.size() )
       {
@@ -17490,7 +19245,7 @@
                                                 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateKHR &&
-                         "Function <vkCmdSetFragmentShadingRateKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!" );
+                         "Function <vkCmdSetFragmentShadingRateKHR> requires <VK_KHR_fragment_shading_rate>" );
 
       getDispatcher()->vkCmdSetFragmentShadingRateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                        reinterpret_cast<const VkExtent2D *>( &fragmentSize ),
@@ -17502,8 +19257,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
                                            Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferDeviceAddressEXT &&
-                         "Function <vkGetBufferDeviceAddressEXT> needs extension <VK_EXT_buffer_device_address> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetBufferDeviceAddressEXT &&
+        "Function <vkGetBufferDeviceAddressEXT> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
 
       VkDeviceAddress result =
         getDispatcher()->vkGetBufferDeviceAddressEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
@@ -17516,22 +19272,23 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolPropertiesEXT() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT &&
-                         "Function <vkGetPhysicalDeviceToolPropertiesEXT> needs extension <VK_EXT_tooling_info> enabled!" );
+                         "Function <vkGetPhysicalDeviceToolPropertiesEXT> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties;
       uint32_t                                                        toolCount;
-      VkResult                                                        result;
+      VULKAN_HPP_NAMESPACE::Result                                    result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && toolCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
         {
           toolProperties.resize( toolCount );
-          result = getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
       if ( toolCount < toolProperties.size() )
       {
@@ -17544,11 +19301,11 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::waitForPresent( uint64_t presentId, uint64_t timeout ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForPresentKHR && "Function <vkWaitForPresentKHR> needs extension <VK_KHR_present_wait> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForPresentKHR && "Function <vkWaitForPresentKHR> requires <VK_KHR_present_wait>" );
 
-      VkResult result =
-        getDispatcher()->vkWaitForPresentKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), presentId, timeout );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkWaitForPresentKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), presentId, timeout ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
 
@@ -17561,23 +19318,23 @@
                                            PhysicalDevice::getCooperativeMatrixPropertiesNV() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV &&
-                         "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> needs extension <VK_NV_cooperative_matrix> enabled!" );
+                         "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> requires <VK_NV_cooperative_matrix>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> properties;
       uint32_t                                                         propertyCount;
-      VkResult                                                         result;
+      VULKAN_HPP_NAMESPACE::Result                                     result;
       do
       {
-        result =
-          getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertyCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
         {
           properties.resize( propertyCount );
-          result = getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
-            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
       if ( propertyCount < properties.size() )
       {
@@ -17591,28 +19348,26 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>
                                            PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const
     {
-      VULKAN_HPP_ASSERT(
-        getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV &&
-        "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> needs extension <VK_NV_coverage_reduction_mode> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV &&
+                         "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> requires <VK_NV_coverage_reduction_mode>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> combinations;
       uint32_t                                                                combinationCount;
-      VkResult                                                                result;
+      VULKAN_HPP_NAMESPACE::Result                                            result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
-          static_cast<VkPhysicalDevice>( m_physicalDevice ), &combinationCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && combinationCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+          static_cast<VkPhysicalDevice>( m_physicalDevice ), &combinationCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount )
         {
           combinations.resize( combinationCount );
-          result = getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
             static_cast<VkPhysicalDevice>( m_physicalDevice ),
             &combinationCount,
-            reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) );
+            reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
       if ( combinationCount < combinations.size() )
       {
@@ -17628,27 +19383,29 @@
       PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT &&
-                         "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" );
+                         "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes;
       uint32_t                                          presentModeCount;
-      VkResult                                          result;
+      VULKAN_HPP_NAMESPACE::Result                      result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                              reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                              &presentModeCount,
-                                                                              nullptr );
-        if ( ( result == VK_SUCCESS ) && presentModeCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                       reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                       &presentModeCount,
+                                                                       nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
         {
           presentModes.resize( presentModeCount );
-          result = getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
-                                                                                reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                                &presentModeCount,
-                                                                                reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
+                                                                         reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                         &presentModeCount,
+                                                                         reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
       if ( presentModeCount < presentModes.size() )
       {
@@ -17660,32 +19417,35 @@
     VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT &&
-                         "Function <vkAcquireFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" );
+                         "Function <vkAcquireFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" );
 
-      VkResult result = getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" );
     }
 
     VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT &&
-                         "Function <vkReleaseFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" );
+                         "Function <vkReleaseFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" );
 
-      VkResult result = getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
       Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT &&
-                         "Function <vkGetDeviceGroupSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" );
+                         "Function <vkGetDeviceGroupSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" );
 
       VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
-      VkResult                                             result = getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( static_cast<VkDevice>( m_device ),
-                                                                                  reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
-                                                                                  reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
+      VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( static_cast<VkDevice>( m_device ),
+                                                                  reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
+                                                                  reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
 
       return modes;
     }
@@ -17693,11 +19453,28 @@
 
     //=== VK_EXT_headless_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createHeadlessSurfaceEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &                      createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createHeadlessSurfaceEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &                      createInfo,
                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateHeadlessSurfaceEXT(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createHeadlessSurfaceEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     //=== VK_KHR_buffer_device_address ===
@@ -17705,8 +19482,9 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
                                            Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferDeviceAddressKHR &&
-                         "Function <vkGetBufferDeviceAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetBufferDeviceAddressKHR &&
+        "Function <vkGetBufferDeviceAddressKHR> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
 
       VkDeviceAddress result =
         getDispatcher()->vkGetBufferDeviceAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
@@ -17718,7 +19496,7 @@
       Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR &&
-                         "Function <vkGetBufferOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" );
+                         "Function <vkGetBufferOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
 
       uint64_t result =
         getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
@@ -17730,7 +19508,7 @@
       Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR &&
-                         "Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" );
+                         "Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
 
       uint64_t result = getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ),
                                                                                    reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
@@ -17742,7 +19520,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && "Function <vkCmdSetLineStippleEXT> needs extension <VK_EXT_line_rasterization> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && "Function <vkCmdSetLineStippleEXT> requires <VK_EXT_line_rasterization>" );
 
       getDispatcher()->vkCmdSetLineStippleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern );
     }
@@ -17751,7 +19529,7 @@
 
     VULKAN_HPP_INLINE void QueryPool::resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPoolEXT && "Function <vkResetQueryPoolEXT> needs extension <VK_EXT_host_query_reset> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPoolEXT && "Function <vkResetQueryPoolEXT> requires <VK_EXT_host_query_reset> or <VK_VERSION_1_2>" );
 
       getDispatcher()->vkResetQueryPoolEXT( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount );
     }
@@ -17760,14 +19538,16 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT && "Function <vkCmdSetCullModeEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT &&
+                         "Function <vkCmdSetCullModeEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetCullModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT && "Function <vkCmdSetFrontFaceEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT &&
+                         "Function <vkCmdSetFrontFaceEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetFrontFaceEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) );
     }
@@ -17775,7 +19555,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveTopologyEXT &&
-                         "Function <vkCmdSetPrimitiveTopologyEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetPrimitiveTopologyEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetPrimitiveTopologyEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) );
     }
@@ -17784,7 +19564,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWithCountEXT &&
-                         "Function <vkCmdSetViewportWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetViewportWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetViewportWithCountEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
@@ -17794,7 +19574,7 @@
       CommandBuffer::setScissorWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissorWithCountEXT &&
-                         "Function <vkCmdSetScissorWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetScissorWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetScissorWithCountEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
@@ -17808,7 +19588,12 @@
                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers2EXT &&
-                         "Function <vkCmdBindVertexBuffers2EXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdBindVertexBuffers2EXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
+      VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
+      VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
+#  else
       if ( buffers.size() != offsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
@@ -17821,6 +19606,7 @@
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdBindVertexBuffers2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    firstBinding,
@@ -17834,7 +19620,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthTestEnableEXT &&
-                         "Function <vkCmdSetDepthTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetDepthTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetDepthTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) );
     }
@@ -17842,7 +19628,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthWriteEnableEXT &&
-                         "Function <vkCmdSetDepthWriteEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetDepthWriteEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetDepthWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) );
     }
@@ -17850,7 +19636,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthCompareOpEXT &&
-                         "Function <vkCmdSetDepthCompareOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetDepthCompareOpEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetDepthCompareOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) );
     }
@@ -17858,7 +19644,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT &&
-                         "Function <vkCmdSetDepthBoundsTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetDepthBoundsTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) );
     }
@@ -17866,7 +19652,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilTestEnableEXT &&
-                         "Function <vkCmdSetStencilTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+                         "Function <vkCmdSetStencilTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetStencilTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) );
     }
@@ -17877,7 +19663,8 @@
                                                            VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
                                                            VULKAN_HPP_NAMESPACE::CompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT && "Function <vkCmdSetStencilOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT &&
+                         "Function <vkCmdSetStencilOpEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetStencilOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                              static_cast<VkStencilFaceFlags>( faceMask ),
@@ -17889,16 +19676,33 @@
 
     //=== VK_KHR_deferred_host_operations ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR>::Type
       Device::createDeferredOperationKHR( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR( *this, allocator );
+      VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
+      VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDeferredOperationKHR(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDeferredOperationKHR" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR(
+        *this, *reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR &&
-                         "Function <vkGetDeferredOperationMaxConcurrencyKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" );
+                         "Function <vkGetDeferredOperationMaxConcurrencyKHR> requires <VK_KHR_deferred_host_operations>" );
 
       uint32_t result =
         getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) );
@@ -17909,21 +19713,21 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationResultKHR &&
-                         "Function <vkGetDeferredOperationResultKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" );
+                         "Function <vkGetDeferredOperationResultKHR> requires <VK_KHR_deferred_host_operations>" );
 
-      VkResult result =
-        getDispatcher()->vkGetDeferredOperationResultKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetDeferredOperationResultKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) ) );
 
       return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkDeferredOperationJoinKHR &&
-                         "Function <vkDeferredOperationJoinKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkDeferredOperationJoinKHR && "Function <vkDeferredOperationJoinKHR> requires <VK_KHR_deferred_host_operations>" );
 
-      VkResult result = getDispatcher()->vkDeferredOperationJoinKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkDeferredOperationJoinKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
 
@@ -17936,25 +19740,26 @@
                                            Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutablePropertiesKHR &&
-                         "Function <vkGetPipelineExecutablePropertiesKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" );
+                         "Function <vkGetPipelineExecutablePropertiesKHR> requires <VK_KHR_pipeline_executable_properties>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> properties;
       uint32_t                                                           executableCount;
-      VkResult                                                           result;
+      VULKAN_HPP_NAMESPACE::Result                                       result;
       do
       {
-        result = getDispatcher()->vkGetPipelineExecutablePropertiesKHR(
-          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && executableCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutablePropertiesKHR(
+          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount )
         {
           properties.resize( executableCount );
-          result = getDispatcher()->vkGetPipelineExecutablePropertiesKHR( static_cast<VkDevice>( m_device ),
-                                                                          reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
-                                                                          &executableCount,
-                                                                          reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPipelineExecutablePropertiesKHR( static_cast<VkDevice>( m_device ),
+                                                                   reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
+                                                                   &executableCount,
+                                                                   reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
       if ( executableCount < properties.size() )
       {
@@ -17967,25 +19772,26 @@
       Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableStatisticsKHR &&
-                         "Function <vkGetPipelineExecutableStatisticsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" );
+                         "Function <vkGetPipelineExecutableStatisticsKHR> requires <VK_KHR_pipeline_executable_properties>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> statistics;
       uint32_t                                                          statisticCount;
-      VkResult                                                          result;
+      VULKAN_HPP_NAMESPACE::Result                                      result;
       do
       {
-        result = getDispatcher()->vkGetPipelineExecutableStatisticsKHR(
-          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && statisticCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableStatisticsKHR(
+          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount )
         {
           statistics.resize( statisticCount );
-          result = getDispatcher()->vkGetPipelineExecutableStatisticsKHR( static_cast<VkDevice>( m_device ),
-                                                                          reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
-                                                                          &statisticCount,
-                                                                          reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetPipelineExecutableStatisticsKHR( static_cast<VkDevice>( m_device ),
+                                                                   reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
+                                                                   &statisticCount,
+                                                                   reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
       if ( statisticCount < statistics.size() )
       {
@@ -17998,27 +19804,29 @@
       Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR &&
-                         "Function <vkGetPipelineExecutableInternalRepresentationsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" );
+                         "Function <vkGetPipelineExecutableInternalRepresentationsKHR> requires <VK_KHR_pipeline_executable_properties>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> internalRepresentations;
       uint32_t                                                                       internalRepresentationCount;
-      VkResult                                                                       result;
+      VULKAN_HPP_NAMESPACE::Result                                                   result;
       do
       {
-        result = getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR(
-          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && internalRepresentationCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( static_cast<VkDevice>( m_device ),
+                                                                              reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
+                                                                              &internalRepresentationCount,
+                                                                              nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount )
         {
           internalRepresentations.resize( internalRepresentationCount );
-          result = getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR(
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR(
             static_cast<VkDevice>( m_device ),
             reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
             &internalRepresentationCount,
-            reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) );
+            reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
       if ( internalRepresentationCount < internalRepresentations.size() )
       {
@@ -18027,16 +19835,109 @@
       return internalRepresentations;
     }
 
+    //=== VK_EXT_host_image_copy ===
+
+    VULKAN_HPP_INLINE void Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToImageEXT && "Function <vkCopyMemoryToImageEXT> requires <VK_EXT_host_image_copy>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyMemoryToImageEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( &copyMemoryToImageInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" );
+    }
+
+    VULKAN_HPP_INLINE void Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToMemoryEXT && "Function <vkCopyImageToMemoryEXT> requires <VK_EXT_host_image_copy>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyImageToMemoryEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( &copyImageToMemoryInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" );
+    }
+
+    VULKAN_HPP_INLINE void Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToImageEXT && "Function <vkCopyImageToImageEXT> requires <VK_EXT_host_image_copy>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyImageToImageEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToImageInfoEXT *>( &copyImageToImageInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImageEXT" );
+    }
+
+    VULKAN_HPP_INLINE void Device::transitionImageLayoutEXT(
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkTransitionImageLayoutEXT && "Function <vkTransitionImageLayoutEXT> requires <VK_EXT_host_image_copy>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkTransitionImageLayoutEXT(
+        static_cast<VkDevice>( m_device ), transitions.size(), reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( transitions.data() ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+      Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetImageSubresourceLayout2EXT &&
+        "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+      getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ),
+                                                        static_cast<VkImage>( m_image ),
+                                                        reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                                        reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return layout;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+      Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetImageSubresourceLayout2EXT &&
+        "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+      getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ),
+                                                        static_cast<VkImage>( m_image ),
+                                                        reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                                        reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return structureChain;
+    }
+
+    //=== VK_KHR_map_memory2 ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory2KHR && "Function <vkMapMemory2KHR> requires <VK_KHR_map_memory2>" );
+
+      void *                       pData;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkMapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryMapInfoKHR *>( &memoryMapInfo ), &pData ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2KHR" );
+
+      return pData;
+    }
+
+    VULKAN_HPP_INLINE void Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory2KHR && "Function <vkUnmapMemory2KHR> requires <VK_KHR_map_memory2>" );
+
+      getDispatcher()->vkUnmapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryUnmapInfoKHR *>( &memoryUnmapInfo ) );
+    }
+
     //=== VK_EXT_swapchain_maintenance1 ===
 
     VULKAN_HPP_INLINE void Device::releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseSwapchainImagesEXT &&
-                         "Function <vkReleaseSwapchainImagesEXT> needs extension <VK_EXT_swapchain_maintenance1> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseSwapchainImagesEXT && "Function <vkReleaseSwapchainImagesEXT> requires <VK_EXT_swapchain_maintenance1>" );
 
-      VkResult result = getDispatcher()->vkReleaseSwapchainImagesEXT( static_cast<VkDevice>( m_device ),
-                                                                      reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkReleaseSwapchainImagesEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" );
     }
 
     //=== VK_NV_device_generated_commands ===
@@ -18045,7 +19946,7 @@
       Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV &&
-                         "Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!" );
+                         "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
@@ -18056,14 +19957,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV &&
-                         "Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!" );
+                         "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" );
 
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
                                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ),
                                                                    reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -18075,7 +19976,7 @@
       CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPreprocessGeneratedCommandsNV &&
-                         "Function <vkCmdPreprocessGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!" );
+                         "Function <vkCmdPreprocessGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" );
 
       getDispatcher()->vkCmdPreprocessGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                            reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
@@ -18086,7 +19987,7 @@
                                                  const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteGeneratedCommandsNV &&
-                         "Function <vkCmdExecuteGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!" );
+                         "Function <vkCmdExecuteGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" );
 
       getDispatcher()->vkCmdExecuteGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                         static_cast<VkBool32>( isPreprocessed ),
@@ -18098,7 +19999,7 @@
                                                                      uint32_t                                groupIndex ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindPipelineShaderGroupNV &&
-                         "Function <vkCmdBindPipelineShaderGroupNV> needs extension <VK_NV_device_generated_commands> enabled!" );
+                         "Function <vkCmdBindPipelineShaderGroupNV> requires <VK_NV_device_generated_commands>" );
 
       getDispatcher()->vkCmdBindPipelineShaderGroupNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                        static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
@@ -18106,49 +20007,101 @@
                                                        groupIndex );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV
-                                           Device::createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &                createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV>::Type
+      Device::createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &                createInfo,
                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
+      VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIndirectCommandsLayoutNV(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectCommandsLayoutNV" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV(
+        *this, *reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ), allocator );
+    }
+
+    //=== VK_EXT_depth_bias_control ===
+
+    VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBias2EXT && "Function <vkCmdSetDepthBias2EXT> requires <VK_EXT_depth_bias_control>" );
+
+      getDispatcher()->vkCmdSetDepthBias2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDepthBiasInfoEXT *>( &depthBiasInfo ) );
     }
 
     //=== VK_EXT_acquire_drm_display ===
 
     VULKAN_HPP_INLINE void PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireDrmDisplayEXT && "Function <vkAcquireDrmDisplayEXT> needs extension <VK_EXT_acquire_drm_display> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireDrmDisplayEXT && "Function <vkAcquireDrmDisplayEXT> requires <VK_EXT_acquire_drm_display>" );
 
-      VkResult result =
-        getDispatcher()->vkAcquireDrmDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, static_cast<VkDisplayKHR>( display ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquireDrmDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, static_cast<VkDisplayKHR>( display ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                        PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, drmFd, connectorId );
-    }
+      VULKAN_HPP_NAMESPACE::DisplayKHR display;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDrmDisplayEXT(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDrmDisplayEXT" );
+#  endif
+      }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR
-                                           PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, drmFd, connectorId );
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) );
     }
 
     //=== VK_EXT_private_data ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
-                                           Device::createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type
+      Device::createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &                         createInfo,
                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
+      VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePrivateDataSlotEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlotEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, *reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ), allocator );
     }
 
     VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
                                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkDestroyPrivateDataSlotEXT &&
-                         "Function <vkDestroyPrivateDataSlotEXT> needs extension <VK_EXT_private_data> enabled!" );
+                         "Function <vkDestroyPrivateDataSlotEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkDestroyPrivateDataSlotEXT(
         static_cast<VkDevice>( m_device ),
@@ -18161,18 +20114,18 @@
                                                       VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
                                                       uint64_t                              data ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && "Function <vkSetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && "Function <vkSetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
 
-      VkResult result = getDispatcher()->vkSetPrivateDataEXT(
-        static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetPrivateDataEXT(
+        static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
                                                                                uint64_t                              objectHandle,
                                                                                VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && "Function <vkGetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && "Function <vkGetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
 
       uint64_t data;
       getDispatcher()->vkGetPrivateDataEXT(
@@ -18181,15 +20134,206 @@
       return data;
     }
 
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     //=== VK_KHR_video_encode_queue ===
 
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR(
+      const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR &&
+                         "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" );
+
+      VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR qualityLevelProperties;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ),
+        reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
+        reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
+
+      return qualityLevelProperties;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR(
+      const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR &&
+                         "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" );
+
+      StructureChain<X, Y, Z...>                                   structureChain;
+      VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR & qualityLevelProperties =
+        structureChain.template get<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>();
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ),
+        reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
+        reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
+
+      return structureChain;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>>
+      Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR &&
+                         "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
+
+      std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>> data_;
+      VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &                                feedbackInfo = data_.first;
+      std::vector<uint8_t> &                                                                             data         = data_.second;
+      size_t                                                                                             dataSize;
+      VULKAN_HPP_NAMESPACE::Result                                                                       result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR(
+          static_cast<VkDevice>( m_device ),
+          reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+          reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+          &dataSize,
+          nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+        {
+          data.resize( dataSize );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR(
+            static_cast<VkDevice>( m_device ),
+            reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+            reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+            &dataSize,
+            reinterpret_cast<void *>( data.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+      return data_;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>>
+      Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR &&
+                         "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
+
+      std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>> data_;
+      VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &               feedbackInfo =
+        data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>();
+      std::vector<uint8_t> &       data = data_.second;
+      size_t                       dataSize;
+      VULKAN_HPP_NAMESPACE::Result result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR(
+          static_cast<VkDevice>( m_device ),
+          reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+          reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+          &dataSize,
+          nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+        {
+          data.resize( dataSize );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR(
+            static_cast<VkDevice>( m_device ),
+            reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
+            reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
+            &dataSize,
+            reinterpret_cast<void *>( data.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
+
+      return data_;
+    }
+
     VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEncodeVideoKHR && "Function <vkCmdEncodeVideoKHR> needs extension <VK_KHR_video_encode_queue> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEncodeVideoKHR && "Function <vkCmdEncodeVideoKHR> requires <VK_KHR_video_encode_queue>" );
 
       getDispatcher()->vkCmdEncodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) );
     }
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+    //=== VK_NV_cuda_kernel_launch ===
+
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV>::Type
+                        Device::createCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const &                            createInfo,
+                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::CudaModuleNV module;
+      VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCudaModuleNV(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkCudaModuleNV *>( &module ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaModuleNV" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV( *this, *reinterpret_cast<VkCudaModuleNV *>( &module ), allocator );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> CudaModuleNV::getCache() const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetCudaModuleCacheNV && "Function <vkGetCudaModuleCacheNV> requires <VK_NV_cuda_kernel_launch>" );
+
+      std::vector<uint8_t>         cacheData;
+      size_t                       cacheSize;
+      VULKAN_HPP_NAMESPACE::Result result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetCudaModuleCacheNV( static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), &cacheSize, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize )
+        {
+          cacheData.resize( cacheSize );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCudaModuleCacheNV(
+            static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CudaModuleNV::getCache" );
+      VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() );
+      if ( cacheSize < cacheData.size() )
+      {
+        cacheData.resize( cacheSize );
+      }
+      return cacheData;
+    }
+
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV>::Type
+                        Device::createCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const &                          createInfo,
+                                    VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::CudaFunctionNV function;
+      VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCudaFunctionNV(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkCudaFunctionNV *>( &function ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaFunctionNV" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV( *this, *reinterpret_cast<VkCudaFunctionNV *>( &function ), allocator );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCudaLaunchKernelNV && "Function <vkCmdCudaLaunchKernelNV> requires <VK_NV_cuda_kernel_launch>" );
+
+      getDispatcher()->vkCmdCudaLaunchKernelNV( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCudaLaunchInfoNV *>( &launchInfo ) );
+    }
 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #  if defined( VK_USE_PLATFORM_METAL_EXT )
@@ -18197,7 +20341,7 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT Device::exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> needs extension <VK_EXT_metal_objects> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" );
 
       VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT metalObjectsInfo;
       getDispatcher()->vkExportMetalObjectsEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) );
@@ -18206,11 +20350,11 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> needs extension <VK_EXT_metal_objects> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" );
 
-      StructureChain<X, Y, Z...>                        structureChain;
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
       VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT & metalObjectsInfo = structureChain.template get<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>();
       getDispatcher()->vkExportMetalObjectsEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) );
 
@@ -18223,7 +20367,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event                  event,
                                                         const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && "Function <vkCmdSetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && "Function <vkCmdSetEvent2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetEvent2KHR(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
@@ -18232,7 +20376,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event               event,
                                                           VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && "Function <vkCmdResetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && "Function <vkCmdResetEvent2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdResetEvent2KHR(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) );
@@ -18242,11 +20386,15 @@
       CommandBuffer::waitEvents2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && "Function <vkCmdWaitEvents2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && "Function <vkCmdWaitEvents2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
+#  else
       if ( events.size() != dependencyInfos.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdWaitEvents2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                             events.size(),
@@ -18257,7 +20405,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2KHR &&
-                         "Function <vkCmdPipelineBarrier2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+                         "Function <vkCmdPipelineBarrier2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdPipelineBarrier2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                  reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
@@ -18267,7 +20415,8 @@
                                                               VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
                                                               uint32_t                                  query ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR && "Function <vkCmdWriteTimestamp2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR &&
+                         "Function <vkCmdWriteTimestamp2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdWriteTimestamp2KHR(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query );
@@ -18276,11 +20425,11 @@
     VULKAN_HPP_INLINE void Queue::submit2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,
                                               VULKAN_HPP_NAMESPACE::Fence                                                       fence ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && "Function <vkQueueSubmit2KHR> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && "Function <vkQueueSubmit2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
 
-      VkResult result = getDispatcher()->vkQueueSubmit2KHR(
-        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit2KHR(
+        static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
@@ -18288,8 +20437,7 @@
                                                                  VULKAN_HPP_NAMESPACE::DeviceSize          dstOffset,
                                                                  uint32_t                                  marker ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD &&
-                         "Function <vkCmdWriteBufferMarker2AMD> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD && "Function <vkCmdWriteBufferMarker2AMD> requires <VK_KHR_synchronization2>" );
 
       getDispatcher()->vkCmdWriteBufferMarker2AMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    static_cast<VkPipelineStageFlags2>( stage ),
@@ -18300,8 +20448,7 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> Queue::getCheckpointData2NV() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV &&
-                         "Function <vkGetQueueCheckpointData2NV> needs extension <VK_KHR_synchronization2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV && "Function <vkGetQueueCheckpointData2NV> requires <VK_KHR_synchronization2>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> checkpointData;
       uint32_t                                             checkpointDataCount;
@@ -18322,8 +20469,7 @@
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DescriptorSetLayout::getSizeEXT() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSizeEXT &&
-                         "Function <vkGetDescriptorSetLayoutSizeEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSizeEXT && "Function <vkGetDescriptorSetLayoutSizeEXT> requires <VK_EXT_descriptor_buffer>" );
 
       VULKAN_HPP_NAMESPACE::DeviceSize layoutSizeInBytes;
       getDispatcher()->vkGetDescriptorSetLayoutSizeEXT( static_cast<VkDevice>( m_device ),
@@ -18337,7 +20483,7 @@
                                            DescriptorSetLayout::getBindingOffsetEXT( uint32_t binding ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutBindingOffsetEXT &&
-                         "Function <vkGetDescriptorSetLayoutBindingOffsetEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetDescriptorSetLayoutBindingOffsetEXT> requires <VK_EXT_descriptor_buffer>" );
 
       VULKAN_HPP_NAMESPACE::DeviceSize offset;
       getDispatcher()->vkGetDescriptorSetLayoutBindingOffsetEXT(
@@ -18346,11 +20492,21 @@
       return offset;
     }
 
+    VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
+                                                     size_t                                             dataSize,
+                                                     void *                                             pDescriptor ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" );
+
+      getDispatcher()->vkGetDescriptorEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), dataSize, pDescriptor );
+    }
+
     template <typename DescriptorType>
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType
       Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" );
 
       DescriptorType descriptor;
       getDispatcher()->vkGetDescriptorEXT( static_cast<VkDevice>( m_device ),
@@ -18364,8 +20520,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBuffersEXT(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBuffersEXT &&
-                         "Function <vkCmdBindDescriptorBuffersEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBuffersEXT && "Function <vkCmdBindDescriptorBuffersEXT> requires <VK_EXT_descriptor_buffer>" );
 
       getDispatcher()->vkCmdBindDescriptorBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       bindingInfos.size(),
@@ -18380,11 +20535,15 @@
                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDescriptorBufferOffsetsEXT &&
-                         "Function <vkCmdSetDescriptorBufferOffsetsEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkCmdSetDescriptorBufferOffsetsEXT> requires <VK_EXT_descriptor_buffer>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( bufferIndices.size() == offsets.size() );
+#  else
       if ( bufferIndices.size() != offsets.size() )
       {
         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setDescriptorBufferOffsetsEXT: bufferIndices.size() != offsets.size()" );
       }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdSetDescriptorBufferOffsetsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                            static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
@@ -18400,7 +20559,7 @@
                                                                                    uint32_t                                set ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplersEXT &&
-                         "Function <vkCmdBindDescriptorBufferEmbeddedSamplersEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkCmdBindDescriptorBufferEmbeddedSamplersEXT> requires <VK_EXT_descriptor_buffer>" );
 
       getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set );
@@ -18411,12 +20570,12 @@
       Device::getBufferOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT &&
-                         "Function <vkGetBufferOpaqueCaptureDescriptorDataEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetBufferOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" );
 
       return data;
     }
@@ -18426,12 +20585,12 @@
       Device::getImageOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT &&
-                         "Function <vkGetImageOpaqueCaptureDescriptorDataEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetImageOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" );
 
       return data;
     }
@@ -18441,12 +20600,12 @@
       Device::getImageViewOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT &&
-                         "Function <vkGetImageViewOpaqueCaptureDescriptorDataEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetImageViewOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" );
 
       return data;
     }
@@ -18456,12 +20615,12 @@
       Device::getSamplerOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT &&
-                         "Function <vkGetSamplerOpaqueCaptureDescriptorDataEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetSamplerOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" );
 
       return data;
     }
@@ -18471,13 +20630,13 @@
       const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT &&
-                         "Function <vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT> needs extension <VK_EXT_descriptor_buffer> enabled!" );
+                         "Function <vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
+          static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
 
       return data;
     }
@@ -18489,7 +20648,7 @@
                                                    const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateEnumNV &&
-                         "Function <vkCmdSetFragmentShadingRateEnumNV> needs extension <VK_NV_fragment_shading_rate_enums> enabled!" );
+                         "Function <vkCmdSetFragmentShadingRateEnumNV> requires <VK_NV_fragment_shading_rate_enums>" );
 
       getDispatcher()->vkCmdSetFragmentShadingRateEnumNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                           static_cast<VkFragmentShadingRateNV>( shadingRate ),
@@ -18500,7 +20659,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksEXT( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksEXT && "Function <vkCmdDrawMeshTasksEXT> needs extension <VK_EXT_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksEXT && "Function <vkCmdDrawMeshTasksEXT> requires <VK_EXT_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
     }
@@ -18510,8 +20669,7 @@
                                                                     uint32_t                         drawCount,
                                                                     uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectEXT &&
-                         "Function <vkCmdDrawMeshTasksIndirectEXT> needs extension <VK_EXT_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectEXT && "Function <vkCmdDrawMeshTasksIndirectEXT> requires <VK_EXT_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksIndirectEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
@@ -18524,8 +20682,7 @@
                                                                          uint32_t                         maxDrawCount,
                                                                          uint32_t                         stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountEXT &&
-                         "Function <vkCmdDrawMeshTasksIndirectCountEXT> needs extension <VK_EXT_mesh_shader> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountEXT && "Function <vkCmdDrawMeshTasksIndirectCountEXT> requires <VK_EXT_mesh_shader>" );
 
       getDispatcher()->vkCmdDrawMeshTasksIndirectCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                            static_cast<VkBuffer>( buffer ),
@@ -18540,14 +20697,14 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && "Function <vkCmdCopyBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && "Function <vkCmdCopyBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdCopyBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && "Function <vkCmdCopyImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && "Function <vkCmdCopyImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdCopyImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
     }
@@ -18556,7 +20713,7 @@
       CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2KHR &&
-                         "Function <vkCmdCopyBufferToImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+                         "Function <vkCmdCopyBufferToImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdCopyBufferToImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
@@ -18566,7 +20723,7 @@
       CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2KHR &&
-                         "Function <vkCmdCopyImageToBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+                         "Function <vkCmdCopyImageToBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdCopyImageToBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                    reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
@@ -18574,71 +20731,39 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && "Function <vkCmdBlitImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && "Function <vkCmdBlitImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdBlitImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && "Function <vkCmdResolveImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && "Function <vkCmdResolveImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdResolveImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                               reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
     }
 
-    //=== VK_EXT_image_compression_control ===
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT
-      Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSubresourceLayout2EXT &&
-                         "Function <vkGetImageSubresourceLayout2EXT> needs extension <VK_EXT_image_compression_control> enabled!" );
-
-      VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT layout;
-      getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ),
-                                                        static_cast<VkImage>( m_image ),
-                                                        reinterpret_cast<const VkImageSubresource2EXT *>( &subresource ),
-                                                        reinterpret_cast<VkSubresourceLayout2EXT *>( &layout ) );
-
-      return layout;
-    }
-
-    template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
-      Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2EXT & subresource ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSubresourceLayout2EXT &&
-                         "Function <vkGetImageSubresourceLayout2EXT> needs extension <VK_EXT_image_compression_control> enabled!" );
-
-      StructureChain<X, Y, Z...>                    structureChain;
-      VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT & layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>();
-      getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ),
-                                                        static_cast<VkImage>( m_image ),
-                                                        reinterpret_cast<const VkImageSubresource2EXT *>( &subresource ),
-                                                        reinterpret_cast<VkSubresourceLayout2EXT *>( &layout ) );
-
-      return structureChain;
-    }
-
     //=== VK_EXT_device_fault ===
 
     VULKAN_HPP_NODISCARD
       VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT>>
                         Device::getFaultInfoEXT() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceFaultInfoEXT && "Function <vkGetDeviceFaultInfoEXT> needs extension <VK_EXT_device_fault> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceFaultInfoEXT && "Function <vkGetDeviceFaultInfoEXT> requires <VK_EXT_device_fault>" );
 
-      std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> data;
-      VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT &                                                    faultCounts = data.first;
-      VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT &                                                      faultInfo   = data.second;
-      VkResult                                                                                        result      = getDispatcher()->vkGetDeviceFaultInfoEXT(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ), reinterpret_cast<VkDeviceFaultInfoEXT *>( &faultInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> data_;
+      VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT &                                                    faultCounts = data_.first;
+      VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT &                                                      faultInfo   = data_.second;
+      VULKAN_HPP_NAMESPACE::Result                                                                    result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceFaultInfoEXT( static_cast<VkDevice>( m_device ),
+                                                                                             reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ),
+                                                                                             reinterpret_cast<VkDeviceFaultInfoEXT *>( &faultInfo ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::getFaultInfoEXT",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
 
-      return std::make_pair( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data );
+      return std::make_pair( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), data_ );
     }
 
 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -18646,40 +20771,65 @@
 
     VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV &&
-                         "Function <vkAcquireWinrtDisplayNV> needs extension <VK_NV_acquire_winrt_display> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && "Function <vkAcquireWinrtDisplayNV> requires <VK_NV_acquire_winrt_display>" );
 
-      VkResult result = getDispatcher()->vkAcquireWinrtDisplayNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkAcquireWinrtDisplayNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" );
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type
+                        PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, deviceRelativeId );
-    }
+      VULKAN_HPP_NAMESPACE::DisplayKHR display;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetWinrtDisplayNV(
+        static_cast<VkPhysicalDevice>( m_physicalDevice ), deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getWinrtDisplayNV" );
+#    endif
+      }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR
-                                           PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, deviceRelativeId );
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) );
     }
 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
 #  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
     //=== VK_EXT_directfb_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createDirectFBSurfaceEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &                      createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createDirectFBSurfaceEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &                      createInfo,
                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDirectFBSurfaceEXT(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDirectFBSurfaceEXT" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
       PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT &&
-                         "Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> needs extension <VK_EXT_directfb_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> requires <VK_EXT_directfb_surface>" );
 
       VkBool32 result =
         getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dfb );
@@ -18688,161 +20838,6 @@
     }
 #  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-    //=== VK_KHR_ray_tracing_pipeline ===
-
-    VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                                                        const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                                                        uint32_t                                                    width,
-                                                        uint32_t                                                    height,
-                                                        uint32_t                                                    depth ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && "Function <vkCmdTraceRaysKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      getDispatcher()->vkCmdTraceRaysKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
-                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
-                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
-                                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
-                                          width,
-                                          height,
-                                          depth );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::createRayTracingPipelinesKHR(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
-      VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &                     createInfos,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipelines( *this, deferredOperation, pipelineCache, createInfos, allocator );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::createRayTracingPipelineKHR(
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &        pipelineCache,
-      VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const &                                                       createInfo,
-      VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                     allocator ) const
-    {
-      return VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, deferredOperation, pipelineCache, createInfo, allocator );
-    }
-
-    template <typename DataType>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
-                                           Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR &&
-                         "Function <vkGetRayTracingShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
-                                                                               static_cast<VkPipeline>( m_pipeline ),
-                                                                               firstGroup,
-                                                                               groupCount,
-                                                                               data.size() * sizeof( DataType ),
-                                                                               reinterpret_cast<void *>( data.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" );
-
-      return data;
-    }
-
-    template <typename DataType>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR &&
-                         "Function <vkGetRayTracingShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      DataType data;
-      VkResult result = getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
-                                                                               static_cast<VkPipeline>( m_pipeline ),
-                                                                               firstGroup,
-                                                                               groupCount,
-                                                                               sizeof( DataType ),
-                                                                               reinterpret_cast<void *>( &data ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" );
-
-      return data;
-    }
-
-    template <typename DataType>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
-      Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
-                         "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
-                                                                                            static_cast<VkPipeline>( m_pipeline ),
-                                                                                            firstGroup,
-                                                                                            groupCount,
-                                                                                            data.size() * sizeof( DataType ),
-                                                                                            reinterpret_cast<void *>( data.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
-
-      return data;
-    }
-
-    template <typename DataType>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
-                         "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      DataType data;
-      VkResult result = getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ),
-                                                                                            static_cast<VkPipeline>( m_pipeline ),
-                                                                                            firstGroup,
-                                                                                            groupCount,
-                                                                                            sizeof( DataType ),
-                                                                                            reinterpret_cast<void *>( &data ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
-                   VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" );
-
-      return data;
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
-                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
-                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
-                                                                const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
-                                                                VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirectKHR &&
-                         "Function <vkCmdTraceRaysIndirectKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      getDispatcher()->vkCmdTraceRaysIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
-                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
-                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
-                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
-                                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
-                                                  static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
-    }
-
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize
-      Pipeline::getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR &&
-                         "Function <vkGetRayTracingShaderGroupStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      VkDeviceSize result = getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR(
-        static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) );
-
-      return static_cast<VULKAN_HPP_NAMESPACE::DeviceSize>( result );
-    }
-
-    VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
-    {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR &&
-                         "Function <vkCmdSetRayTracingPipelineStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" );
-
-      getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), pipelineStackSize );
-    }
-
     //=== VK_EXT_vertex_input_dynamic_state ===
 
     VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT(
@@ -18851,7 +20846,7 @@
       VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetVertexInputEXT &&
-                         "Function <vkCmdSetVertexInputEXT> needs extension <VK_EXT_vertex_input_dynamic_state> enabled!" );
+                         "Function <vkCmdSetVertexInputEXT> requires <VK_EXT_shader_object> or <VK_EXT_vertex_input_dynamic_state>" );
 
       getDispatcher()->vkCmdSetVertexInputEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                vertexBindingDescriptions.size(),
@@ -18866,13 +20861,12 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t
       Device::getMemoryZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA &&
-                         "Function <vkGetMemoryZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA && "Function <vkGetMemoryZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_memory>" );
 
-      zx_handle_t zirconHandle;
-      VkResult    result = getDispatcher()->vkGetMemoryZirconHandleFUCHSIA(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" );
+      zx_handle_t                  zirconHandle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" );
 
       return zirconHandle;
     }
@@ -18881,15 +20875,15 @@
       Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA &&
-                         "Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!" );
+                         "Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> requires <VK_FUCHSIA_external_memory>" );
 
       VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties;
-      VkResult                                                  result =
-        getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA( static_cast<VkDevice>( m_device ),
-                                                                   static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
-                                                                   zirconHandle,
-                                                                   reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA(
+        static_cast<VkDevice>( m_device ),
+        static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
+        zirconHandle,
+        reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" );
 
       return memoryZirconHandleProperties;
     }
@@ -18902,23 +20896,23 @@
       Device::importSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA &&
-                         "Function <vkImportSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!" );
+                         "Function <vkImportSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" );
 
-      VkResult result = getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t
       Device::getSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA &&
-                         "Function <vkGetSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!" );
+                         "Function <vkGetSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" );
 
-      zx_handle_t zirconHandle;
-      VkResult    result = getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA(
-        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" );
+      zx_handle_t                  zirconHandle;
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" );
 
       return zirconHandle;
     }
@@ -18927,48 +20921,67 @@
 #  if defined( VK_USE_PLATFORM_FUCHSIA )
     //=== VK_FUCHSIA_buffer_collection ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA
-                                           Device::createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &                 createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA>::Type
+      Device::createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &                 createInfo,
                                              VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
+      VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBufferCollectionFUCHSIA(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferCollectionFUCHSIA" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA(
+        *this, *reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ), allocator );
     }
 
     VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setImageConstraints( const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA &&
-                         "Function <vkSetBufferCollectionImageConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" );
+                         "Function <vkSetBufferCollectionImageConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
 
-      VkResult result =
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA( static_cast<VkDevice>( m_device ),
                                                                        static_cast<VkBufferCollectionFUCHSIA>( m_collection ),
-                                                                       reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" );
+                                                                       reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" );
     }
 
     VULKAN_HPP_INLINE void
       BufferCollectionFUCHSIA::setBufferConstraints( const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA &&
-                         "Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" );
+                         "Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
 
-      VkResult result =
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
         getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA( static_cast<VkDevice>( m_device ),
                                                                         static_cast<VkBufferCollectionFUCHSIA>( m_collection ),
-                                                                        reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" );
+                                                                        reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA BufferCollectionFUCHSIA::getProperties() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA &&
-                         "Function <vkGetBufferCollectionPropertiesFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" );
+                         "Function <vkGetBufferCollectionPropertiesFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
 
       VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties;
-      VkResult result = getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA( static_cast<VkDevice>( m_device ),
-                                                                                 static_cast<VkBufferCollectionFUCHSIA>( m_collection ),
-                                                                                 reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" );
+      VULKAN_HPP_NAMESPACE::Result                            result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA( static_cast<VkDevice>( m_device ),
+                                                                 static_cast<VkBufferCollectionFUCHSIA>( m_collection ),
+                                                                 reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" );
 
       return properties;
     }
@@ -18980,12 +20993,12 @@
                                            RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI &&
-                         "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" );
+                         "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> requires <VK_HUAWEI_subpass_shading>" );
 
       VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
-      VkResult                       result = getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
-        static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+        static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
 
@@ -18994,8 +21007,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSubpassShadingHUAWEI &&
-                         "Function <vkCmdSubpassShadingHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSubpassShadingHUAWEI && "Function <vkCmdSubpassShadingHUAWEI> requires <VK_HUAWEI_subpass_shading>" );
 
       getDispatcher()->vkCmdSubpassShadingHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ) );
     }
@@ -19005,8 +21017,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView   imageView,
                                                                     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindInvocationMaskHUAWEI &&
-                         "Function <vkCmdBindInvocationMaskHUAWEI> needs extension <VK_HUAWEI_invocation_mask> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindInvocationMaskHUAWEI && "Function <vkCmdBindInvocationMaskHUAWEI> requires <VK_HUAWEI_invocation_mask>" );
 
       getDispatcher()->vkCmdBindInvocationMaskHUAWEI(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
@@ -19017,14 +21028,14 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RemoteAddressNV
       Device::getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryRemoteAddressNV &&
-                         "Function <vkGetMemoryRemoteAddressNV> needs extension <VK_NV_external_memory_rdma> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryRemoteAddressNV && "Function <vkGetMemoryRemoteAddressNV> requires <VK_NV_external_memory_rdma>" );
 
       VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
-      VkResult                              result = getDispatcher()->vkGetMemoryRemoteAddressNV( static_cast<VkDevice>( m_device ),
-                                                                     reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ),
-                                                                     reinterpret_cast<VkRemoteAddressNV *>( &address ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
+      VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetMemoryRemoteAddressNV( static_cast<VkDevice>( m_device ),
+                                                     reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ),
+                                                     reinterpret_cast<VkRemoteAddressNV *>( &address ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
 
       return address;
     }
@@ -19034,14 +21045,14 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BaseOutStructure
                                            Device::getPipelinePropertiesEXT( const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelinePropertiesEXT &&
-                         "Function <vkGetPipelinePropertiesEXT> needs extension <VK_EXT_pipeline_properties> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelinePropertiesEXT && "Function <vkGetPipelinePropertiesEXT> requires <VK_EXT_pipeline_properties>" );
 
       VULKAN_HPP_NAMESPACE::BaseOutStructure pipelineProperties;
-      VkResult                               result = getDispatcher()->vkGetPipelinePropertiesEXT( static_cast<VkDevice>( m_device ),
-                                                                     reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ),
-                                                                     reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" );
+      VULKAN_HPP_NAMESPACE::Result           result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetPipelinePropertiesEXT( static_cast<VkDevice>( m_device ),
+                                                     reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ),
+                                                     reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" );
 
       return pipelineProperties;
     }
@@ -19051,15 +21062,16 @@
     VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPatchControlPointsEXT &&
-                         "Function <vkCmdSetPatchControlPointsEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" );
+                         "Function <vkCmdSetPatchControlPointsEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetPatchControlPointsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), patchControlPoints );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT &&
-                         "Function <vkCmdSetRasterizerDiscardEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT &&
+        "Function <vkCmdSetRasterizerDiscardEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) );
     }
@@ -19067,22 +21079,24 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBiasEnableEXT &&
-                         "Function <vkCmdSetDepthBiasEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" );
+                         "Function <vkCmdSetDepthBiasEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetDepthBiasEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEXT && "Function <vkCmdSetLogicOpEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEXT &&
+                         "Function <vkCmdSetLogicOpEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetLogicOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkLogicOp>( logicOp ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT &&
-                         "Function <vkCmdSetPrimitiveRestartEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" );
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT &&
+        "Function <vkCmdSetPrimitiveRestartEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
 
       getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) );
     }
@@ -19090,18 +21104,35 @@
 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
     //=== VK_QNX_screen_surface ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
-                                           Instance::createScreenSurfaceQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &                        createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type
+                        Instance::createScreenSurfaceQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &                        createInfo,
                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
+      VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateScreenSurfaceQNX(
+        static_cast<VkInstance>( m_instance ),
+        reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#    if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#    else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createScreenSurfaceQNX" );
+#    endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator );
     }
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
       PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX &&
-                         "Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> needs extension <VK_QNX_screen_surface> enabled!" );
+                         "Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> requires <VK_QNX_screen_surface>" );
 
       VkBool32 result =
         getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &window );
@@ -19115,8 +21146,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorWriteEnableEXT &&
-                         "Function <vkCmdSetColorWriteEnableEXT> needs extension <VK_EXT_color_write_enable> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorWriteEnableEXT && "Function <vkCmdSetColorWriteEnableEXT> requires <VK_EXT_color_write_enable>" );
 
       getDispatcher()->vkCmdSetColorWriteEnableEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), colorWriteEnables.size(), reinterpret_cast<const VkBool32 *>( colorWriteEnables.data() ) );
@@ -19126,8 +21156,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirect2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirect2KHR &&
-                         "Function <vkCmdTraceRaysIndirect2KHR> needs extension <VK_KHR_ray_tracing_maintenance1> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirect2KHR && "Function <vkCmdTraceRaysIndirect2KHR> requires <VK_KHR_ray_tracing_maintenance1>" );
 
       getDispatcher()->vkCmdTraceRaysIndirect2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
     }
@@ -19139,7 +21168,7 @@
                                    uint32_t                                                                                      instanceCount,
                                    uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiEXT && "Function <vkCmdDrawMultiEXT> needs extension <VK_EXT_multi_draw> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiEXT && "Function <vkCmdDrawMultiEXT> requires <VK_EXT_multi_draw>" );
 
       getDispatcher()->vkCmdDrawMultiEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                           vertexInfo.size(),
@@ -19155,7 +21184,7 @@
                                           uint32_t                                                                                             firstInstance,
                                           Optional<const int32_t> vertexOffset ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiIndexedEXT && "Function <vkCmdDrawMultiIndexedEXT> needs extension <VK_EXT_multi_draw> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiIndexedEXT && "Function <vkCmdDrawMultiIndexedEXT> requires <VK_EXT_multi_draw>" );
 
       getDispatcher()->vkCmdDrawMultiIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                  indexInfo.size(),
@@ -19168,17 +21197,34 @@
 
     //=== VK_EXT_opacity_micromap ===
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::MicromapEXT
-                                           Device::createMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const &                             createInfo,
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT>::Type
+                        Device::createMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const &                             createInfo,
                                  VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::MicromapEXT( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::MicromapEXT micromap;
+      VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMicromapEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkMicromapEXT *>( &micromap ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createMicromapEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT( *this, *reinterpret_cast<VkMicromapEXT *>( &micromap ), allocator );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::buildMicromapsEXT(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildMicromapsEXT && "Function <vkCmdBuildMicromapsEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildMicromapsEXT && "Function <vkCmdBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" );
 
       getDispatcher()->vkCmdBuildMicromapsEXT(
         static_cast<VkCommandBuffer>( m_commandBuffer ), infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) );
@@ -19188,13 +21234,14 @@
                                            Device::buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                 deferredOperation,
                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkBuildMicromapsEXT && "Function <vkBuildMicromapsEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBuildMicromapsEXT && "Function <vkBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" );
 
-      VkResult result = getDispatcher()->vkBuildMicromapsEXT( static_cast<VkDevice>( m_device ),
-                                                              static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                              infos.size(),
-                                                              reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBuildMicromapsEXT( static_cast<VkDevice>( m_device ),
+                                                                                         static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                                                         infos.size(),
+                                                                                         reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::buildMicromapsEXT",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -19206,11 +21253,13 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
                                                                                                  const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapEXT && "Function <vkCopyMicromapEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapEXT && "Function <vkCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
 
-      VkResult result = getDispatcher()->vkCopyMicromapEXT(
-        static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyMicromapEXT( static_cast<VkDevice>( m_device ),
+                                                                                       static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                                                       reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapEXT",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -19223,13 +21272,13 @@
                                            Device::copyMicromapToMemoryEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                deferredOperation,
                                        const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapToMemoryEXT &&
-                         "Function <vkCopyMicromapToMemoryEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapToMemoryEXT && "Function <vkCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" );
 
-      VkResult result = getDispatcher()->vkCopyMicromapToMemoryEXT( static_cast<VkDevice>( m_device ),
-                                                                    static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                    reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkCopyMicromapToMemoryEXT( static_cast<VkDevice>( m_device ),
+                                                    static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                    reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -19242,13 +21291,13 @@
                                            Device::copyMemoryToMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                deferredOperation,
                                        const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToMicromapEXT &&
-                         "Function <vkCopyMemoryToMicromapEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToMicromapEXT && "Function <vkCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" );
 
-      VkResult result = getDispatcher()->vkCopyMemoryToMicromapEXT( static_cast<VkDevice>( m_device ),
-                                                                    static_cast<VkDeferredOperationKHR>( deferredOperation ),
-                                                                    reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ),
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkCopyMemoryToMicromapEXT( static_cast<VkDevice>( m_device ),
+                                                    static_cast<VkDeferredOperationKHR>( deferredOperation ),
+                                                    reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) ) );
+      resultCheck( result,
                    VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT",
                    { VULKAN_HPP_NAMESPACE::Result::eSuccess,
                      VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
@@ -19264,19 +21313,19 @@
                                            size_t                                                                            dataSize,
                                            size_t                                                                            stride ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT &&
-                         "Function <vkWriteMicromapsPropertiesEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
 
       VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
-      std::vector<DataType> data( dataSize / sizeof( DataType ) );
-      VkResult              result = getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ),
-                                                                        micromaps.size(),
-                                                                        reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
-                                                                        static_cast<VkQueryType>( queryType ),
-                                                                        data.size() * sizeof( DataType ),
-                                                                        reinterpret_cast<void *>( data.data() ),
-                                                                        stride );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" );
+      std::vector<DataType>        data( dataSize / sizeof( DataType ) );
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ),
+                                                                                                   micromaps.size(),
+                                                                                                   reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
+                                                                                                   static_cast<VkQueryType>( queryType ),
+                                                                                                   data.size() * sizeof( DataType ),
+                                                                                                   reinterpret_cast<void *>( data.data() ),
+                                                                                                   stride ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" );
 
       return data;
     }
@@ -19287,33 +21336,32 @@
                                          VULKAN_HPP_NAMESPACE::QueryType                                                   queryType,
                                          size_t                                                                            stride ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT &&
-                         "Function <vkWriteMicromapsPropertiesEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
 
-      DataType data;
-      VkResult result = getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ),
-                                                                        micromaps.size(),
-                                                                        reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
-                                                                        static_cast<VkQueryType>( queryType ),
-                                                                        sizeof( DataType ),
-                                                                        reinterpret_cast<void *>( &data ),
-                                                                        stride );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" );
+      DataType                     data;
+      VULKAN_HPP_NAMESPACE::Result result =
+        static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ),
+                                                                                                   micromaps.size(),
+                                                                                                   reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
+                                                                                                   static_cast<VkQueryType>( queryType ),
+                                                                                                   sizeof( DataType ),
+                                                                                                   reinterpret_cast<void *>( &data ),
+                                                                                                   stride ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" );
 
       return data;
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::copyMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapEXT && "Function <vkCmdCopyMicromapEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapEXT && "Function <vkCmdCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
 
       getDispatcher()->vkCmdCopyMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::copyMicromapToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapToMemoryEXT &&
-                         "Function <vkCmdCopyMicromapToMemoryEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapToMemoryEXT && "Function <vkCmdCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" );
 
       getDispatcher()->vkCmdCopyMicromapToMemoryEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                      reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) );
@@ -19321,8 +21369,7 @@
 
     VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToMicromapEXT &&
-                         "Function <vkCmdCopyMemoryToMicromapEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToMicromapEXT && "Function <vkCmdCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" );
 
       getDispatcher()->vkCmdCopyMemoryToMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                      reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) );
@@ -19335,7 +21382,7 @@
                                                   uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteMicromapsPropertiesEXT &&
-                         "Function <vkCmdWriteMicromapsPropertiesEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+                         "Function <vkCmdWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
 
       getDispatcher()->vkCmdWriteMicromapsPropertiesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          micromaps.size(),
@@ -19349,7 +21396,7 @@
       Device::getMicromapCompatibilityEXT( const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMicromapCompatibilityEXT &&
-                         "Function <vkGetDeviceMicromapCompatibilityEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+                         "Function <vkGetDeviceMicromapCompatibilityEXT> requires <VK_EXT_opacity_micromap>" );
 
       VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
       getDispatcher()->vkGetDeviceMicromapCompatibilityEXT( static_cast<VkDevice>( m_device ),
@@ -19363,8 +21410,7 @@
                                            Device::getMicromapBuildSizesEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,
                                         const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT &      buildInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMicromapBuildSizesEXT &&
-                         "Function <vkGetMicromapBuildSizesEXT> needs extension <VK_EXT_opacity_micromap> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetMicromapBuildSizesEXT && "Function <vkGetMicromapBuildSizesEXT> requires <VK_EXT_opacity_micromap>" );
 
       VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT sizeInfo;
       getDispatcher()->vkGetMicromapBuildSizesEXT( static_cast<VkDevice>( m_device ),
@@ -19375,12 +21421,31 @@
       return sizeInfo;
     }
 
+    //=== VK_HUAWEI_cluster_culling_shader ===
+
+    VULKAN_HPP_INLINE void CommandBuffer::drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawClusterHUAWEI && "Function <vkCmdDrawClusterHUAWEI> requires <VK_HUAWEI_cluster_culling_shader>" );
+
+      getDispatcher()->vkCmdDrawClusterHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                                                     VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawClusterIndirectHUAWEI &&
+                         "Function <vkCmdDrawClusterIndirectHUAWEI> requires <VK_HUAWEI_cluster_culling_shader>" );
+
+      getDispatcher()->vkCmdDrawClusterIndirectHUAWEI(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
+    }
+
     //=== VK_EXT_pageable_device_local_memory ===
 
     VULKAN_HPP_INLINE void DeviceMemory::setPriorityEXT( float priority ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkSetDeviceMemoryPriorityEXT &&
-                         "Function <vkSetDeviceMemoryPriorityEXT> needs extension <VK_EXT_pageable_device_local_memory> enabled!" );
+                         "Function <vkSetDeviceMemoryPriorityEXT> requires <VK_EXT_pageable_device_local_memory>" );
 
       getDispatcher()->vkSetDeviceMemoryPriorityEXT( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), priority );
     }
@@ -19391,7 +21456,7 @@
       Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR &&
-                         "Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" );
+                         "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
@@ -19402,14 +21467,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR &&
-                         "Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" );
+                         "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
 
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
                                                                reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ),
                                                                reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -19421,7 +21486,7 @@
       Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR &&
-                         "Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" );
+                         "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
 
       VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
       getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
@@ -19432,14 +21497,14 @@
     }
 
     template <typename X, typename Y, typename... Z>
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
       Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR &&
-                         "Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" );
+                         "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
 
-      StructureChain<X, Y, Z...>                  structureChain;
-      VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
       getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
                                                               reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
                                                               reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
@@ -19451,7 +21516,7 @@
                                            Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR &&
-                         "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" );
+                         "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements;
       uint32_t                                                          sparseMemoryRequirementCount;
@@ -19477,7 +21542,7 @@
       const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE &&
-                         "Function <vkGetDescriptorSetLayoutHostMappingInfoVALVE> needs extension <VK_VALVE_descriptor_set_host_mapping> enabled!" );
+                         "Function <vkGetDescriptorSetLayoutHostMappingInfoVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" );
 
       VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE hostMapping;
       getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE( static_cast<VkDevice>( m_device ),
@@ -19490,7 +21555,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DescriptorSet::getHostMappingVALVE() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetHostMappingVALVE &&
-                         "Function <vkGetDescriptorSetHostMappingVALVE> needs extension <VK_VALVE_descriptor_set_host_mapping> enabled!" );
+                         "Function <vkGetDescriptorSetHostMappingVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" );
 
       void * pData;
       getDispatcher()->vkGetDescriptorSetHostMappingVALVE( static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSet>( m_descriptorSet ), &pData );
@@ -19504,8 +21569,7 @@
                                                                 uint32_t                            copyCount,
                                                                 uint32_t                            stride ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryIndirectNV &&
-                         "Function <vkCmdCopyMemoryIndirectNV> needs extension <VK_NV_copy_memory_indirect> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryIndirectNV && "Function <vkCmdCopyMemoryIndirectNV> requires <VK_NV_copy_memory_indirect>" );
 
       getDispatcher()->vkCmdCopyMemoryIndirectNV(
         static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( copyBufferAddress ), copyCount, stride );
@@ -19519,7 +21583,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToImageIndirectNV &&
-                         "Function <vkCmdCopyMemoryToImageIndirectNV> needs extension <VK_NV_copy_memory_indirect> enabled!" );
+                         "Function <vkCmdCopyMemoryToImageIndirectNV> requires <VK_NV_copy_memory_indirect>" );
 
       getDispatcher()->vkCmdCopyMemoryToImageIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkDeviceAddress>( copyBufferAddress ),
@@ -19535,8 +21599,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::decompressMemoryNV(
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecompressMemoryNV &&
-                         "Function <vkCmdDecompressMemoryNV> needs extension <VK_NV_memory_decompression> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecompressMemoryNV && "Function <vkCmdDecompressMemoryNV> requires <VK_NV_memory_decompression>" );
 
       getDispatcher()->vkCmdDecompressMemoryNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                 decompressMemoryRegions.size(),
@@ -19548,7 +21611,7 @@
                                                                            uint32_t                            stride ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecompressMemoryIndirectCountNV &&
-                         "Function <vkCmdDecompressMemoryIndirectCountNV> needs extension <VK_NV_memory_decompression> enabled!" );
+                         "Function <vkCmdDecompressMemoryIndirectCountNV> requires <VK_NV_memory_decompression>" );
 
       getDispatcher()->vkCmdDecompressMemoryIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                              static_cast<VkDeviceAddress>( indirectCommandsAddress ),
@@ -19556,13 +21619,67 @@
                                                              stride );
     }
 
+    //=== VK_NV_device_generated_commands_compute ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
+      Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV &&
+                         "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" );
+
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
+      getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
+                                                                  reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
+                                                                  reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+      return memoryRequirements;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+      Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV &&
+                         "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
+                                                                  reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
+                                                                  reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+      return structureChain;
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
+                                                                          VULKAN_HPP_NAMESPACE::Pipeline          pipeline ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdUpdatePipelineIndirectBufferNV &&
+                         "Function <vkCmdUpdatePipelineIndirectBufferNV> requires <VK_NV_device_generated_commands_compute>" );
+
+      getDispatcher()->vkCmdUpdatePipelineIndirectBufferNV(
+        static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
+      Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectDeviceAddressNV &&
+                         "Function <vkGetPipelineIndirectDeviceAddressNV> requires <VK_NV_device_generated_commands_compute>" );
+
+      VkDeviceAddress result = getDispatcher()->vkGetPipelineIndirectDeviceAddressNV(
+        static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( &info ) );
+
+      return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
+    }
+
     //=== VK_EXT_extended_dynamic_state3 ===
 
     VULKAN_HPP_INLINE void
       CommandBuffer::setTessellationDomainOriginEXT( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetTessellationDomainOriginEXT &&
-                         "Function <vkCmdSetTessellationDomainOriginEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetTessellationDomainOriginEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetTessellationDomainOriginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                             static_cast<VkTessellationDomainOrigin>( domainOrigin ) );
@@ -19571,7 +21688,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthClampEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClampEnableEXT &&
-                         "Function <vkCmdSetDepthClampEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetDepthClampEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetDepthClampEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClampEnable ) );
     }
@@ -19579,7 +21696,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setPolygonModeEXT( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPolygonModeEXT &&
-                         "Function <vkCmdSetPolygonModeEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetPolygonModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetPolygonModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPolygonMode>( polygonMode ) );
     }
@@ -19587,18 +21704,26 @@
     VULKAN_HPP_INLINE void CommandBuffer::setRasterizationSamplesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizationSamplesEXT &&
-                         "Function <vkCmdSetRasterizationSamplesEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetRasterizationSamplesEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetRasterizationSamplesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                         static_cast<VkSampleCountFlagBits>( rasterizationSamples ) );
     }
 
-    VULKAN_HPP_INLINE void
-      CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
-                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_INLINE void CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
+                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleMaskEXT &&
-                         "Function <vkCmdSetSampleMaskEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetSampleMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( sampleMask.size() == ( static_cast<uint32_t>( samples ) + 31 ) / 32 );
+#  else
+      if ( sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32 )
+      {
+        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
+                          "::CommandBuffer::setSampleMaskEXT: sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32" );
+      }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
 
       getDispatcher()->vkCmdSetSampleMaskEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                               static_cast<VkSampleCountFlagBits>( samples ),
@@ -19608,7 +21733,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setAlphaToCoverageEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAlphaToCoverageEnableEXT &&
-                         "Function <vkCmdSetAlphaToCoverageEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetAlphaToCoverageEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetAlphaToCoverageEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToCoverageEnable ) );
     }
@@ -19616,7 +21741,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setAlphaToOneEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAlphaToOneEnableEXT &&
-                         "Function <vkCmdSetAlphaToOneEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetAlphaToOneEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetAlphaToOneEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToOneEnable ) );
     }
@@ -19624,7 +21749,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEnableEXT &&
-                         "Function <vkCmdSetLogicOpEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetLogicOpEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetLogicOpEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( logicOpEnable ) );
     }
@@ -19633,7 +21758,7 @@
       uint32_t firstAttachment, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendEnableEXT &&
-                         "Function <vkCmdSetColorBlendEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetColorBlendEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetColorBlendEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                     firstAttachment,
@@ -19646,7 +21771,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendEquationEXT &&
-                         "Function <vkCmdSetColorBlendEquationEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetColorBlendEquationEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetColorBlendEquationEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       firstAttachment,
@@ -19659,7 +21784,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorWriteMaskEXT &&
-                         "Function <vkCmdSetColorWriteMaskEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetColorWriteMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetColorWriteMaskEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   firstAttachment,
@@ -19670,7 +21795,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setRasterizationStreamEXT( uint32_t rasterizationStream ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizationStreamEXT &&
-                         "Function <vkCmdSetRasterizationStreamEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetRasterizationStreamEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetRasterizationStreamEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), rasterizationStream );
     }
@@ -19679,7 +21804,7 @@
       VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetConservativeRasterizationModeEXT &&
-                         "Function <vkCmdSetConservativeRasterizationModeEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetConservativeRasterizationModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetConservativeRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                  static_cast<VkConservativeRasterizationModeEXT>( conservativeRasterizationMode ) );
@@ -19688,7 +21813,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setExtraPrimitiveOverestimationSizeEXT( float extraPrimitiveOverestimationSize ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExtraPrimitiveOverestimationSizeEXT &&
-                         "Function <vkCmdSetExtraPrimitiveOverestimationSizeEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetExtraPrimitiveOverestimationSizeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetExtraPrimitiveOverestimationSizeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), extraPrimitiveOverestimationSize );
     }
@@ -19696,7 +21821,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthClipEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClipEnableEXT &&
-                         "Function <vkCmdSetDepthClipEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetDepthClipEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetDepthClipEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClipEnable ) );
     }
@@ -19704,7 +21829,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEnableEXT &&
-                         "Function <vkCmdSetSampleLocationsEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetSampleLocationsEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetSampleLocationsEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( sampleLocationsEnable ) );
     }
@@ -19714,7 +21839,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendAdvancedEXT &&
-                         "Function <vkCmdSetColorBlendAdvancedEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetColorBlendAdvancedEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetColorBlendAdvancedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                       firstAttachment,
@@ -19726,7 +21851,7 @@
       CommandBuffer::setProvokingVertexModeEXT( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetProvokingVertexModeEXT &&
-                         "Function <vkCmdSetProvokingVertexModeEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetProvokingVertexModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetProvokingVertexModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                        static_cast<VkProvokingVertexModeEXT>( provokingVertexMode ) );
@@ -19736,7 +21861,7 @@
       CommandBuffer::setLineRasterizationModeEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineRasterizationModeEXT &&
-                         "Function <vkCmdSetLineRasterizationModeEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetLineRasterizationModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetLineRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkLineRasterizationModeEXT>( lineRasterizationMode ) );
@@ -19745,7 +21870,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEnableEXT &&
-                         "Function <vkCmdSetLineStippleEnableEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetLineStippleEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetLineStippleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stippledLineEnable ) );
     }
@@ -19753,7 +21878,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setDepthClipNegativeOneToOneEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClipNegativeOneToOneEXT &&
-                         "Function <vkCmdSetDepthClipNegativeOneToOneEXT> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetDepthClipNegativeOneToOneEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetDepthClipNegativeOneToOneEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( negativeOneToOne ) );
     }
@@ -19761,7 +21886,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingEnableNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingEnableNV &&
-                         "Function <vkCmdSetViewportWScalingEnableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetViewportWScalingEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetViewportWScalingEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( viewportWScalingEnable ) );
     }
@@ -19771,7 +21896,7 @@
       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportSwizzleNV &&
-                         "Function <vkCmdSetViewportSwizzleNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetViewportSwizzleNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetViewportSwizzleNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   firstViewport,
@@ -19782,7 +21907,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageToColorEnableNV &&
-                         "Function <vkCmdSetCoverageToColorEnableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageToColorEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageToColorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( coverageToColorEnable ) );
     }
@@ -19790,7 +21915,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorLocationNV( uint32_t coverageToColorLocation ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageToColorLocationNV &&
-                         "Function <vkCmdSetCoverageToColorLocationNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageToColorLocationNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageToColorLocationNV( static_cast<VkCommandBuffer>( m_commandBuffer ), coverageToColorLocation );
     }
@@ -19799,7 +21924,7 @@
       CommandBuffer::setCoverageModulationModeNV( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationModeNV &&
-                         "Function <vkCmdSetCoverageModulationModeNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageModulationModeNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageModulationModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                          static_cast<VkCoverageModulationModeNV>( coverageModulationMode ) );
@@ -19809,7 +21934,7 @@
       CommandBuffer::setCoverageModulationTableEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationTableEnableNV &&
-                         "Function <vkCmdSetCoverageModulationTableEnableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageModulationTableEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageModulationTableEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                 static_cast<VkBool32>( coverageModulationTableEnable ) );
@@ -19819,7 +21944,7 @@
       CommandBuffer::setCoverageModulationTableNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationTableNV &&
-                         "Function <vkCmdSetCoverageModulationTableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageModulationTableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageModulationTableNV(
         static_cast<VkCommandBuffer>( m_commandBuffer ), coverageModulationTable.size(), coverageModulationTable.data() );
@@ -19828,7 +21953,7 @@
     VULKAN_HPP_INLINE void CommandBuffer::setShadingRateImageEnableNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetShadingRateImageEnableNV &&
-                         "Function <vkCmdSetShadingRateImageEnableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetShadingRateImageEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetShadingRateImageEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( shadingRateImageEnable ) );
     }
@@ -19837,7 +21962,7 @@
       CommandBuffer::setRepresentativeFragmentTestEnableNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRepresentativeFragmentTestEnableNV &&
-                         "Function <vkCmdSetRepresentativeFragmentTestEnableNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetRepresentativeFragmentTestEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetRepresentativeFragmentTestEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                                    static_cast<VkBool32>( representativeFragmentTestEnable ) );
@@ -19847,7 +21972,7 @@
       CommandBuffer::setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageReductionModeNV &&
-                         "Function <vkCmdSetCoverageReductionModeNV> needs extension <VK_EXT_extended_dynamic_state3> enabled!" );
+                         "Function <vkCmdSetCoverageReductionModeNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
 
       getDispatcher()->vkCmdSetCoverageReductionModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                         static_cast<VkCoverageReductionModeNV>( coverageReductionMode ) );
@@ -19858,7 +21983,7 @@
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT ShaderModule::getIdentifierEXT() const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderModuleIdentifierEXT &&
-                         "Function <vkGetShaderModuleIdentifierEXT> needs extension <VK_EXT_shader_module_identifier> enabled!" );
+                         "Function <vkGetShaderModuleIdentifierEXT> requires <VK_EXT_shader_module_identifier>" );
 
       VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier;
       getDispatcher()->vkGetShaderModuleIdentifierEXT(
@@ -19871,7 +21996,7 @@
       Device::getShaderModuleCreateInfoIdentifierEXT( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderModuleCreateInfoIdentifierEXT &&
-                         "Function <vkGetShaderModuleCreateInfoIdentifierEXT> needs extension <VK_EXT_shader_module_identifier> enabled!" );
+                         "Function <vkGetShaderModuleCreateInfoIdentifierEXT> requires <VK_EXT_shader_module_identifier>" );
 
       VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier;
       getDispatcher()->vkGetShaderModuleCreateInfoIdentifierEXT( static_cast<VkDevice>( m_device ),
@@ -19887,29 +22012,29 @@
       PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV &&
-                         "Function <vkGetPhysicalDeviceOpticalFlowImageFormatsNV> needs extension <VK_NV_optical_flow> enabled!" );
+                         "Function <vkGetPhysicalDeviceOpticalFlowImageFormatsNV> requires <VK_NV_optical_flow>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV> imageFormatProperties;
       uint32_t                                                              formatCount;
-      VkResult                                                              result;
+      VULKAN_HPP_NAMESPACE::Result                                          result;
       do
       {
-        result = getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
           static_cast<VkPhysicalDevice>( m_physicalDevice ),
           reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
           &formatCount,
-          nullptr );
-        if ( ( result == VK_SUCCESS ) && formatCount )
+          nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount )
         {
           imageFormatProperties.resize( formatCount );
-          result = getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
             static_cast<VkPhysicalDevice>( m_physicalDevice ),
             reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
             &formatCount,
-            reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) );
+            reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
       VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() );
       if ( formatCount < imageFormatProperties.size() )
       {
@@ -19918,61 +22043,274 @@
       return imageFormatProperties;
     }
 
-    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV
-                                           Device::createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const &                    createInfo,
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV>::Type
+      Device::createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const &                    createInfo,
                                           VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
     {
-      return VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV( *this, createInfo, allocator );
+      VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session;
+      VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateOpticalFlowSessionNV(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createOpticalFlowSessionNV" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV( *this, *reinterpret_cast<VkOpticalFlowSessionNV *>( &session ), allocator );
     }
 
     VULKAN_HPP_INLINE void OpticalFlowSessionNV::bindImage( VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,
                                                             VULKAN_HPP_NAMESPACE::ImageView                        view,
                                                             VULKAN_HPP_NAMESPACE::ImageLayout                      layout ) const
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkBindOpticalFlowSessionImageNV &&
-                         "Function <vkBindOpticalFlowSessionImageNV> needs extension <VK_NV_optical_flow> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkBindOpticalFlowSessionImageNV && "Function <vkBindOpticalFlowSessionImageNV> requires <VK_NV_optical_flow>" );
 
-      VkResult result = getDispatcher()->vkBindOpticalFlowSessionImageNV( static_cast<VkDevice>( m_device ),
-                                                                          static_cast<VkOpticalFlowSessionNV>( m_session ),
-                                                                          static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
-                                                                          static_cast<VkImageView>( view ),
-                                                                          static_cast<VkImageLayout>( layout ) );
-      resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::OpticalFlowSessionNV::bindImage" );
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkBindOpticalFlowSessionImageNV( static_cast<VkDevice>( m_device ),
+                                                          static_cast<VkOpticalFlowSessionNV>( m_session ),
+                                                          static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
+                                                          static_cast<VkImageView>( view ),
+                                                          static_cast<VkImageLayout>( layout ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::OpticalFlowSessionNV::bindImage" );
     }
 
     VULKAN_HPP_INLINE void CommandBuffer::opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
                                                                 const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo ) const VULKAN_HPP_NOEXCEPT
     {
-      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdOpticalFlowExecuteNV && "Function <vkCmdOpticalFlowExecuteNV> needs extension <VK_NV_optical_flow> enabled!" );
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdOpticalFlowExecuteNV && "Function <vkCmdOpticalFlowExecuteNV> requires <VK_NV_optical_flow>" );
 
       getDispatcher()->vkCmdOpticalFlowExecuteNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
                                                   static_cast<VkOpticalFlowSessionNV>( session ),
                                                   reinterpret_cast<const VkOpticalFlowExecuteInfoNV *>( &executeInfo ) );
     }
 
+    //=== VK_KHR_maintenance5 ===
+
+    VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
+                                                               VULKAN_HPP_NAMESPACE::DeviceSize offset,
+                                                               VULKAN_HPP_NAMESPACE::DeviceSize size,
+                                                               VULKAN_HPP_NAMESPACE::IndexType  indexType ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindIndexBuffer2KHR && "Function <vkCmdBindIndexBuffer2KHR> requires <VK_KHR_maintenance5>" );
+
+      getDispatcher()->vkCmdBindIndexBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                 static_cast<VkBuffer>( buffer ),
+                                                 static_cast<VkDeviceSize>( offset ),
+                                                 static_cast<VkDeviceSize>( size ),
+                                                 static_cast<VkIndexType>( indexType ) );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D
+      Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetRenderingAreaGranularityKHR && "Function <vkGetRenderingAreaGranularityKHR> requires <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::Extent2D granularity;
+      getDispatcher()->vkGetRenderingAreaGranularityKHR( static_cast<VkDevice>( m_device ),
+                                                         reinterpret_cast<const VkRenderingAreaInfoKHR *>( &renderingAreaInfo ),
+                                                         reinterpret_cast<VkExtent2D *>( &granularity ) );
+
+      return granularity;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+      Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR &&
+                         "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+      getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR( static_cast<VkDevice>( m_device ),
+                                                             reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ),
+                                                             reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return layout;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+      Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR &&
+                         "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+      getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR( static_cast<VkDevice>( m_device ),
+                                                             reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ),
+                                                             reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return structureChain;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR
+      Image::getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetImageSubresourceLayout2KHR &&
+        "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout;
+      getDispatcher()->vkGetImageSubresourceLayout2KHR( static_cast<VkDevice>( m_device ),
+                                                        static_cast<VkImage>( m_image ),
+                                                        reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                                        reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return layout;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+      Image::getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetImageSubresourceLayout2KHR &&
+        "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR &    layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>();
+      getDispatcher()->vkGetImageSubresourceLayout2KHR( static_cast<VkDevice>( m_device ),
+                                                        static_cast<VkImage>( m_image ),
+                                                        reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ),
+                                                        reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) );
+
+      return structureChain;
+    }
+
+    //=== VK_EXT_shader_object ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>>::Type
+      Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
+                                VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator ) const
+    {
+      std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() );
+      VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShadersEXT(
+        static_cast<VkDevice>( m_device ),
+        createInfos.size(),
+        reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShadersEXT" );
+#  endif
+      }
+
+      std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> shadersRAII;
+      shadersRAII.reserve( shaders.size() );
+      for ( auto & shader : shaders )
+      {
+        shadersRAII.emplace_back( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator );
+      }
+      return shadersRAII;
+    }
+
+    VULKAN_HPP_NODISCARD
+      VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>::Type
+                        Device::createShaderEXT( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const &                               createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::ShaderEXT shader;
+      VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShadersEXT(
+        static_cast<VkDevice>( m_device ),
+        1,
+        reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkShaderEXT *>( &shader ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ShaderEXT::getBinaryData() const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderBinaryDataEXT && "Function <vkGetShaderBinaryDataEXT> requires <VK_EXT_shader_object>" );
+
+      std::vector<uint8_t>         data;
+      size_t                       dataSize;
+      VULKAN_HPP_NAMESPACE::Result result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetShaderBinaryDataEXT( static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), &dataSize, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
+        {
+          data.resize( dataSize );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderBinaryDataEXT(
+            static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ShaderEXT::getBinaryData" );
+      VULKAN_HPP_ASSERT( dataSize <= data.size() );
+      if ( dataSize < data.size() )
+      {
+        data.resize( dataSize );
+      }
+      return data;
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
+                                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadersEXT && "Function <vkCmdBindShadersEXT> requires <VK_EXT_shader_object>" );
+#  ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( stages.size() == shaders.size() );
+#  else
+      if ( stages.size() != shaders.size() )
+      {
+        throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindShadersEXT: stages.size() != shaders.size()" );
+      }
+#  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+
+      getDispatcher()->vkCmdBindShadersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                            stages.size(),
+                                            reinterpret_cast<const VkShaderStageFlagBits *>( stages.data() ),
+                                            reinterpret_cast<const VkShaderEXT *>( shaders.data() ) );
+    }
+
     //=== VK_QCOM_tile_properties ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM> Framebuffer::getTilePropertiesQCOM() const
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetFramebufferTilePropertiesQCOM &&
-                         "Function <vkGetFramebufferTilePropertiesQCOM> needs extension <VK_QCOM_tile_properties> enabled!" );
+                         "Function <vkGetFramebufferTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" );
 
       std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM> properties;
       uint32_t                                              propertiesCount;
-      VkResult                                              result;
+      VULKAN_HPP_NAMESPACE::Result                          result;
       do
       {
-        result = getDispatcher()->vkGetFramebufferTilePropertiesQCOM(
-          static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( m_framebuffer ), &propertiesCount, nullptr );
-        if ( ( result == VK_SUCCESS ) && propertiesCount )
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFramebufferTilePropertiesQCOM(
+          static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( m_framebuffer ), &propertiesCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount )
         {
           properties.resize( propertiesCount );
-          result = getDispatcher()->vkGetFramebufferTilePropertiesQCOM( static_cast<VkDevice>( m_device ),
-                                                                        static_cast<VkFramebuffer>( m_framebuffer ),
-                                                                        &propertiesCount,
-                                                                        reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+            getDispatcher()->vkGetFramebufferTilePropertiesQCOM( static_cast<VkDevice>( m_device ),
+                                                                 static_cast<VkFramebuffer>( m_framebuffer ),
+                                                                 &propertiesCount,
+                                                                 reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) );
         }
-      } while ( result == VK_INCOMPLETE );
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
 
       VULKAN_HPP_ASSERT( propertiesCount <= properties.size() );
       if ( propertiesCount < properties.size() )
@@ -19986,7 +22324,7 @@
       Device::getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT
     {
       VULKAN_HPP_ASSERT( getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM &&
-                         "Function <vkGetDynamicRenderingTilePropertiesQCOM> needs extension <VK_QCOM_tile_properties> enabled!" );
+                         "Function <vkGetDynamicRenderingTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" );
 
       VULKAN_HPP_NAMESPACE::TilePropertiesQCOM properties;
       getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM( static_cast<VkDevice>( m_device ),
@@ -19996,6 +22334,282 @@
       return properties;
     }
 
+    //=== VK_NV_low_latency2 ===
+
+    VULKAN_HPP_INLINE void SwapchainKHR::setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeNV && "Function <vkSetLatencySleepModeNV> requires <VK_NV_low_latency2>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetLatencySleepModeNV(
+        static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" );
+    }
+
+    VULKAN_HPP_INLINE void SwapchainKHR::latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepNV && "Function <vkLatencySleepNV> requires <VK_NV_low_latency2>" );
+
+      VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkLatencySleepNV(
+        static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( &sleepInfo ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::latencySleepNV" );
+    }
+
+    VULKAN_HPP_INLINE void SwapchainKHR::setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencyMarkerNV && "Function <vkSetLatencyMarkerNV> requires <VK_NV_low_latency2>" );
+
+      getDispatcher()->vkSetLatencyMarkerNV( static_cast<VkDevice>( m_device ),
+                                             static_cast<VkSwapchainKHR>( m_swapchain ),
+                                             reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" );
+
+      VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo;
+      getDispatcher()->vkGetLatencyTimingsNV(
+        static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
+
+      return latencyMarkerInfo;
+    }
+
+    VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkQueueNotifyOutOfBandNV && "Function <vkQueueNotifyOutOfBandNV> requires <VK_NV_low_latency2>" );
+
+      getDispatcher()->vkQueueNotifyOutOfBandNV( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( &queueTypeInfo ) );
+    }
+
+    //=== VK_KHR_cooperative_matrix ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>
+                                           PhysicalDevice::getCooperativeMatrixPropertiesKHR() const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR &&
+                         "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR> requires <VK_KHR_cooperative_matrix>" );
+
+      std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> properties;
+      uint32_t                                                          propertyCount;
+      VULKAN_HPP_NAMESPACE::Result                                      result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
+        {
+          properties.resize( propertyCount );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" );
+      VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
+      if ( propertyCount < properties.size() )
+      {
+        properties.resize( propertyCount );
+      }
+      return properties;
+    }
+
+    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+    VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT &&
+                         "Function <vkCmdSetAttachmentFeedbackLoopEnableEXT> requires <VK_EXT_attachment_feedback_loop_dynamic_state>" );
+
+      getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                                static_cast<VkImageAspectFlags>( aspectMask ) );
+    }
+
+#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    //=== VK_QNX_external_memory_screen_buffer ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX
+                                           Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX &&
+                         "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" );
+
+      VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX properties;
+      VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetScreenBufferPropertiesQNX(
+        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
+
+      return properties;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                                           Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX &&
+                         "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" );
+
+      StructureChain<X, Y, Z...>                        structureChain;
+      VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>();
+      VULKAN_HPP_NAMESPACE::Result                      result     = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetScreenBufferPropertiesQNX(
+        static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
+
+      return structureChain;
+    }
+#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+    //=== VK_KHR_calibrated_timestamps ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> PhysicalDevice::getCalibrateableTimeDomainsKHR() const
+    {
+      VULKAN_HPP_ASSERT(
+        getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR &&
+        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
+
+      std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> timeDomains;
+      uint32_t                                         timeDomainCount;
+      VULKAN_HPP_NAMESPACE::Result                     result;
+      do
+      {
+        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+          getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr ) );
+        if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
+        {
+          timeDomains.resize( timeDomainCount );
+          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
+            static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
+        }
+      } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" );
+      VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
+      if ( timeDomainCount < timeDomains.size() )
+      {
+        timeDomains.resize( timeDomainCount );
+      }
+      return timeDomains;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t> Device::getCalibratedTimestampsKHR(
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR &&
+                         "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
+
+      std::pair<std::vector<uint64_t>, uint64_t> data_( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
+      std::vector<uint64_t> &                    timestamps   = data_.first;
+      uint64_t &                                 maxDeviation = data_.second;
+      VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
+        getDispatcher()->vkGetCalibratedTimestampsKHR( static_cast<VkDevice>( m_device ),
+                                                       timestampInfos.size(),
+                                                       reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ),
+                                                       timestamps.data(),
+                                                       &maxDeviation ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" );
+
+      return data_;
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t>
+                                           Device::getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR &&
+                         "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
+
+      std::pair<uint64_t, uint64_t> data_;
+      uint64_t &                    timestamp    = data_.first;
+      uint64_t &                    maxDeviation = data_.second;
+      VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsKHR(
+        static_cast<VkDevice>( m_device ), 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
+      resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" );
+
+      return data_;
+    }
+
+    //=== VK_KHR_maintenance6 ===
+
+    VULKAN_HPP_INLINE void
+      CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorSets2KHR && "Function <vkCmdBindDescriptorSets2KHR> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdBindDescriptorSets2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                    reinterpret_cast<const VkBindDescriptorSetsInfoKHR *>( &bindDescriptorSetsInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushConstants2KHR && "Function <vkCmdPushConstants2KHR> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdPushConstants2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                               reinterpret_cast<const VkPushConstantsInfoKHR *>( &pushConstantsInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void
+      CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSet2KHR && "Function <vkCmdPushDescriptorSet2KHR> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdPushDescriptorSet2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                   reinterpret_cast<const VkPushDescriptorSetInfoKHR *>( &pushDescriptorSetInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplate2KHR(
+      const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetWithTemplate2KHR &&
+                         "Function <vkCmdPushDescriptorSetWithTemplate2KHR> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdPushDescriptorSetWithTemplate2KHR(
+        static_cast<VkCommandBuffer>( m_commandBuffer ),
+        reinterpret_cast<const VkPushDescriptorSetWithTemplateInfoKHR *>( &pushDescriptorSetWithTemplateInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::setDescriptorBufferOffsets2EXT(
+      const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDescriptorBufferOffsets2EXT &&
+                         "Function <vkCmdSetDescriptorBufferOffsets2EXT> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdSetDescriptorBufferOffsets2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                            reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( &setDescriptorBufferOffsetsInfo ) );
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(
+      const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplers2EXT &&
+                         "Function <vkCmdBindDescriptorBufferEmbeddedSamplers2EXT> requires <VK_KHR_maintenance6>" );
+
+      getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
+        static_cast<VkCommandBuffer>( m_commandBuffer ),
+        reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( &bindDescriptorBufferEmbeddedSamplersInfo ) );
+    }
+
+    //====================
+    //=== RAII Helpers ===
+    //====================
+
+    template <typename RAIIType>
+    std::vector<typename RAIIType::CppType> filterCppTypes( std::vector<RAIIType> const & raiiTypes )
+    {
+      std::vector<typename RAIIType::CppType> cppTypes( raiiTypes.size() );
+      std::transform( raiiTypes.begin(), raiiTypes.end(), cppTypes.begin(), []( RAIIType const & d ) { return *d; } );
+      return cppTypes;
+    }
+
+    template <typename RAIIType, class UnaryPredicate>
+    std::vector<typename RAIIType::CppType> filterCppTypes( std::vector<RAIIType> const & raiiTypes, UnaryPredicate p )
+    {
+      std::vector<typename RAIIType::CppType> cppTypes;
+      for ( auto const & t : raiiTypes )
+      {
+        if ( p( t ) )
+        {
+          cppTypes.push_back( *t );
+        }
+      }
+      return cppTypes;
+    }
+
   }  // namespace VULKAN_HPP_RAII_NAMESPACE
 }  // namespace VULKAN_HPP_NAMESPACE
 #endif
diff --git a/include/vulkan/vulkan_screen.h b/include/vulkan/vulkan_screen.h
index f0ef40a..7e84d4d 100644
--- a/include/vulkan/vulkan_screen.h
+++ b/include/vulkan/vulkan_screen.h
@@ -2,7 +2,7 @@
 #define VULKAN_SCREEN_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_QNX_screen_surface 1
 #define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
 #define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
@@ -47,6 +48,59 @@
     struct _screen_window*                      window);
 #endif
 
+
+// VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls.
+#define VK_QNX_external_memory_screen_buffer 1
+#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1
+#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer"
+typedef struct VkScreenBufferPropertiesQNX {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceSize       allocationSize;
+    uint32_t           memoryTypeBits;
+} VkScreenBufferPropertiesQNX;
+
+typedef struct VkScreenBufferFormatPropertiesQNX {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkFormat                         format;
+    uint64_t                         externalFormat;
+    uint64_t                         screenUsage;
+    VkFormatFeatureFlags             formatFeatures;
+    VkComponentMapping               samplerYcbcrConversionComponents;
+    VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
+    VkSamplerYcbcrRange              suggestedYcbcrRange;
+    VkChromaLocation                 suggestedXChromaOffset;
+    VkChromaLocation                 suggestedYChromaOffset;
+} VkScreenBufferFormatPropertiesQNX;
+
+typedef struct VkImportScreenBufferInfoQNX {
+    VkStructureType           sType;
+    const void*               pNext;
+    struct _screen_buffer*    buffer;
+} VkImportScreenBufferInfoQNX;
+
+typedef struct VkExternalFormatQNX {
+    VkStructureType    sType;
+    void*              pNext;
+    uint64_t           externalFormat;
+} VkExternalFormatQNX;
+
+typedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           screenBufferImport;
+} VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetScreenBufferPropertiesQNX)(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetScreenBufferPropertiesQNX(
+    VkDevice                                    device,
+    const struct _screen_buffer*                buffer,
+    VkScreenBufferPropertiesQNX*                pProperties);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/vulkan/vulkan_shared.hpp b/include/vulkan/vulkan_shared.hpp
new file mode 100644
index 0000000..0843fe2
--- /dev/null
+++ b/include/vulkan/vulkan_shared.hpp
@@ -0,0 +1,1080 @@
+// Copyright 2015-2024 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+//
+
+// This header is generated from the Khronos Vulkan XML API Registry.
+
+#ifndef VULKAN_SHARED_HPP
+#define VULKAN_SHARED_HPP
+
+#include <atomic>  // std::atomic_size_t
+#include <vulkan/vulkan.hpp>
+
+namespace VULKAN_HPP_NAMESPACE
+{
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+
+  template <typename HandleType>
+  class SharedHandleTraits;
+
+  class NoDestructor
+  {
+  };
+
+  template <typename HandleType, typename = void>
+  struct HasDestructorType : std::false_type
+  {
+  };
+
+  template <typename HandleType>
+  struct HasDestructorType<HandleType, decltype( (void)typename SharedHandleTraits<HandleType>::DestructorType() )> : std::true_type
+  {
+  };
+
+  template <typename HandleType, typename Enable = void>
+  struct GetDestructorType
+  {
+    using type = NoDestructor;
+  };
+
+  template <typename HandleType>
+  struct GetDestructorType<HandleType, typename std::enable_if<HasDestructorType<HandleType>::value>::type>
+  {
+    using type = typename SharedHandleTraits<HandleType>::DestructorType;
+  };
+
+  template <class HandleType>
+  using DestructorTypeOf = typename GetDestructorType<HandleType>::type;
+
+  template <class HandleType>
+  struct HasDestructor : std::integral_constant<bool, !std::is_same<DestructorTypeOf<HandleType>, NoDestructor>::value>
+  {
+  };
+
+  //=====================================================================================================================
+
+  template <typename HandleType>
+  class SharedHandle;
+
+  template <typename DestructorType, typename Deleter>
+  struct SharedHeader
+  {
+    SharedHeader( SharedHandle<DestructorType> parent, Deleter deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
+      : parent( std::move( parent ) )
+      , deleter( std::move( deleter ) )
+    {
+    }
+
+    SharedHandle<DestructorType> parent;
+    Deleter                      deleter;
+  };
+
+  template <typename Deleter>
+  struct SharedHeader<NoDestructor, Deleter>
+  {
+    SharedHeader( Deleter deleter = Deleter() ) VULKAN_HPP_NOEXCEPT : deleter( std::move( deleter ) ) {}
+
+    Deleter deleter;
+  };
+
+  //=====================================================================================================================
+
+  template <typename HeaderType>
+  class ReferenceCounter
+  {
+  public:
+    template <typename... Args>
+    ReferenceCounter( Args &&... control_args ) : m_header( std::forward<Args>( control_args )... )
+    {
+    }
+
+    ReferenceCounter( const ReferenceCounter & )             = delete;
+    ReferenceCounter & operator=( const ReferenceCounter & ) = delete;
+
+  public:
+    size_t addRef() VULKAN_HPP_NOEXCEPT
+    {
+      // Relaxed memory order is sufficient since this does not impose any ordering on other operations
+      return m_ref_cnt.fetch_add( 1, std::memory_order_relaxed );
+    }
+
+    size_t release() VULKAN_HPP_NOEXCEPT
+    {
+      // A release memory order to ensure that all releases are ordered
+      return m_ref_cnt.fetch_sub( 1, std::memory_order_release );
+    }
+
+  public:
+    std::atomic_size_t m_ref_cnt{ 1 };
+    HeaderType         m_header{};
+  };
+
+  //=====================================================================================================================
+
+  template <typename HandleType, typename HeaderType, typename ForwardType = SharedHandle<HandleType>>
+  class SharedHandleBase
+  {
+  public:
+    SharedHandleBase() = default;
+
+    template <typename... Args>
+    SharedHandleBase( HandleType handle, Args &&... control_args )
+      : m_control( new ReferenceCounter<HeaderType>( std::forward<Args>( control_args )... ) ), m_handle( handle )
+    {
+    }
+
+    SharedHandleBase( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT
+    {
+      o.addRef();
+      m_handle  = o.m_handle;
+      m_control = o.m_control;
+    }
+
+    SharedHandleBase( SharedHandleBase && o ) VULKAN_HPP_NOEXCEPT
+      : m_control( o.m_control )
+      , m_handle( o.m_handle )
+    {
+      o.m_handle  = nullptr;
+      o.m_control = nullptr;
+    }
+
+    SharedHandleBase & operator=( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT
+    {
+      SharedHandleBase( o ).swap( *this );
+      return *this;
+    }
+
+    SharedHandleBase & operator=( SharedHandleBase && o ) VULKAN_HPP_NOEXCEPT
+    {
+      SharedHandleBase( std::move( o ) ).swap( *this );
+      return *this;
+    }
+
+    ~SharedHandleBase()
+    {
+      // only this function owns the last reference to the control block
+      // the same principle is used in the default deleter of std::shared_ptr
+      if ( m_control && ( m_control->release() == 1 ) )
+      {
+        // noop in x86, but does thread synchronization in ARM
+        // it is required to ensure that last thread is getting to destroy the control block
+        // by ordering all atomic operations before this fence
+        std::atomic_thread_fence( std::memory_order_acquire );
+        ForwardType::internalDestroy( getHeader(), m_handle );
+        delete m_control;
+      }
+    }
+
+  public:
+    HandleType get() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_handle;
+    }
+
+    HandleType operator*() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_handle;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return bool( m_handle );
+    }
+
+    const HandleType * operator->() const VULKAN_HPP_NOEXCEPT
+    {
+      return &m_handle;
+    }
+
+    HandleType * operator->() VULKAN_HPP_NOEXCEPT
+    {
+      return &m_handle;
+    }
+
+    void reset() VULKAN_HPP_NOEXCEPT
+    {
+      SharedHandleBase().swap( *this );
+    }
+
+    void swap( SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT
+    {
+      std::swap( m_handle, o.m_handle );
+      std::swap( m_control, o.m_control );
+    }
+
+    template <typename T = HandleType>
+    typename std::enable_if<HasDestructor<T>::value, const SharedHandle<DestructorTypeOf<HandleType>> &>::type getDestructorType() const VULKAN_HPP_NOEXCEPT
+    {
+      return getHeader().parent;
+    }
+
+  protected:
+    template <typename T = HandleType>
+    static typename std::enable_if<!HasDestructor<T>::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT
+    {
+      control.deleter.destroy( handle );
+    }
+
+    template <typename T = HandleType>
+    static typename std::enable_if<HasDestructor<T>::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT
+    {
+      control.deleter.destroy( control.parent.get(), handle );
+    }
+
+    const HeaderType & getHeader() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_control->m_header;
+    }
+
+  private:
+    void addRef() const VULKAN_HPP_NOEXCEPT
+    {
+      if ( m_control )
+        m_control->addRef();
+    }
+
+  protected:
+    ReferenceCounter<HeaderType> * m_control = nullptr;
+    HandleType                     m_handle{};
+  };
+
+  template <typename HandleType>
+  class SharedHandle : public SharedHandleBase<HandleType, SharedHeader<DestructorTypeOf<HandleType>, typename SharedHandleTraits<HandleType>::deleter>>
+  {
+  private:
+    using BaseType    = SharedHandleBase<HandleType, SharedHeader<DestructorTypeOf<HandleType>, typename SharedHandleTraits<HandleType>::deleter>>;
+    using DeleterType = typename SharedHandleTraits<HandleType>::deleter;
+    friend BaseType;
+
+  public:
+    SharedHandle() = default;
+
+    template <typename T = HandleType, typename = typename std::enable_if<HasDestructor<T>::value>::type>
+    explicit SharedHandle( HandleType handle, SharedHandle<DestructorTypeOf<HandleType>> parent, DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT
+      : BaseType( handle, std::move( parent ), std::move( deleter ) )
+    {
+    }
+
+    template <typename T = HandleType, typename = typename std::enable_if<!HasDestructor<T>::value>::type>
+    explicit SharedHandle( HandleType handle, DeleterType deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT : BaseType( handle, std::move( deleter ) )
+    {
+    }
+
+  protected:
+    using BaseType::internalDestroy;
+  };
+
+  template <typename HandleType>
+  class SharedHandleTraits;
+
+// Silence the function cast warnings.
+#  if defined( __GNUC__ ) && !defined( __clang__ ) && !defined( __INTEL_COMPILER )
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wcast-function-type"
+#  endif
+
+  template <typename HandleType>
+  class ObjectDestroyShared
+  {
+  public:
+    using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
+
+    template <class Dispatcher>
+    using DestroyFunctionPointerType =
+      typename std::conditional<HasDestructor<HandleType>::value,
+                                void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const,
+                                void ( HandleType::* )( const AllocationCallbacks *, const Dispatcher & ) const>::type;
+
+    using SelectorType = typename std::conditional<HasDestructor<HandleType>::value, DestructorType, HandleType>::type;
+
+    template <typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    ObjectDestroyShared( Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                         const Dispatcher & dispatch                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
+      : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType<Dispatcher>>( &SelectorType::destroy ) ) )
+      , m_dispatch( &dispatch )
+      , m_allocationCallbacks( allocationCallbacks )
+    {
+    }
+
+  public:
+    template <typename T = HandleType>
+    typename std::enable_if<HasDestructor<T>::value, void>::type destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( m_destroy && m_dispatch );
+      ( parent.*m_destroy )( handle, m_allocationCallbacks, *m_dispatch );
+    }
+
+    template <typename T = HandleType>
+    typename std::enable_if<!HasDestructor<T>::value, void>::type destroy( HandleType handle ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( m_destroy && m_dispatch );
+      ( handle.*m_destroy )( m_allocationCallbacks, *m_dispatch );
+    }
+
+  private:
+    DestroyFunctionPointerType<DispatchLoaderBase> m_destroy             = nullptr;
+    const DispatchLoaderBase *                     m_dispatch            = nullptr;
+    Optional<const AllocationCallbacks>            m_allocationCallbacks = nullptr;
+  };
+
+  template <typename HandleType>
+  class ObjectFreeShared
+  {
+  public:
+    using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
+
+    template <class Dispatcher>
+    using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const;
+
+    template <class Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    ObjectFreeShared( Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                      const Dispatcher & dispatch                             VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
+      : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType<Dispatcher>>( &DestructorType::free ) ) )
+      , m_dispatch( &dispatch )
+      , m_allocationCallbacks( allocationCallbacks )
+    {
+    }
+
+  public:
+    void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( m_destroy && m_dispatch );
+      ( parent.*m_destroy )( handle, m_allocationCallbacks, *m_dispatch );
+    }
+
+  private:
+    DestroyFunctionPointerType<DispatchLoaderBase> m_destroy             = nullptr;
+    const DispatchLoaderBase *                     m_dispatch            = nullptr;
+    Optional<const AllocationCallbacks>            m_allocationCallbacks = nullptr;
+  };
+
+  template <typename HandleType>
+  class ObjectReleaseShared
+  {
+  public:
+    using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
+
+    template <class Dispatcher>
+    using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const Dispatcher & ) const;
+
+    template <class Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    ObjectReleaseShared( const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
+      : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType<Dispatcher>>( &DestructorType::release ) ) )
+      , m_dispatch( &dispatch )
+    {
+    }
+
+  public:
+    void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( m_destroy && m_dispatch );
+      ( parent.*m_destroy )( handle, *m_dispatch );
+    }
+
+  private:
+    DestroyFunctionPointerType<DispatchLoaderBase> m_destroy  = nullptr;
+    const DispatchLoaderBase *                     m_dispatch = nullptr;
+  };
+
+  template <typename HandleType, typename PoolType>
+  class PoolFreeShared
+  {
+  public:
+    using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
+
+    template <class Dispatcher>
+    using ReturnType = decltype( std::declval<DestructorType>().free( PoolType(), 0u, nullptr, Dispatcher() ) );
+
+    template <class Dispatcher>
+    using DestroyFunctionPointerType = ReturnType<Dispatcher> ( DestructorType::* )( PoolType, uint32_t, const HandleType *, const Dispatcher & ) const;
+
+    PoolFreeShared() = default;
+
+    template <class Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    PoolFreeShared( SharedHandle<PoolType> pool, const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
+      : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType<Dispatcher>>( &DestructorType::free ) ) )
+      , m_dispatch( &dispatch )
+      , m_pool( std::move( pool ) )
+    {
+    }
+
+  public:
+    void destroy( DestructorType parent, HandleType handle ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( m_destroy && m_dispatch );
+      ( parent.*m_destroy )( m_pool.get(), 1u, &handle, *m_dispatch );
+    }
+
+  private:
+    DestroyFunctionPointerType<DispatchLoaderBase> m_destroy  = nullptr;
+    const DispatchLoaderBase *                     m_dispatch = nullptr;
+    SharedHandle<PoolType>                         m_pool{};
+  };
+
+#  if defined( __GNUC__ ) && !defined( __clang__ ) && !defined( __INTEL_COMPILER )
+#    pragma GCC diagnostic pop
+#  endif
+
+  //======================
+  //=== SHARED HANDLEs ===
+  //======================
+
+  //=== VK_VERSION_1_0 ===
+  template <>
+  class SharedHandleTraits<Instance>
+  {
+  public:
+    using DestructorType = NoDestructor;
+    using deleter        = ObjectDestroyShared<Instance>;
+  };
+
+  using SharedInstance = SharedHandle<Instance>;
+
+  template <>
+  class SharedHandleTraits<Device>
+  {
+  public:
+    using DestructorType = NoDestructor;
+    using deleter        = ObjectDestroyShared<Device>;
+  };
+
+  using SharedDevice = SharedHandle<Device>;
+
+  template <>
+  class SharedHandleTraits<DeviceMemory>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectFreeShared<DeviceMemory>;
+  };
+
+  using SharedDeviceMemory = SharedHandle<DeviceMemory>;
+
+  template <>
+  class SharedHandleTraits<Fence>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Fence>;
+  };
+
+  using SharedFence = SharedHandle<Fence>;
+
+  template <>
+  class SharedHandleTraits<Semaphore>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Semaphore>;
+  };
+
+  using SharedSemaphore = SharedHandle<Semaphore>;
+
+  template <>
+  class SharedHandleTraits<Event>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Event>;
+  };
+
+  using SharedEvent = SharedHandle<Event>;
+
+  template <>
+  class SharedHandleTraits<QueryPool>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<QueryPool>;
+  };
+
+  using SharedQueryPool = SharedHandle<QueryPool>;
+
+  template <>
+  class SharedHandleTraits<Buffer>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Buffer>;
+  };
+
+  using SharedBuffer = SharedHandle<Buffer>;
+
+  template <>
+  class SharedHandleTraits<BufferView>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<BufferView>;
+  };
+
+  using SharedBufferView = SharedHandle<BufferView>;
+
+  template <>
+  class SharedHandleTraits<Image>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Image>;
+  };
+
+  using SharedImage = SharedHandle<Image>;
+
+  template <>
+  class SharedHandleTraits<ImageView>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<ImageView>;
+  };
+
+  using SharedImageView = SharedHandle<ImageView>;
+
+  template <>
+  class SharedHandleTraits<ShaderModule>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<ShaderModule>;
+  };
+
+  using SharedShaderModule = SharedHandle<ShaderModule>;
+
+  template <>
+  class SharedHandleTraits<PipelineCache>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<PipelineCache>;
+  };
+
+  using SharedPipelineCache = SharedHandle<PipelineCache>;
+
+  template <>
+  class SharedHandleTraits<Pipeline>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Pipeline>;
+  };
+
+  using SharedPipeline = SharedHandle<Pipeline>;
+
+  template <>
+  class SharedHandleTraits<PipelineLayout>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<PipelineLayout>;
+  };
+
+  using SharedPipelineLayout = SharedHandle<PipelineLayout>;
+
+  template <>
+  class SharedHandleTraits<Sampler>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Sampler>;
+  };
+
+  using SharedSampler = SharedHandle<Sampler>;
+
+  template <>
+  class SharedHandleTraits<DescriptorPool>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<DescriptorPool>;
+  };
+
+  using SharedDescriptorPool = SharedHandle<DescriptorPool>;
+
+  template <>
+  class SharedHandleTraits<DescriptorSet>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = PoolFreeShared<DescriptorSet, DescriptorPool>;
+  };
+
+  using SharedDescriptorSet = SharedHandle<DescriptorSet>;
+
+  template <>
+  class SharedHandleTraits<DescriptorSetLayout>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<DescriptorSetLayout>;
+  };
+
+  using SharedDescriptorSetLayout = SharedHandle<DescriptorSetLayout>;
+
+  template <>
+  class SharedHandleTraits<Framebuffer>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<Framebuffer>;
+  };
+
+  using SharedFramebuffer = SharedHandle<Framebuffer>;
+
+  template <>
+  class SharedHandleTraits<RenderPass>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<RenderPass>;
+  };
+
+  using SharedRenderPass = SharedHandle<RenderPass>;
+
+  template <>
+  class SharedHandleTraits<CommandPool>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<CommandPool>;
+  };
+
+  using SharedCommandPool = SharedHandle<CommandPool>;
+
+  template <>
+  class SharedHandleTraits<CommandBuffer>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = PoolFreeShared<CommandBuffer, CommandPool>;
+  };
+
+  using SharedCommandBuffer = SharedHandle<CommandBuffer>;
+
+  //=== VK_VERSION_1_1 ===
+  template <>
+  class SharedHandleTraits<SamplerYcbcrConversion>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<SamplerYcbcrConversion>;
+  };
+
+  using SharedSamplerYcbcrConversion    = SharedHandle<SamplerYcbcrConversion>;
+  using SharedSamplerYcbcrConversionKHR = SharedHandle<SamplerYcbcrConversion>;
+
+  template <>
+  class SharedHandleTraits<DescriptorUpdateTemplate>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<DescriptorUpdateTemplate>;
+  };
+
+  using SharedDescriptorUpdateTemplate    = SharedHandle<DescriptorUpdateTemplate>;
+  using SharedDescriptorUpdateTemplateKHR = SharedHandle<DescriptorUpdateTemplate>;
+
+  //=== VK_VERSION_1_3 ===
+  template <>
+  class SharedHandleTraits<PrivateDataSlot>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<PrivateDataSlot>;
+  };
+
+  using SharedPrivateDataSlot    = SharedHandle<PrivateDataSlot>;
+  using SharedPrivateDataSlotEXT = SharedHandle<PrivateDataSlot>;
+
+  //=== VK_KHR_surface ===
+  template <>
+  class SharedHandleTraits<SurfaceKHR>
+  {
+  public:
+    using DestructorType = Instance;
+    using deleter        = ObjectDestroyShared<SurfaceKHR>;
+  };
+
+  using SharedSurfaceKHR = SharedHandle<SurfaceKHR>;
+
+  //=== VK_KHR_swapchain ===
+  template <>
+  class SharedHandleTraits<SwapchainKHR>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<SwapchainKHR>;
+  };
+
+  using SharedSwapchainKHR = SharedHandle<SwapchainKHR>;
+
+  //=== VK_KHR_display ===
+  template <>
+  class SharedHandleTraits<DisplayKHR>
+  {
+  public:
+    using DestructorType = PhysicalDevice;
+    using deleter        = ObjectDestroyShared<DisplayKHR>;
+  };
+
+  using SharedDisplayKHR = SharedHandle<DisplayKHR>;
+
+  //=== VK_EXT_debug_report ===
+  template <>
+  class SharedHandleTraits<DebugReportCallbackEXT>
+  {
+  public:
+    using DestructorType = Instance;
+    using deleter        = ObjectDestroyShared<DebugReportCallbackEXT>;
+  };
+
+  using SharedDebugReportCallbackEXT = SharedHandle<DebugReportCallbackEXT>;
+
+  //=== VK_KHR_video_queue ===
+  template <>
+  class SharedHandleTraits<VideoSessionKHR>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<VideoSessionKHR>;
+  };
+
+  using SharedVideoSessionKHR = SharedHandle<VideoSessionKHR>;
+
+  template <>
+  class SharedHandleTraits<VideoSessionParametersKHR>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<VideoSessionParametersKHR>;
+  };
+
+  using SharedVideoSessionParametersKHR = SharedHandle<VideoSessionParametersKHR>;
+
+  //=== VK_NVX_binary_import ===
+  template <>
+  class SharedHandleTraits<CuModuleNVX>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<CuModuleNVX>;
+  };
+
+  using SharedCuModuleNVX = SharedHandle<CuModuleNVX>;
+
+  template <>
+  class SharedHandleTraits<CuFunctionNVX>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<CuFunctionNVX>;
+  };
+
+  using SharedCuFunctionNVX = SharedHandle<CuFunctionNVX>;
+
+  //=== VK_EXT_debug_utils ===
+  template <>
+  class SharedHandleTraits<DebugUtilsMessengerEXT>
+  {
+  public:
+    using DestructorType = Instance;
+    using deleter        = ObjectDestroyShared<DebugUtilsMessengerEXT>;
+  };
+
+  using SharedDebugUtilsMessengerEXT = SharedHandle<DebugUtilsMessengerEXT>;
+
+  //=== VK_KHR_acceleration_structure ===
+  template <>
+  class SharedHandleTraits<AccelerationStructureKHR>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<AccelerationStructureKHR>;
+  };
+
+  using SharedAccelerationStructureKHR = SharedHandle<AccelerationStructureKHR>;
+
+  //=== VK_EXT_validation_cache ===
+  template <>
+  class SharedHandleTraits<ValidationCacheEXT>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<ValidationCacheEXT>;
+  };
+
+  using SharedValidationCacheEXT = SharedHandle<ValidationCacheEXT>;
+
+  //=== VK_NV_ray_tracing ===
+  template <>
+  class SharedHandleTraits<AccelerationStructureNV>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<AccelerationStructureNV>;
+  };
+
+  using SharedAccelerationStructureNV = SharedHandle<AccelerationStructureNV>;
+
+  //=== VK_INTEL_performance_query ===
+  template <>
+  class SharedHandleTraits<PerformanceConfigurationINTEL>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<PerformanceConfigurationINTEL>;
+  };
+
+  using SharedPerformanceConfigurationINTEL = SharedHandle<PerformanceConfigurationINTEL>;
+
+  //=== VK_KHR_deferred_host_operations ===
+  template <>
+  class SharedHandleTraits<DeferredOperationKHR>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<DeferredOperationKHR>;
+  };
+
+  using SharedDeferredOperationKHR = SharedHandle<DeferredOperationKHR>;
+
+  //=== VK_NV_device_generated_commands ===
+  template <>
+  class SharedHandleTraits<IndirectCommandsLayoutNV>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<IndirectCommandsLayoutNV>;
+  };
+
+  using SharedIndirectCommandsLayoutNV = SharedHandle<IndirectCommandsLayoutNV>;
+
+#  if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_cuda_kernel_launch ===
+  template <>
+  class SharedHandleTraits<CudaModuleNV>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<CudaModuleNV>;
+  };
+
+  using SharedCudaModuleNV = SharedHandle<CudaModuleNV>;
+
+  template <>
+  class SharedHandleTraits<CudaFunctionNV>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<CudaFunctionNV>;
+  };
+
+  using SharedCudaFunctionNV = SharedHandle<CudaFunctionNV>;
+#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#  if defined( VK_USE_PLATFORM_FUCHSIA )
+  //=== VK_FUCHSIA_buffer_collection ===
+  template <>
+  class SharedHandleTraits<BufferCollectionFUCHSIA>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<BufferCollectionFUCHSIA>;
+  };
+
+  using SharedBufferCollectionFUCHSIA = SharedHandle<BufferCollectionFUCHSIA>;
+#  endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+  //=== VK_EXT_opacity_micromap ===
+  template <>
+  class SharedHandleTraits<MicromapEXT>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<MicromapEXT>;
+  };
+
+  using SharedMicromapEXT = SharedHandle<MicromapEXT>;
+
+  //=== VK_NV_optical_flow ===
+  template <>
+  class SharedHandleTraits<OpticalFlowSessionNV>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<OpticalFlowSessionNV>;
+  };
+
+  using SharedOpticalFlowSessionNV = SharedHandle<OpticalFlowSessionNV>;
+
+  //=== VK_EXT_shader_object ===
+  template <>
+  class SharedHandleTraits<ShaderEXT>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<ShaderEXT>;
+  };
+
+  using SharedShaderEXT = SharedHandle<ShaderEXT>;
+
+  enum class SwapchainOwns
+  {
+    no,
+    yes,
+  };
+
+  struct ImageHeader : SharedHeader<DestructorTypeOf<VULKAN_HPP_NAMESPACE::Image>, typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::Image>::deleter>
+  {
+    ImageHeader(
+      SharedHandle<DestructorTypeOf<VULKAN_HPP_NAMESPACE::Image>>       parent,
+      typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::Image>::deleter deleter        = typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::Image>::deleter(),
+      SwapchainOwns                                                     swapchainOwned = SwapchainOwns::no ) VULKAN_HPP_NOEXCEPT
+      : SharedHeader<DestructorTypeOf<VULKAN_HPP_NAMESPACE::Image>, typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::Image>::deleter>( std::move( parent ),
+                                                                                                                                        std::move( deleter ) )
+      , swapchainOwned( swapchainOwned )
+    {
+    }
+
+    SwapchainOwns swapchainOwned = SwapchainOwns::no;
+  };
+
+  template <>
+  class SharedHandle<VULKAN_HPP_NAMESPACE::Image> : public SharedHandleBase<VULKAN_HPP_NAMESPACE::Image, ImageHeader>
+  {
+    using BaseType    = SharedHandleBase<VULKAN_HPP_NAMESPACE::Image, ImageHeader>;
+    using DeleterType = typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::Image>::deleter;
+    friend BaseType;
+
+  public:
+    SharedHandle() = default;
+
+    explicit SharedHandle( VULKAN_HPP_NAMESPACE::Image                                 handle,
+                           SharedHandle<DestructorTypeOf<VULKAN_HPP_NAMESPACE::Image>> parent,
+                           SwapchainOwns                                               swapchain_owned = SwapchainOwns::no,
+                           DeleterType                                                 deleter         = DeleterType() ) VULKAN_HPP_NOEXCEPT
+      : BaseType( handle, std::move( parent ), std::move( deleter ), swapchain_owned )
+    {
+    }
+
+  protected:
+    static void internalDestroy( const ImageHeader & control, VULKAN_HPP_NAMESPACE::Image handle ) VULKAN_HPP_NOEXCEPT
+    {
+      if ( control.swapchainOwned == SwapchainOwns::no )
+      {
+        control.deleter.destroy( control.parent.get(), handle );
+      }
+    }
+  };
+
+  struct SwapchainHeader
+  {
+    SwapchainHeader( SharedHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR>                           surface,
+                     SharedHandle<DestructorTypeOf<VULKAN_HPP_NAMESPACE::SwapchainKHR>>       parent,
+                     typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::SwapchainKHR>::deleter deleter =
+                       typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::SwapchainKHR>::deleter() ) VULKAN_HPP_NOEXCEPT
+      : surface( std::move( surface ) )
+      , parent( std::move( parent ) )
+      , deleter( std::move( deleter ) )
+    {
+    }
+
+    SharedHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR>                           surface{};
+    SharedHandle<DestructorTypeOf<VULKAN_HPP_NAMESPACE::SwapchainKHR>>       parent{};
+    typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::SwapchainKHR>::deleter deleter{};
+  };
+
+  template <>
+  class SharedHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR> : public SharedHandleBase<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainHeader>
+  {
+    using BaseType    = SharedHandleBase<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainHeader>;
+    using DeleterType = typename SharedHandleTraits<VULKAN_HPP_NAMESPACE::SwapchainKHR>::deleter;
+    friend BaseType;
+
+  public:
+    SharedHandle() = default;
+
+    explicit SharedHandle( VULKAN_HPP_NAMESPACE::SwapchainKHR                                 handle,
+                           SharedHandle<DestructorTypeOf<VULKAN_HPP_NAMESPACE::SwapchainKHR>> parent,
+                           SharedHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR>                     surface,
+                           DeleterType                                                        deleter = DeleterType() ) VULKAN_HPP_NOEXCEPT
+      : BaseType( handle, std::move( surface ), std::move( parent ), std::move( deleter ) )
+    {
+    }
+
+  public:
+    const SharedHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR> & getSurface() const VULKAN_HPP_NOEXCEPT
+    {
+      return getHeader().surface;
+    }
+
+  protected:
+    using BaseType::internalDestroy;
+  };
+
+  template <typename HandleType, typename DestructorType>
+  class SharedHandleBaseNoDestroy : public SharedHandleBase<HandleType, DestructorType>
+  {
+  public:
+    using SharedHandleBase<HandleType, DestructorType>::SharedHandleBase;
+
+    const DestructorType & getDestructorType() const VULKAN_HPP_NOEXCEPT
+    {
+      return SharedHandleBase<HandleType, DestructorType>::getHeader();
+    }
+
+  protected:
+    static void internalDestroy( const DestructorType &, HandleType ) VULKAN_HPP_NOEXCEPT {}
+  };
+
+  //=== VK_VERSION_1_0 ===
+
+  template <>
+  class SharedHandle<PhysicalDevice> : public SharedHandleBaseNoDestroy<PhysicalDevice, SharedInstance>
+  {
+    friend SharedHandleBase<PhysicalDevice, SharedInstance>;
+
+  public:
+    SharedHandle() = default;
+
+    explicit SharedHandle( PhysicalDevice handle, SharedInstance parent ) noexcept
+      : SharedHandleBaseNoDestroy<PhysicalDevice, SharedInstance>( handle, std::move( parent ) )
+    {
+    }
+  };
+
+  using SharedPhysicalDevice = SharedHandle<PhysicalDevice>;
+
+  template <>
+  class SharedHandle<Queue> : public SharedHandleBaseNoDestroy<Queue, SharedDevice>
+  {
+    friend SharedHandleBase<Queue, SharedDevice>;
+
+  public:
+    SharedHandle() = default;
+
+    explicit SharedHandle( Queue handle, SharedDevice parent ) noexcept : SharedHandleBaseNoDestroy<Queue, SharedDevice>( handle, std::move( parent ) ) {}
+  };
+
+  using SharedQueue = SharedHandle<Queue>;
+
+  //=== VK_KHR_display ===
+
+  template <>
+  class SharedHandle<DisplayModeKHR> : public SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>
+  {
+    friend SharedHandleBase<DisplayModeKHR, SharedDisplayKHR>;
+
+  public:
+    SharedHandle() = default;
+
+    explicit SharedHandle( DisplayModeKHR handle, SharedDisplayKHR parent ) noexcept
+      : SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>( handle, std::move( parent ) )
+    {
+    }
+  };
+
+  using SharedDisplayModeKHR = SharedHandle<DisplayModeKHR>;
+#endif  // !VULKAN_HPP_NO_SMART_HANDLE
+}  // namespace VULKAN_HPP_NAMESPACE
+#endif  // VULKAN_SHARED_HPP
diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp
index 4160be8..368e1cc 100644
--- a/include/vulkan/vulkan_static_assertions.hpp
+++ b/include/vulkan/vulkan_static_assertions.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -2000,7 +2000,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT>::value,
                           "DebugMarkerMarkerInfoEXT is not nothrow_move_constructible!" );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
 //=== VK_KHR_video_queue ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoSessionKHR ) == sizeof( VkVideoSessionKHR ), "handle and wrapper have different size!" );
@@ -2114,9 +2113,7 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR>::value, "struct wrapper is not a standard layout!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR>::value,
                           "VideoCodingControlInfoKHR is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
 //=== VK_KHR_video_decode_queue ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR ) == sizeof( VkVideoDecodeCapabilitiesKHR ),
@@ -2135,7 +2132,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR>::value, "struct wrapper is not a standard layout!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR>::value,
                           "VideoDecodeInfoKHR is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 //=== VK_NV_dedicated_allocation ===
 
@@ -2224,225 +2220,261 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::value,
                           "ImageViewAddressPropertiesNVX is not nothrow_move_constructible!" );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-//=== VK_EXT_video_encode_h264 ===
+//=== VK_KHR_video_encode_h264 ===
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT ) == sizeof( VkVideoEncodeH264CapabilitiesEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR ) == sizeof( VkVideoEncodeH264CapabilitiesKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT>::value,
-                          "VideoEncodeH264CapabilitiesEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR>::value,
+                          "VideoEncodeH264CapabilitiesKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT ) ==
-                            sizeof( VkVideoEncodeH264SessionParametersCreateInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR ) == sizeof( VkVideoEncodeH264QualityLevelPropertiesKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT>::value,
-                          "VideoEncodeH264SessionParametersCreateInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR>::value,
+                          "VideoEncodeH264QualityLevelPropertiesKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT ) == sizeof( VkVideoEncodeH264SessionParametersAddInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR ) == sizeof( VkVideoEncodeH264SessionCreateInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
-                          "VideoEncodeH264SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR>::value,
+                          "VideoEncodeH264SessionCreateInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT ) == sizeof( VkVideoEncodeH264VclFrameInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR ) ==
+                            sizeof( VkVideoEncodeH264SessionParametersCreateInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT>::value,
-                          "VideoEncodeH264VclFrameInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT ) == sizeof( VkVideoEncodeH264ReferenceListsInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT>::value,
-                          "VideoEncodeH264ReferenceListsInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR>::value,
+                          "VideoEncodeH264SessionParametersCreateInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT ) ==
-                            sizeof( VkVideoEncodeH264EmitPictureParametersInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR ) == sizeof( VkVideoEncodeH264SessionParametersAddInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT>::value,
-                          "VideoEncodeH264EmitPictureParametersInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR>::value,
+                          "VideoEncodeH264SessionParametersAddInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT ) == sizeof( VkVideoEncodeH264DpbSlotInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR ) == sizeof( VkVideoEncodeH264SessionParametersGetInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT>::value,
-                          "VideoEncodeH264DpbSlotInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT ) == sizeof( VkVideoEncodeH264NaluSliceInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT>::value,
-                          "VideoEncodeH264NaluSliceInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT ) == sizeof( VkVideoEncodeH264ProfileInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT>::value,
-                          "VideoEncodeH264ProfileInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT ) == sizeof( VkVideoEncodeH264RateControlInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>::value,
-                          "VideoEncodeH264RateControlInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT ) == sizeof( VkVideoEncodeH264RateControlLayerInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>::value,
-                          "VideoEncodeH264RateControlLayerInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR>::value,
+                          "VideoEncodeH264SessionParametersGetInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT ) == sizeof( VkVideoEncodeH264QpEXT ), "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>::value,
-                          "VideoEncodeH264QpEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT ) == sizeof( VkVideoEncodeH264FrameSizeEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR ) ==
+                            sizeof( VkVideoEncodeH264SessionParametersFeedbackInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>::value,
-                          "VideoEncodeH264FrameSizeEXT is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-//=== VK_EXT_video_encode_h265 ===
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT ) == sizeof( VkVideoEncodeH265CapabilitiesEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT>::value,
-                          "VideoEncodeH265CapabilitiesEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT ) ==
-                            sizeof( VkVideoEncodeH265SessionParametersCreateInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT>::value,
-                          "VideoEncodeH265SessionParametersCreateInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR>::value,
+                          "VideoEncodeH264SessionParametersFeedbackInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT ) == sizeof( VkVideoEncodeH265SessionParametersAddInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR ) == sizeof( VkVideoEncodeH264PictureInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR>::value,
+                          "VideoEncodeH264PictureInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR ) == sizeof( VkVideoEncodeH264DpbSlotInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR>::value,
+                          "VideoEncodeH264DpbSlotInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR ) == sizeof( VkVideoEncodeH264NaluSliceInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR>::value,
+                          "VideoEncodeH264NaluSliceInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR ) == sizeof( VkVideoEncodeH264ProfileInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR>::value,
+                          "VideoEncodeH264ProfileInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR ) == sizeof( VkVideoEncodeH264RateControlInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR>::value,
+                          "VideoEncodeH264RateControlInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR ) == sizeof( VkVideoEncodeH264RateControlLayerInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT>::value,
-                          "VideoEncodeH265SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR>::value,
+                          "VideoEncodeH264RateControlLayerInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT ) == sizeof( VkVideoEncodeH265VclFrameInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT>::value,
-                          "VideoEncodeH265VclFrameInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR ) == sizeof( VkVideoEncodeH264QpKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR>::value,
+                          "VideoEncodeH264QpKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT ) ==
-                            sizeof( VkVideoEncodeH265EmitPictureParametersInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR ) == sizeof( VkVideoEncodeH264FrameSizeKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR>::value,
+                          "VideoEncodeH264FrameSizeKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR ) == sizeof( VkVideoEncodeH264GopRemainingFrameInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT>::value,
-                          "VideoEncodeH265EmitPictureParametersInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR>::value,
+                          "VideoEncodeH264GopRemainingFrameInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT ) == sizeof( VkVideoEncodeH265DpbSlotInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT>::value,
-                          "VideoEncodeH265DpbSlotInfoEXT is not nothrow_move_constructible!" );
+//=== VK_KHR_video_encode_h265 ===
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT ) == sizeof( VkVideoEncodeH265NaluSliceSegmentInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR ) == sizeof( VkVideoEncodeH265CapabilitiesKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR>::value,
+                          "VideoEncodeH265CapabilitiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR ) == sizeof( VkVideoEncodeH265SessionCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT>::value,
-                          "VideoEncodeH265NaluSliceSegmentInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR>::value,
+                          "VideoEncodeH265SessionCreateInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT ) == sizeof( VkVideoEncodeH265ProfileInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR ) == sizeof( VkVideoEncodeH265QualityLevelPropertiesKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT>::value,
-                          "VideoEncodeH265ProfileInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT ) == sizeof( VkVideoEncodeH265ReferenceListsInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT>::value,
-                          "VideoEncodeH265ReferenceListsInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR>::value,
+                          "VideoEncodeH265QualityLevelPropertiesKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT ) == sizeof( VkVideoEncodeH265RateControlInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR ) ==
+                            sizeof( VkVideoEncodeH265SessionParametersCreateInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>::value,
-                          "VideoEncodeH265RateControlInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT ) == sizeof( VkVideoEncodeH265RateControlLayerInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>::value,
-                          "VideoEncodeH265RateControlLayerInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR>::value,
+                          "VideoEncodeH265SessionParametersCreateInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT ) == sizeof( VkVideoEncodeH265QpEXT ), "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>::value,
-                          "VideoEncodeH265QpEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT ) == sizeof( VkVideoEncodeH265FrameSizeEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR ) == sizeof( VkVideoEncodeH265SessionParametersAddInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>::value,
-                          "VideoEncodeH265FrameSizeEXT is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-//=== VK_EXT_video_decode_h264 ===
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT ) == sizeof( VkVideoDecodeH264ProfileInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT>::value,
-                          "VideoDecodeH264ProfileInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT ) == sizeof( VkVideoDecodeH264CapabilitiesEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT>::value,
-                          "VideoDecodeH264CapabilitiesEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT ) ==
-                            sizeof( VkVideoDecodeH264SessionParametersCreateInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT>::value,
-                          "VideoDecodeH264SessionParametersCreateInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR>::value,
+                          "VideoEncodeH265SessionParametersAddInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT ) == sizeof( VkVideoDecodeH264SessionParametersAddInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR ) == sizeof( VkVideoEncodeH265SessionParametersGetInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT>::value,
-                          "VideoDecodeH264SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR>::value,
+                          "VideoEncodeH265SessionParametersGetInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT ) == sizeof( VkVideoDecodeH264PictureInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR ) ==
+                            sizeof( VkVideoEncodeH265SessionParametersFeedbackInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT>::value,
-                          "VideoDecodeH264PictureInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR>::value,
+                          "VideoEncodeH265SessionParametersFeedbackInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT ) == sizeof( VkVideoDecodeH264DpbSlotInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR ) == sizeof( VkVideoEncodeH265PictureInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT>::value,
-                          "VideoDecodeH264DpbSlotInfoEXT is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR>::value,
+                          "VideoEncodeH265PictureInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR ) == sizeof( VkVideoEncodeH265DpbSlotInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR>::value,
+                          "VideoEncodeH265DpbSlotInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR ) == sizeof( VkVideoEncodeH265NaluSliceSegmentInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR>::value,
+                          "VideoEncodeH265NaluSliceSegmentInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR ) == sizeof( VkVideoEncodeH265ProfileInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR>::value,
+                          "VideoEncodeH265ProfileInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR ) == sizeof( VkVideoEncodeH265RateControlInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR>::value,
+                          "VideoEncodeH265RateControlInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR ) == sizeof( VkVideoEncodeH265RateControlLayerInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR>::value,
+                          "VideoEncodeH265RateControlLayerInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR ) == sizeof( VkVideoEncodeH265QpKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR>::value,
+                          "VideoEncodeH265QpKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR ) == sizeof( VkVideoEncodeH265FrameSizeKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR>::value,
+                          "VideoEncodeH265FrameSizeKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR ) == sizeof( VkVideoEncodeH265GopRemainingFrameInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR>::value,
+                          "VideoEncodeH265GopRemainingFrameInfoKHR is not nothrow_move_constructible!" );
+
+//=== VK_KHR_video_decode_h264 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR ) == sizeof( VkVideoDecodeH264ProfileInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR>::value,
+                          "VideoDecodeH264ProfileInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR ) == sizeof( VkVideoDecodeH264CapabilitiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR>::value,
+                          "VideoDecodeH264CapabilitiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR ) ==
+                            sizeof( VkVideoDecodeH264SessionParametersCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR>::value,
+                          "VideoDecodeH264SessionParametersCreateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR ) == sizeof( VkVideoDecodeH264SessionParametersAddInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR>::value,
+                          "VideoDecodeH264SessionParametersAddInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR ) == sizeof( VkVideoDecodeH264PictureInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR>::value,
+                          "VideoDecodeH264PictureInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR ) == sizeof( VkVideoDecodeH264DpbSlotInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR>::value,
+                          "VideoDecodeH264DpbSlotInfoKHR is not nothrow_move_constructible!" );
 
 //=== VK_AMD_texture_gather_bias_lod ===
 
@@ -2928,6 +2960,16 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::XYColorEXT>::value, "struct wrapper is not a standard layout!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::XYColorEXT>::value, "XYColorEXT is not nothrow_move_constructible!" );
 
+//=== VK_IMG_relaxed_line_rasterization ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG ) ==
+                            sizeof( VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG>::value,
+                          "PhysicalDeviceRelaxedLineRasterizationFeaturesIMG is not nothrow_move_constructible!" );
+
 //=== VK_KHR_shared_presentable_image ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ),
@@ -3184,6 +3226,63 @@
                           "AndroidHardwareBufferFormatProperties2ANDROID is not nothrow_move_constructible!" );
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+//=== VK_AMDX_shader_enqueue ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX ) == sizeof( VkPhysicalDeviceShaderEnqueueFeaturesAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX>::value,
+                          "PhysicalDeviceShaderEnqueueFeaturesAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX ) == sizeof( VkPhysicalDeviceShaderEnqueuePropertiesAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX>::value,
+                          "PhysicalDeviceShaderEnqueuePropertiesAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX ) == sizeof( VkExecutionGraphPipelineScratchSizeAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>::value,
+                          "ExecutionGraphPipelineScratchSizeAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX ) == sizeof( VkExecutionGraphPipelineCreateInfoAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX>::value,
+                          "ExecutionGraphPipelineCreateInfoAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX ) == sizeof( VkDispatchGraphInfoAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX>::value,
+                          "DispatchGraphInfoAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX ) == sizeof( VkDispatchGraphCountInfoAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX>::value,
+                          "DispatchGraphCountInfoAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX ) == sizeof( VkPipelineShaderStageNodeCreateInfoAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX>::value,
+                          "PipelineShaderStageNodeCreateInfoAMDX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX ) == sizeof( VkDeviceOrHostAddressConstAMDX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX>::value,
+                          "DeviceOrHostAddressConstAMDX is not nothrow_move_constructible!" );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 //=== VK_EXT_sample_locations ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
@@ -3427,6 +3526,64 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR>::value,
                           "AccelerationStructureBuildSizesInfoKHR is not nothrow_move_constructible!" );
 
+//=== VK_KHR_ray_tracing_pipeline ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>::value,
+                          "RayTracingShaderGroupCreateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>::value,
+                          "RayTracingPipelineCreateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR ) ==
+                            sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>::value,
+                          "PhysicalDeviceRayTracingPipelineFeaturesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR ) ==
+                            sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>::value,
+                          "PhysicalDeviceRayTracingPipelinePropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>::value,
+                          "StridedDeviceAddressRegionKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>::value,
+                          "TraceRaysIndirectCommandKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>::value,
+                          "RayTracingPipelineInterfaceCreateInfoKHR is not nothrow_move_constructible!" );
+
+//=== VK_KHR_ray_query ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>::value,
+                          "PhysicalDeviceRayQueryFeaturesKHR is not nothrow_move_constructible!" );
+
 //=== VK_NV_framebuffer_mixed_samples ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV ) ==
@@ -3752,14 +3909,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD>::value,
                           "PipelineCompilerControlCreateInfoAMD is not nothrow_move_constructible!" );
 
-//=== VK_EXT_calibrated_timestamps ===
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT>::value,
-                          "CalibratedTimestampInfoEXT is not nothrow_move_constructible!" );
-
 //=== VK_AMD_shader_core_properties ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ),
@@ -3769,48 +3918,46 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD>::value,
                           "PhysicalDeviceShaderCorePropertiesAMD is not nothrow_move_constructible!" );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-//=== VK_EXT_video_decode_h265 ===
+//=== VK_KHR_video_decode_h265 ===
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT ) == sizeof( VkVideoDecodeH265ProfileInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR ) == sizeof( VkVideoDecodeH265ProfileInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT>::value,
-                          "VideoDecodeH265ProfileInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR>::value,
+                          "VideoDecodeH265ProfileInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT ) == sizeof( VkVideoDecodeH265CapabilitiesEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR ) == sizeof( VkVideoDecodeH265CapabilitiesKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT>::value,
-                          "VideoDecodeH265CapabilitiesEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR>::value,
+                          "VideoDecodeH265CapabilitiesKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT ) ==
-                            sizeof( VkVideoDecodeH265SessionParametersCreateInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR ) ==
+                            sizeof( VkVideoDecodeH265SessionParametersCreateInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT>::value,
-                          "VideoDecodeH265SessionParametersCreateInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR>::value,
+                          "VideoDecodeH265SessionParametersCreateInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT ) == sizeof( VkVideoDecodeH265SessionParametersAddInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR ) == sizeof( VkVideoDecodeH265SessionParametersAddInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT>::value,
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR>::value,
                           "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT>::value,
-                          "VideoDecodeH265SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR>::value,
+                          "VideoDecodeH265SessionParametersAddInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT ) == sizeof( VkVideoDecodeH265PictureInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR ) == sizeof( VkVideoDecodeH265PictureInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT>::value,
-                          "VideoDecodeH265PictureInfoEXT is not nothrow_move_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR>::value,
+                          "VideoDecodeH265PictureInfoKHR is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT ) == sizeof( VkVideoDecodeH265DpbSlotInfoEXT ),
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR ) == sizeof( VkVideoDecodeH265DpbSlotInfoKHR ),
                           "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT>::value,
-                          "VideoDecodeH265DpbSlotInfoEXT is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR>::value,
+                          "VideoDecodeH265DpbSlotInfoKHR is not nothrow_move_constructible!" );
 
 //=== VK_KHR_global_priority ===
 
@@ -3855,29 +4002,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value,
                           "PhysicalDeviceVertexAttributeDivisorPropertiesEXT is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT>::value,
-                          "VertexInputBindingDivisorDescriptionEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT ) ==
-                            sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT>::value,
-                          "PipelineVertexInputDivisorStateCreateInfoEXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) ==
-                            sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value,
-                          "PhysicalDeviceVertexAttributeDivisorFeaturesEXT is not nothrow_move_constructible!" );
-
 #if defined( VK_USE_PLATFORM_GGP )
 //=== VK_GGP_frame_token ===
 
@@ -4468,6 +4592,81 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>::value,
                           "PipelineExecutableInternalRepresentationKHR is not nothrow_move_constructible!" );
 
+//=== VK_EXT_host_image_copy ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT ) == sizeof( VkPhysicalDeviceHostImageCopyFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT>::value,
+                          "PhysicalDeviceHostImageCopyFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT ) == sizeof( VkPhysicalDeviceHostImageCopyPropertiesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT>::value,
+                          "PhysicalDeviceHostImageCopyPropertiesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT ) == sizeof( VkMemoryToImageCopyEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT>::value,
+                          "MemoryToImageCopyEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT ) == sizeof( VkImageToMemoryCopyEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT>::value,
+                          "ImageToMemoryCopyEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT ) == sizeof( VkCopyMemoryToImageInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT>::value,
+                          "CopyMemoryToImageInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT ) == sizeof( VkCopyImageToMemoryInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT>::value,
+                          "CopyImageToMemoryInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT ) == sizeof( VkCopyImageToImageInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT>::value,
+                          "CopyImageToImageInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT ) == sizeof( VkHostImageLayoutTransitionInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT>::value,
+                          "HostImageLayoutTransitionInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT ) == sizeof( VkSubresourceHostMemcpySizeEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT>::value,
+                          "SubresourceHostMemcpySizeEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT ) == sizeof( VkHostImageCopyDevicePerformanceQueryEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT>::value,
+                          "HostImageCopyDevicePerformanceQueryEXT is not nothrow_move_constructible!" );
+
+//=== VK_KHR_map_memory2 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR ) == sizeof( VkMemoryMapInfoKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR>::value,
+                          "MemoryMapInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR ) == sizeof( VkMemoryUnmapInfoKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR>::value,
+                          "MemoryUnmapInfoKHR is not nothrow_move_constructible!" );
+
 //=== VK_EXT_shader_atomic_float2 ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT ) ==
@@ -4678,6 +4877,26 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM>::value,
                           "CommandBufferInheritanceRenderPassTransformInfoQCOM is not nothrow_move_constructible!" );
 
+//=== VK_EXT_depth_bias_control ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthBiasControlFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT>::value,
+                          "PhysicalDeviceDepthBiasControlFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT ) == sizeof( VkDepthBiasInfoEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT>::value,
+                          "DepthBiasInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT ) == sizeof( VkDepthBiasRepresentationInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT>::value,
+                          "DepthBiasRepresentationInfoEXT is not nothrow_move_constructible!" );
+
 //=== VK_EXT_device_memory_report ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT ) ==
@@ -4785,7 +5004,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR>::value,
                           "PhysicalDevicePresentIdFeaturesKHR is not nothrow_move_constructible!" );
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
 //=== VK_KHR_video_encode_queue ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR ) == sizeof( VkVideoEncodeInfoKHR ), "struct and wrapper have different size!" );
@@ -4799,6 +5017,13 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR>::value,
                           "VideoEncodeCapabilitiesKHR is not nothrow_move_constructible!" );
 
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR ) == sizeof( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR>::value,
+                          "QueryPoolVideoEncodeFeedbackCreateInfoKHR is not nothrow_move_constructible!" );
+
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR ) == sizeof( VkVideoEncodeUsageInfoKHR ),
                           "struct and wrapper have different size!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR>::value, "struct wrapper is not a standard layout!" );
@@ -4817,7 +5042,42 @@
                           "struct wrapper is not a standard layout!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>::value,
                           "VideoEncodeRateControlLayerInfoKHR is not nothrow_move_constructible!" );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR ) ==
+                            sizeof( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR>::value,
+                          "PhysicalDeviceVideoEncodeQualityLevelInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR ) == sizeof( VkVideoEncodeQualityLevelPropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>::value,
+                          "VideoEncodeQualityLevelPropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR ) == sizeof( VkVideoEncodeQualityLevelInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR>::value,
+                          "VideoEncodeQualityLevelInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR ) == sizeof( VkVideoEncodeSessionParametersGetInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR>::value,
+                          "VideoEncodeSessionParametersGetInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR ) ==
+                            sizeof( VkVideoEncodeSessionParametersFeedbackInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>::value,
+                          "VideoEncodeSessionParametersFeedbackInfoKHR is not nothrow_move_constructible!" );
 
 //=== VK_NV_device_diagnostics_config ===
 
@@ -4835,6 +5095,56 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV>::value,
                           "DeviceDiagnosticsConfigCreateInfoNV is not nothrow_move_constructible!" );
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+//=== VK_NV_cuda_kernel_launch ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaModuleNV ) == sizeof( VkCudaModuleNV ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaModuleNV>::value, "CudaModuleNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaFunctionNV ) == sizeof( VkCudaFunctionNV ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::value,
+                          "CudaFunctionNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV ) == sizeof( VkCudaModuleCreateInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV>::value,
+                          "CudaModuleCreateInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV ) == sizeof( VkCudaFunctionCreateInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV>::value,
+                          "CudaFunctionCreateInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV ) == sizeof( VkCudaLaunchInfoNV ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV>::value,
+                          "CudaLaunchInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV ) == sizeof( VkPhysicalDeviceCudaKernelLaunchFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV>::value,
+                          "PhysicalDeviceCudaKernelLaunchFeaturesNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV ) == sizeof( VkPhysicalDeviceCudaKernelLaunchPropertiesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV>::value,
+                          "PhysicalDeviceCudaKernelLaunchPropertiesNV is not nothrow_move_constructible!" );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+//=== VK_NV_low_latency ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV ) == sizeof( VkQueryLowLatencySupportNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV>::value,
+                          "QueryLowLatencySupportNV is not nothrow_move_constructible!" );
+
 #if defined( VK_USE_PLATFORM_METAL_EXT )
 //=== VK_EXT_metal_objects ===
 
@@ -5252,17 +5562,6 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT>::value,
                           "ImageCompressionControlEXT is not nothrow_move_constructible!" );
 
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT ) == sizeof( VkSubresourceLayout2EXT ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>::value,
-                          "SubresourceLayout2EXT is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageSubresource2EXT ) == sizeof( VkImageSubresource2EXT ), "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT>::value,
-                          "ImageSubresource2EXT is not nothrow_move_constructible!" );
-
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT ) == sizeof( VkImageCompressionPropertiesEXT ),
                           "struct and wrapper have different size!" );
 VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
@@ -5344,64 +5643,6 @@
                           "DirectFBSurfaceCreateInfoEXT is not nothrow_move_constructible!" );
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-//=== VK_KHR_ray_tracing_pipeline ===
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>::value,
-                          "RayTracingShaderGroupCreateInfoKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>::value,
-                          "RayTracingPipelineCreateInfoKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR ) ==
-                            sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>::value,
-                          "PhysicalDeviceRayTracingPipelineFeaturesKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR ) ==
-                            sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>::value,
-                          "PhysicalDeviceRayTracingPipelinePropertiesKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>::value,
-                          "StridedDeviceAddressRegionKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>::value,
-                          "TraceRaysIndirectCommandKHR is not nothrow_move_constructible!" );
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>::value,
-                          "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>::value,
-                          "RayTracingPipelineInterfaceCreateInfoKHR is not nothrow_move_constructible!" );
-
-//=== VK_KHR_ray_query ===
-
-VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ),
-                          "struct and wrapper have different size!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
-VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>::value,
-                          "PhysicalDeviceRayQueryFeaturesKHR is not nothrow_move_constructible!" );
-
 //=== VK_EXT_vertex_input_dynamic_state ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT ) ==
@@ -5656,6 +5897,20 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT>::value,
                           "PhysicalDevicePipelinePropertiesFeaturesEXT is not nothrow_move_constructible!" );
 
+//=== VK_EXT_frame_boundary ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT ) == sizeof( VkPhysicalDeviceFrameBoundaryFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT>::value,
+                          "PhysicalDeviceFrameBoundaryFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::FrameBoundaryEXT ) == sizeof( VkFrameBoundaryEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT>::value,
+                          "FrameBoundaryEXT is not nothrow_move_constructible!" );
+
 //=== VK_EXT_multisampled_render_to_single_sampled ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT ) ==
@@ -5791,6 +6046,22 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT>::value,
                           "PhysicalDeviceImage2DViewOf3DFeaturesEXT is not nothrow_move_constructible!" );
 
+//=== VK_EXT_shader_tile_image ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderTileImageFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT>::value,
+                          "PhysicalDeviceShaderTileImageFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT ) == sizeof( VkPhysicalDeviceShaderTileImagePropertiesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT>::value,
+                          "PhysicalDeviceShaderTileImagePropertiesEXT is not nothrow_move_constructible!" );
+
 //=== VK_EXT_opacity_micromap ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT ) == sizeof( VkMicromapBuildInfoEXT ), "struct and wrapper have different size!" );
@@ -5868,6 +6139,60 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MicromapTriangleEXT>::value,
                           "MicromapTriangleEXT is not nothrow_move_constructible!" );
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+//=== VK_NV_displacement_micromap ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV ) ==
+                            sizeof( VkPhysicalDeviceDisplacementMicromapFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV>::value,
+                          "PhysicalDeviceDisplacementMicromapFeaturesNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV ) ==
+                            sizeof( VkPhysicalDeviceDisplacementMicromapPropertiesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV>::value,
+                          "PhysicalDeviceDisplacementMicromapPropertiesNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV ) ==
+                            sizeof( VkAccelerationStructureTrianglesDisplacementMicromapNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV>::value,
+                          "AccelerationStructureTrianglesDisplacementMicromapNV is not nothrow_move_constructible!" );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+//=== VK_HUAWEI_cluster_culling_shader ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI ) ==
+                            sizeof( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>::value,
+                          "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI ) ==
+                            sizeof( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI>::value,
+                          "PhysicalDeviceClusterCullingShaderPropertiesHUAWEI is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI ) ==
+                            sizeof( VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>::value,
+                          "PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI is not nothrow_move_constructible!" );
+
 //=== VK_EXT_border_color_swizzle ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT ) ==
@@ -5896,6 +6221,56 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>::value,
                           "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT is not nothrow_move_constructible!" );
 
+//=== VK_ARM_shader_core_properties ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM ) == sizeof( VkPhysicalDeviceShaderCorePropertiesARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM>::value,
+                          "PhysicalDeviceShaderCorePropertiesARM is not nothrow_move_constructible!" );
+
+//=== VK_ARM_scheduling_controls ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM ) == sizeof( VkDeviceQueueShaderCoreControlCreateInfoARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM>::value,
+                          "DeviceQueueShaderCoreControlCreateInfoARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM ) ==
+                            sizeof( VkPhysicalDeviceSchedulingControlsFeaturesARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM>::value,
+                          "PhysicalDeviceSchedulingControlsFeaturesARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM ) ==
+                            sizeof( VkPhysicalDeviceSchedulingControlsPropertiesARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM>::value,
+                          "PhysicalDeviceSchedulingControlsPropertiesARM is not nothrow_move_constructible!" );
+
+//=== VK_EXT_image_sliced_view_of_3d ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT ) ==
+                            sizeof( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT>::value,
+                          "PhysicalDeviceImageSlicedViewOf3DFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT ) == sizeof( VkImageViewSlicedCreateInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT>::value,
+                          "ImageViewSlicedCreateInfoEXT is not nothrow_move_constructible!" );
+
 //=== VK_VALVE_descriptor_set_host_mapping ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE ) ==
@@ -5939,6 +6314,41 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT>::value,
                           "PhysicalDeviceNonSeamlessCubeMapFeaturesEXT is not nothrow_move_constructible!" );
 
+//=== VK_ARM_render_pass_striped ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM ) == sizeof( VkPhysicalDeviceRenderPassStripedFeaturesARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM>::value,
+                          "PhysicalDeviceRenderPassStripedFeaturesARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM ) ==
+                            sizeof( VkPhysicalDeviceRenderPassStripedPropertiesARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM>::value,
+                          "PhysicalDeviceRenderPassStripedPropertiesARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM ) == sizeof( VkRenderPassStripeBeginInfoARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM>::value,
+                          "RenderPassStripeBeginInfoARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM ) == sizeof( VkRenderPassStripeInfoARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM>::value,
+                          "RenderPassStripeInfoARM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM ) == sizeof( VkRenderPassStripeSubmitInfoARM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM>::value,
+                          "RenderPassStripeSubmitInfoARM is not nothrow_move_constructible!" );
+
 //=== VK_QCOM_fragment_density_map_offset ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM ) ==
@@ -6018,6 +6428,36 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV>::value,
                           "PhysicalDeviceMemoryDecompressionPropertiesNV is not nothrow_move_constructible!" );
 
+//=== VK_NV_device_generated_commands_compute ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV ) ==
+                            sizeof( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>::value,
+                          "PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV ) == sizeof( VkComputePipelineIndirectBufferInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV>::value,
+                          "ComputePipelineIndirectBufferInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV ) == sizeof( VkPipelineIndirectDeviceAddressInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV>::value,
+                          "PipelineIndirectDeviceAddressInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV ) == sizeof( VkBindPipelineIndirectCommandNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV>::value,
+                          "BindPipelineIndirectCommandNV is not nothrow_move_constructible!" );
+
 //=== VK_NV_linear_color_attachment ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV ) ==
@@ -6062,6 +6502,33 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM>::value,
                           "PhysicalDeviceImageProcessingPropertiesQCOM is not nothrow_move_constructible!" );
 
+//=== VK_EXT_nested_command_buffer ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT ) ==
+                            sizeof( VkPhysicalDeviceNestedCommandBufferFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT>::value,
+                          "PhysicalDeviceNestedCommandBufferFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT ) ==
+                            sizeof( VkPhysicalDeviceNestedCommandBufferPropertiesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT>::value,
+                          "PhysicalDeviceNestedCommandBufferPropertiesEXT is not nothrow_move_constructible!" );
+
+//=== VK_EXT_external_memory_acquire_unmodified ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT ) == sizeof( VkExternalMemoryAcquireUnmodifiedEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>::value,
+                          "ExternalMemoryAcquireUnmodifiedEXT is not nothrow_move_constructible!" );
+
 //=== VK_EXT_extended_dynamic_state3 ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT ) ==
@@ -6261,6 +6728,118 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT>::value,
                           "PhysicalDevicePipelineProtectedAccessFeaturesEXT is not nothrow_move_constructible!" );
 
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+//=== VK_ANDROID_external_format_resolve ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID ) ==
+                            sizeof( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>::value,
+                          "PhysicalDeviceExternalFormatResolveFeaturesANDROID is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID ) ==
+                            sizeof( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>::value,
+                          "PhysicalDeviceExternalFormatResolvePropertiesANDROID is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID ) ==
+                            sizeof( VkAndroidHardwareBufferFormatResolvePropertiesANDROID ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>::value,
+                          "AndroidHardwareBufferFormatResolvePropertiesANDROID is not nothrow_move_constructible!" );
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+//=== VK_KHR_maintenance5 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance5FeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR>::value,
+                          "PhysicalDeviceMaintenance5FeaturesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR ) == sizeof( VkPhysicalDeviceMaintenance5PropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR>::value,
+                          "PhysicalDeviceMaintenance5PropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR ) == sizeof( VkRenderingAreaInfoKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR>::value,
+                          "RenderingAreaInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR ) == sizeof( VkDeviceImageSubresourceInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR>::value,
+                          "DeviceImageSubresourceInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageSubresource2KHR ) == sizeof( VkImageSubresource2KHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR>::value,
+                          "ImageSubresource2KHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR ) == sizeof( VkSubresourceLayout2KHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>::value,
+                          "SubresourceLayout2KHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR ) == sizeof( VkPipelineCreateFlags2CreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR>::value,
+                          "PipelineCreateFlags2CreateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR ) == sizeof( VkBufferUsageFlags2CreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR>::value,
+                          "BufferUsageFlags2CreateInfoKHR is not nothrow_move_constructible!" );
+
+//=== VK_KHR_ray_tracing_position_fetch ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR ) ==
+                            sizeof( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR>::value,
+                          "PhysicalDeviceRayTracingPositionFetchFeaturesKHR is not nothrow_move_constructible!" );
+
+//=== VK_EXT_shader_object ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ShaderEXT ) == sizeof( VkShaderEXT ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ShaderEXT>::value, "ShaderEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderObjectFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT>::value,
+                          "PhysicalDeviceShaderObjectFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT ) == sizeof( VkPhysicalDeviceShaderObjectPropertiesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT>::value,
+                          "PhysicalDeviceShaderObjectPropertiesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT ) == sizeof( VkShaderCreateInfoEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT>::value,
+                          "ShaderCreateInfoEXT is not nothrow_move_constructible!" );
+
 //=== VK_QCOM_tile_properties ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM ) == sizeof( VkPhysicalDeviceTilePropertiesFeaturesQCOM ),
@@ -6318,6 +6897,24 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV>::value,
                           "PhysicalDeviceRayTracingInvocationReorderFeaturesNV is not nothrow_move_constructible!" );
 
+//=== VK_NV_extended_sparse_address_space ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV ) ==
+                            sizeof( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>::value,
+                          "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV ) ==
+                            sizeof( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV>::value,
+                          "PhysicalDeviceExtendedSparseAddressSpacePropertiesNV is not nothrow_move_constructible!" );
+
 //=== VK_EXT_mutable_descriptor_type ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT ) ==
@@ -6341,6 +6938,19 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT>::value,
                           "MutableDescriptorTypeCreateInfoEXT is not nothrow_move_constructible!" );
 
+//=== VK_EXT_layer_settings ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT ) == sizeof( VkLayerSettingsCreateInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT>::value,
+                          "LayerSettingsCreateInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LayerSettingEXT ) == sizeof( VkLayerSettingEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LayerSettingEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LayerSettingEXT>::value,
+                          "LayerSettingEXT is not nothrow_move_constructible!" );
+
 //=== VK_ARM_shader_core_builtins ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM ) ==
@@ -6359,4 +6969,380 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM>::value,
                           "PhysicalDeviceShaderCoreBuiltinsPropertiesARM is not nothrow_move_constructible!" );
 
+//=== VK_EXT_pipeline_library_group_handles ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT ) ==
+                            sizeof( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>::value,
+                          "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT is not nothrow_move_constructible!" );
+
+//=== VK_EXT_dynamic_rendering_unused_attachments ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT ) ==
+                            sizeof( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>::value,
+                          "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT is not nothrow_move_constructible!" );
+
+//=== VK_NV_low_latency2 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV ) == sizeof( VkLatencySleepModeInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::value,
+                          "LatencySleepModeInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV ) == sizeof( VkLatencySleepInfoNV ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::value,
+                          "LatencySleepInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV ) == sizeof( VkSetLatencyMarkerInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>::value,
+                          "SetLatencyMarkerInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV ) == sizeof( VkGetLatencyMarkerInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>::value,
+                          "GetLatencyMarkerInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV ) == sizeof( VkLatencyTimingsFrameReportNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value,
+                          "LatencyTimingsFrameReportNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV ) == sizeof( VkLatencySubmissionPresentIdNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>::value,
+                          "LatencySubmissionPresentIdNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV ) == sizeof( VkSwapchainLatencyCreateInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>::value,
+                          "SwapchainLatencyCreateInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV ) == sizeof( VkOutOfBandQueueTypeInfoNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>::value,
+                          "OutOfBandQueueTypeInfoNV is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV ) == sizeof( VkLatencySurfaceCapabilitiesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>::value,
+                          "LatencySurfaceCapabilitiesNV is not nothrow_move_constructible!" );
+
+//=== VK_KHR_cooperative_matrix ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR ) == sizeof( VkCooperativeMatrixPropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value,
+                          "CooperativeMatrixPropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR>::value,
+                          "PhysicalDeviceCooperativeMatrixFeaturesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR ) ==
+                            sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR>::value,
+                          "PhysicalDeviceCooperativeMatrixPropertiesKHR is not nothrow_move_constructible!" );
+
+//=== VK_QCOM_multiview_per_view_render_areas ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM ) ==
+                            sizeof( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>::value,
+                          "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM ) ==
+                            sizeof( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>::value,
+                          "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM is not nothrow_move_constructible!" );
+
+//=== VK_KHR_video_maintenance1 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR ) == sizeof( VkPhysicalDeviceVideoMaintenance1FeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR>::value,
+                          "PhysicalDeviceVideoMaintenance1FeaturesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR ) == sizeof( VkVideoInlineQueryInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR>::value,
+                          "VideoInlineQueryInfoKHR is not nothrow_move_constructible!" );
+
+//=== VK_NV_per_stage_descriptor_set ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV ) ==
+                            sizeof( VkPhysicalDevicePerStageDescriptorSetFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV>::value,
+                          "PhysicalDevicePerStageDescriptorSetFeaturesNV is not nothrow_move_constructible!" );
+
+//=== VK_QCOM_image_processing2 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM ) == sizeof( VkPhysicalDeviceImageProcessing2FeaturesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM>::value,
+                          "PhysicalDeviceImageProcessing2FeaturesQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM ) ==
+                            sizeof( VkPhysicalDeviceImageProcessing2PropertiesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM>::value,
+                          "PhysicalDeviceImageProcessing2PropertiesQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM ) == sizeof( VkSamplerBlockMatchWindowCreateInfoQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM>::value,
+                          "SamplerBlockMatchWindowCreateInfoQCOM is not nothrow_move_constructible!" );
+
+//=== VK_QCOM_filter_cubic_weights ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM ) == sizeof( VkPhysicalDeviceCubicWeightsFeaturesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM>::value,
+                          "PhysicalDeviceCubicWeightsFeaturesQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM ) == sizeof( VkSamplerCubicWeightsCreateInfoQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM>::value,
+                          "SamplerCubicWeightsCreateInfoQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM ) == sizeof( VkBlitImageCubicWeightsInfoQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM>::value,
+                          "BlitImageCubicWeightsInfoQCOM is not nothrow_move_constructible!" );
+
+//=== VK_QCOM_ycbcr_degamma ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM ) == sizeof( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM>::value,
+                          "PhysicalDeviceYcbcrDegammaFeaturesQCOM is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM ) ==
+                            sizeof( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>::value,
+                          "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM is not nothrow_move_constructible!" );
+
+//=== VK_QCOM_filter_cubic_clamp ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM ) == sizeof( VkPhysicalDeviceCubicClampFeaturesQCOM ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM>::value,
+                          "PhysicalDeviceCubicClampFeaturesQCOM is not nothrow_move_constructible!" );
+
+//=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) ==
+                            sizeof( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>::value,
+                          "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT is not nothrow_move_constructible!" );
+
+//=== VK_KHR_vertex_attribute_divisor ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR ) ==
+                            sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR>::value,
+                          "PhysicalDeviceVertexAttributeDivisorPropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR ) == sizeof( VkVertexInputBindingDivisorDescriptionKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR>::value,
+                          "VertexInputBindingDivisorDescriptionKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR ) ==
+                            sizeof( VkPipelineVertexInputDivisorStateCreateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR>::value,
+                          "PipelineVertexInputDivisorStateCreateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR ) ==
+                            sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR>::value,
+                          "PhysicalDeviceVertexAttributeDivisorFeaturesKHR is not nothrow_move_constructible!" );
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+//=== VK_QNX_external_memory_screen_buffer ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX ) == sizeof( VkScreenBufferPropertiesQNX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>::value,
+                          "ScreenBufferPropertiesQNX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX ) == sizeof( VkScreenBufferFormatPropertiesQNX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX>::value,
+                          "ScreenBufferFormatPropertiesQNX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX ) == sizeof( VkImportScreenBufferInfoQNX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX>::value,
+                          "ImportScreenBufferInfoQNX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalFormatQNX ) == sizeof( VkExternalFormatQNX ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ExternalFormatQNX>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ExternalFormatQNX>::value,
+                          "ExternalFormatQNX is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX ) ==
+                            sizeof( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>::value,
+                          "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX is not nothrow_move_constructible!" );
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+//=== VK_MSFT_layered_driver ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT ) == sizeof( VkPhysicalDeviceLayeredDriverPropertiesMSFT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT>::value,
+                          "PhysicalDeviceLayeredDriverPropertiesMSFT is not nothrow_move_constructible!" );
+
+//=== VK_KHR_calibrated_timestamps ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR ) == sizeof( VkCalibratedTimestampInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR>::value,
+                          "CalibratedTimestampInfoKHR is not nothrow_move_constructible!" );
+
+//=== VK_KHR_maintenance6 ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance6FeaturesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR>::value,
+                          "PhysicalDeviceMaintenance6FeaturesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR ) == sizeof( VkPhysicalDeviceMaintenance6PropertiesKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR>::value,
+                          "PhysicalDeviceMaintenance6PropertiesKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR ) == sizeof( VkBindMemoryStatusKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR>::value,
+                          "BindMemoryStatusKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR ) == sizeof( VkBindDescriptorSetsInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR>::value,
+                          "BindDescriptorSetsInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR ) == sizeof( VkPushConstantsInfoKHR ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR>::value,
+                          "PushConstantsInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR ) == sizeof( VkPushDescriptorSetInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR>::value,
+                          "PushDescriptorSetInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR ) == sizeof( VkPushDescriptorSetWithTemplateInfoKHR ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR>::value,
+                          "PushDescriptorSetWithTemplateInfoKHR is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT ) == sizeof( VkSetDescriptorBufferOffsetsInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT>::value,
+                          "SetDescriptorBufferOffsetsInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT ) ==
+                            sizeof( VkBindDescriptorBufferEmbeddedSamplersInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT>::value,
+                          "BindDescriptorBufferEmbeddedSamplersInfoEXT is not nothrow_move_constructible!" );
+
+//=== VK_NV_descriptor_pool_overallocation ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV ) ==
+                            sizeof( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV>::value,
+                          "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV is not nothrow_move_constructible!" );
+
 #endif
diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp
index 59ec54e..5195828 100644
--- a/include/vulkan/vulkan_structs.hpp
+++ b/include/vulkan/vulkan_structs.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -12,6 +12,7 @@
 
 namespace VULKAN_HPP_NAMESPACE
 {
+
   //===============
   //=== STRUCTS ===
   //===============
@@ -83,12 +84,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAabbPositionsKHR *>( this );
     }
 
-    explicit operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAabbPositionsKHR *>( this );
     }
@@ -131,6 +132,7 @@
     float maxY = {};
     float maxZ = {};
   };
+
   using AabbPositionsNV = AabbPositionsKHR;
 
   union DeviceOrHostAddressConstKHR
@@ -235,14 +237,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
-                            setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
+      setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexData = vertexData_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
-                            setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
+      setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexStride = vertexStride_;
       return *this;
@@ -261,26 +263,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
-                            setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
+      setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
     {
       indexData = indexData_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
-                            setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
+      setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
     {
       transformData = transformData_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR *>( this );
     }
@@ -364,7 +366,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR &
-                            setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
+      setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
     {
       data = data_;
       return *this;
@@ -377,12 +379,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR *>( this );
     }
@@ -457,26 +459,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR &
-                            setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
+      setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
     {
       arrayOfPointers = arrayOfPointers_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR &
-                            setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
+      setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
     {
       data = data_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR *>( this );
     }
@@ -529,21 +531,21 @@
 
 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
-                            setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
+      setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
     {
       triangles = triangles_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
-                            setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
+      setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
     {
       aabbs = aabbs_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
-                            setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
+      setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
     {
       instances = instances_;
       return *this;
@@ -621,7 +623,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR &
-                            setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
+      setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
     {
       geometry = geometry_;
       return *this;
@@ -634,12 +636,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureGeometryKHR *>( this );
     }
@@ -814,28 +816,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
+      setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
     {
       mode = mode_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       srcAccelerationStructure = srcAccelerationStructure_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       dstAccelerationStructure = dstAccelerationStructure_;
       return *this;
@@ -848,7 +850,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ ) VULKAN_HPP_NOEXCEPT
+      setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ ) VULKAN_HPP_NOEXCEPT
     {
       pGeometries = pGeometries_;
       return *this;
@@ -865,7 +867,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
+      setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
     {
       ppGeometries = ppGeometries_;
       return *this;
@@ -883,19 +885,19 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
-                            setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
+      setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
     {
       scratchData = scratchData_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR *>( this );
     }
@@ -1001,12 +1003,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureBuildRangeInfoKHR *>( this );
     }
@@ -1092,33 +1094,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
-                            setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureSize = accelerationStructureSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
-                            setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT
+      setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT
     {
       updateScratchSize = updateScratchSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
-                            setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
+      setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
     {
       buildScratchSize = buildScratchSize_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureBuildSizesInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( this );
     }
@@ -1215,14 +1217,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT &
-                            setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructure = accelerationStructure_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT &
-                            setAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureNV = accelerationStructureNV_;
       return *this;
@@ -1336,7 +1338,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR &
-                            setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
+      setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       createFlags = createFlags_;
       return *this;
@@ -1373,12 +1375,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR *>( this );
     }
@@ -1562,12 +1564,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkGeometryTrianglesNV *>( this );
     }
 
-    explicit operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkGeometryTrianglesNV *>( this );
     }
@@ -1717,12 +1719,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkGeometryAABBNV *>( this );
     }
 
-    explicit operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
+    operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkGeometryAABBNV *>( this );
     }
@@ -1817,12 +1819,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkGeometryDataNV *>( this );
     }
 
-    explicit operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
+    operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkGeometryDataNV *>( this );
     }
@@ -1920,12 +1922,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkGeometryNV *>( this );
     }
 
-    explicit operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
+    operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkGeometryNV *>( this );
     }
@@ -2081,12 +2083,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureInfoNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureInfoNV *>( this );
     }
@@ -2197,12 +2199,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV *>( this );
     }
@@ -2292,19 +2294,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR &
-                            setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructure = accelerationStructure_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR *>( this );
     }
@@ -2392,19 +2394,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV &
-                            setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
+      setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexData = vertexData_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureGeometryMotionTrianglesDataNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureGeometryMotionTrianglesDataNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
     }
@@ -2461,12 +2463,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkTransformMatrixKHR *>( this );
     }
 
-    explicit operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkTransformMatrixKHR *>( this );
     }
@@ -2504,6 +2506,7 @@
   public:
     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
   };
+
   using TransformMatrixNV = TransformMatrixKHR;
 
   struct AccelerationStructureInstanceKHR
@@ -2562,7 +2565,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR &
-                            setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
+      setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
       return *this;
@@ -2581,12 +2584,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureInstanceKHR *>( this );
     }
@@ -2630,12 +2633,13 @@
 
   public:
     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
-    uint32_t                                 instanceCustomIndex : 24;
-    uint32_t                                 mask : 8;
+    uint32_t                                 instanceCustomIndex                    : 24;
+    uint32_t                                 mask                                   : 8;
     uint32_t                                 instanceShaderBindingTableRecordOffset : 24;
-    VkGeometryInstanceFlagsKHR               flags : 8;
+    VkGeometryInstanceFlagsKHR               flags                                  : 8;
     uint64_t                                 accelerationStructureReference = {};
   };
+
   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
 
   struct AccelerationStructureMatrixMotionInstanceNV
@@ -2679,14 +2683,14 @@
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
-                            setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
+      setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
     {
       transformT0 = transformT0_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
-                            setTransformT1( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT1_ ) VULKAN_HPP_NOEXCEPT
+      setTransformT1( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT1_ ) VULKAN_HPP_NOEXCEPT
     {
       transformT1 = transformT1_;
       return *this;
@@ -2705,7 +2709,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
-                            setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
+      setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
       return *this;
@@ -2718,19 +2722,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
-                            setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureReference = accelerationStructureReference_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureMatrixMotionInstanceNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureMatrixMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMatrixMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureMatrixMotionInstanceNV *>( this );
     }
@@ -2776,10 +2780,10 @@
   public:
     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
-    uint32_t                                 instanceCustomIndex : 24;
-    uint32_t                                 mask : 8;
+    uint32_t                                 instanceCustomIndex                    : 24;
+    uint32_t                                 mask                                   : 8;
     uint32_t                                 instanceShaderBindingTableRecordOffset : 24;
-    VkGeometryInstanceFlagsKHR               flags : 8;
+    VkGeometryInstanceFlagsKHR               flags                                  : 8;
     uint64_t                                 accelerationStructureReference = {};
   };
 
@@ -2826,26 +2830,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
-                            setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
+      setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
     {
       type = type_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
-                            setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructure = accelerationStructure_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
     }
@@ -2943,19 +2947,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureMotionInfoNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureMotionInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMotionInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureMotionInfoNV *>( this );
     }
@@ -3157,12 +3161,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSRTDataNV *>( this );
     }
 
-    explicit operator VkSRTDataNV &() VULKAN_HPP_NOEXCEPT
+    operator VkSRTDataNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSRTDataNV *>( this );
     }
@@ -3273,14 +3277,14 @@
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
-                            setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
+      setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
     {
       transformT0 = transformT0_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
-                            setTransformT1( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT1_ ) VULKAN_HPP_NOEXCEPT
+      setTransformT1( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT1_ ) VULKAN_HPP_NOEXCEPT
     {
       transformT1 = transformT1_;
       return *this;
@@ -3299,7 +3303,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
-                            setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
+      setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
       return *this;
@@ -3312,19 +3316,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
-                            setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureReference = accelerationStructureReference_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureSRTMotionInstanceNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureSRTMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureSRTMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureSRTMotionInstanceNV *>( this );
     }
@@ -3370,10 +3374,10 @@
   public:
     VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
     VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
-    uint32_t                        instanceCustomIndex : 24;
-    uint32_t                        mask : 8;
+    uint32_t                        instanceCustomIndex                    : 24;
+    uint32_t                        mask                                   : 8;
     uint32_t                        instanceShaderBindingTableRecordOffset : 24;
-    VkGeometryInstanceFlagsKHR      flags : 8;
+    VkGeometryInstanceFlagsKHR      flags                                  : 8;
     uint64_t                        accelerationStructureReference = {};
   };
 
@@ -3400,7 +3404,7 @@
 
 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
-                            setStaticInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
+      setStaticInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
     {
       staticInstance = staticInstance_;
       return *this;
@@ -3475,33 +3479,33 @@
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
-                            setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
+      setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
     {
       type = type_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
-                            setData( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & data_ ) VULKAN_HPP_NOEXCEPT
+      setData( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & data_ ) VULKAN_HPP_NOEXCEPT
     {
       data = data_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureMotionInstanceNV *>( this );
     }
 
-    explicit operator VkAccelerationStructureMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureMotionInstanceNV *>( this );
     }
@@ -3617,6 +3621,342 @@
     uint32_t format           = {};
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct AccelerationStructureTrianglesDisplacementMicromapNV
+  {
+    using NativeType = VkAccelerationStructureTrianglesDisplacementMicromapNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV(
+      VULKAN_HPP_NAMESPACE::Format                           displacementBiasAndScaleFormat_        = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+      VULKAN_HPP_NAMESPACE::Format                           displacementVectorFormat_              = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacementBiasAndScaleBuffer_        = {},
+      VULKAN_HPP_NAMESPACE::DeviceSize                       displacementBiasAndScaleStride_        = {},
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacementVectorBuffer_              = {},
+      VULKAN_HPP_NAMESPACE::DeviceSize                       displacementVectorStride_              = {},
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacedMicromapPrimitiveFlags_       = {},
+      VULKAN_HPP_NAMESPACE::DeviceSize                       displacedMicromapPrimitiveFlagsStride_ = {},
+      VULKAN_HPP_NAMESPACE::IndexType                        indexType_                             = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      indexBuffer_                           = {},
+      VULKAN_HPP_NAMESPACE::DeviceSize                       indexStride_                           = {},
+      uint32_t                                               baseTriangle_                          = {},
+      uint32_t                                               usageCountsCount_                      = {},
+      const VULKAN_HPP_NAMESPACE::MicromapUsageEXT *         pUsageCounts_                          = {},
+      const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_                         = {},
+      VULKAN_HPP_NAMESPACE::MicromapEXT                      micromap_                              = {},
+      void *                                                 pNext_                                 = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ )
+      , displacementVectorFormat( displacementVectorFormat_ )
+      , displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ )
+      , displacementBiasAndScaleStride( displacementBiasAndScaleStride_ )
+      , displacementVectorBuffer( displacementVectorBuffer_ )
+      , displacementVectorStride( displacementVectorStride_ )
+      , displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ )
+      , displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ )
+      , indexType( indexType_ )
+      , indexBuffer( indexBuffer_ )
+      , indexStride( indexStride_ )
+      , baseTriangle( baseTriangle_ )
+      , usageCountsCount( usageCountsCount_ )
+      , pUsageCounts( pUsageCounts_ )
+      , ppUsageCounts( ppUsageCounts_ )
+      , micromap( micromap_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14
+      AccelerationStructureTrianglesDisplacementMicromapNV( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    AccelerationStructureTrianglesDisplacementMicromapNV( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : AccelerationStructureTrianglesDisplacementMicromapNV( *reinterpret_cast<AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs ) )
+    {
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    AccelerationStructureTrianglesDisplacementMicromapNV(
+      VULKAN_HPP_NAMESPACE::Format                                                                                displacementBiasAndScaleFormat_,
+      VULKAN_HPP_NAMESPACE::Format                                                                                displacementVectorFormat_,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR                                                           displacementBiasAndScaleBuffer_,
+      VULKAN_HPP_NAMESPACE::DeviceSize                                                                            displacementBiasAndScaleStride_,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR                                                           displacementVectorBuffer_,
+      VULKAN_HPP_NAMESPACE::DeviceSize                                                                            displacementVectorStride_,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR                                                           displacedMicromapPrimitiveFlags_,
+      VULKAN_HPP_NAMESPACE::DeviceSize                                                                            displacedMicromapPrimitiveFlagsStride_,
+      VULKAN_HPP_NAMESPACE::IndexType                                                                             indexType_,
+      VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR                                                           indexBuffer_,
+      VULKAN_HPP_NAMESPACE::DeviceSize                                                                            indexStride_,
+      uint32_t                                                                                                    baseTriangle_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const &         usageCounts_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {},
+      VULKAN_HPP_NAMESPACE::MicromapEXT                                                                           micromap_     = {},
+      void *                                                                                                      pNext_        = nullptr )
+      : pNext( pNext_ )
+      , displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ )
+      , displacementVectorFormat( displacementVectorFormat_ )
+      , displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ )
+      , displacementBiasAndScaleStride( displacementBiasAndScaleStride_ )
+      , displacementVectorBuffer( displacementVectorBuffer_ )
+      , displacementVectorStride( displacementVectorStride_ )
+      , displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ )
+      , displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ )
+      , indexType( indexType_ )
+      , indexBuffer( indexBuffer_ )
+      , indexStride( indexStride_ )
+      , baseTriangle( baseTriangle_ )
+      , usageCountsCount( static_cast<uint32_t>( usageCounts_.size() ) )
+      , pUsageCounts( usageCounts_.data() )
+      , ppUsageCounts( pUsageCounts_.data() )
+      , micromap( micromap_ )
+    {
+#      ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( usageCounts_.empty() || pUsageCounts_.empty() || ( usageCounts_.size() == pUsageCounts_.size() ) );
+#      else
+      if ( !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() ) )
+      {
+        throw LogicError(
+          VULKAN_HPP_NAMESPACE_STRING
+          "::AccelerationStructureTrianglesDisplacementMicromapNV::AccelerationStructureTrianglesDisplacementMicromapNV: !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() )" );
+      }
+#      endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    AccelerationStructureTrianglesDisplacementMicromapNV &
+      operator=( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    AccelerationStructureTrianglesDisplacementMicromapNV & operator=( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementBiasAndScaleFormat( VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementBiasAndScaleFormat = displacementBiasAndScaleFormat_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementVectorFormat( VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementVectorFormat = displacementVectorFormat_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementBiasAndScaleBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementBiasAndScaleBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementBiasAndScaleBuffer = displacementBiasAndScaleBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementBiasAndScaleStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementBiasAndScaleStride = displacementBiasAndScaleStride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementVectorBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementVectorBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementVectorBuffer = displacementVectorBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacementVectorStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementVectorStride = displacementVectorStride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacedMicromapPrimitiveFlags( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacedMicromapPrimitiveFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacedMicromapPrimitiveFlags = displacedMicromapPrimitiveFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setDisplacedMicromapPrimitiveFlagsStride( VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacedMicromapPrimitiveFlagsStride = displacedMicromapPrimitiveFlagsStride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indexType = indexType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indexBuffer = indexBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indexStride = indexStride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setBaseTriangle( uint32_t baseTriangle_ ) VULKAN_HPP_NOEXCEPT
+    {
+      baseTriangle = baseTriangle_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      usageCountsCount = usageCountsCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pUsageCounts = pUsageCounts_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    AccelerationStructureTrianglesDisplacementMicromapNV &
+      setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
+      pUsageCounts     = usageCounts_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      ppUsageCounts = ppUsageCounts_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    AccelerationStructureTrianglesDisplacementMicromapNV & setPUsageCounts(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
+      ppUsageCounts    = pUsageCounts_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
+      setMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ ) VULKAN_HPP_NOEXCEPT
+    {
+      micromap = micromap_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkAccelerationStructureTrianglesDisplacementMicromapNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV *>( this );
+    }
+
+    operator VkAccelerationStructureTrianglesDisplacementMicromapNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkAccelerationStructureTrianglesDisplacementMicromapNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Format const &,
+               VULKAN_HPP_NAMESPACE::Format const &,
+               VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::IndexType const &,
+               VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               uint32_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &,
+               const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &,
+               VULKAN_HPP_NAMESPACE::MicromapEXT const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       displacementBiasAndScaleFormat,
+                       displacementVectorFormat,
+                       displacementBiasAndScaleBuffer,
+                       displacementBiasAndScaleStride,
+                       displacementVectorBuffer,
+                       displacementVectorStride,
+                       displacedMicromapPrimitiveFlags,
+                       displacedMicromapPrimitiveFlagsStride,
+                       indexType,
+                       indexBuffer,
+                       indexStride,
+                       baseTriangle,
+                       usageCountsCount,
+                       pUsageCounts,
+                       ppUsageCounts,
+                       micromap );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                    sType = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
+    void *                                                 pNext = {};
+    VULKAN_HPP_NAMESPACE::Format                           displacementBiasAndScaleFormat        = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+    VULKAN_HPP_NAMESPACE::Format                           displacementVectorFormat              = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacementBiasAndScaleBuffer        = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                       displacementBiasAndScaleStride        = {};
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacementVectorBuffer              = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                       displacementVectorStride              = {};
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      displacedMicromapPrimitiveFlags       = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                       displacedMicromapPrimitiveFlagsStride = {};
+    VULKAN_HPP_NAMESPACE::IndexType                        indexType                             = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR      indexBuffer                           = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                       indexStride                           = {};
+    uint32_t                                               baseTriangle                          = {};
+    uint32_t                                               usageCountsCount                      = {};
+    const VULKAN_HPP_NAMESPACE::MicromapUsageEXT *         pUsageCounts                          = {};
+    const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts                         = {};
+    VULKAN_HPP_NAMESPACE::MicromapEXT                      micromap                              = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV>
+  {
+    using Type = AccelerationStructureTrianglesDisplacementMicromapNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct AccelerationStructureTrianglesOpacityMicromapEXT
   {
     using NativeType = VkAccelerationStructureTrianglesOpacityMicromapEXT;
@@ -3711,14 +4051,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
-                            setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       indexBuffer = indexBuffer_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
-                            setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
+      setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
     {
       indexStride = indexStride_;
       return *this;
@@ -3737,7 +4077,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
-                            setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
+      setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
     {
       pUsageCounts = pUsageCounts_;
       return *this;
@@ -3754,7 +4094,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
-                            setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
+      setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
     {
       ppUsageCounts = ppUsageCounts_;
       return *this;
@@ -3871,12 +4211,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( this );
     }
 
-    explicit operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAccelerationStructureVersionInfoKHR *>( this );
     }
@@ -4000,12 +4340,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAcquireNextImageInfoKHR *>( this );
     }
 
-    explicit operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAcquireNextImageInfoKHR *>( this );
     }
@@ -4116,12 +4456,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( this );
     }
 
-    explicit operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR *>( this );
     }
@@ -4242,12 +4582,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAllocationCallbacks *>( this );
     }
 
-    explicit operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
+    operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAllocationCallbacks *>( this );
     }
@@ -4454,12 +4794,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
+    operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkComponentMapping *>( this );
     }
 
-    explicit operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
+    operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkComponentMapping *>( this );
     }
@@ -4680,12 +5020,12 @@
       return *this;
     }
 
-    explicit operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
     }
 
-    explicit operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
     }
@@ -4762,6 +5102,94 @@
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  struct AndroidHardwareBufferFormatResolvePropertiesANDROID
+  {
+    using NativeType = VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      AndroidHardwareBufferFormatResolvePropertiesANDROID( VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+                                                           void *                       pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , colorAttachmentFormat( colorAttachmentFormat_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      AndroidHardwareBufferFormatResolvePropertiesANDROID( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    AndroidHardwareBufferFormatResolvePropertiesANDROID( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+      : AndroidHardwareBufferFormatResolvePropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs ) )
+    {
+    }
+
+    AndroidHardwareBufferFormatResolvePropertiesANDROID &
+      operator=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs );
+      return *this;
+    }
+
+    operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( this );
+    }
+
+    operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, colorAttachmentFormat );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( AndroidHardwareBufferFormatResolvePropertiesANDROID const & ) const = default;
+#  else
+    bool operator==( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorAttachmentFormat == rhs.colorAttachmentFormat );
+#    endif
+    }
+
+    bool operator!=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
+    void *                              pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Format        colorAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID>
+  {
+    using Type = AndroidHardwareBufferFormatResolvePropertiesANDROID;
+  };
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
   struct AndroidHardwareBufferPropertiesANDROID
   {
     using NativeType = VkAndroidHardwareBufferPropertiesANDROID;
@@ -4795,12 +5223,12 @@
       return *this;
     }
 
-    explicit operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID *>( this );
     }
 
-    explicit operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( this );
     }
@@ -4880,12 +5308,12 @@
       return *this;
     }
 
-    explicit operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID *>( this );
     }
 
-    explicit operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
+    operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID *>( this );
     }
@@ -4987,12 +5415,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR *>( this );
     }
@@ -5118,12 +5546,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkApplicationInfo *>( this );
     }
 
-    explicit operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkApplicationInfo *>( this );
     }
@@ -5298,12 +5726,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentDescription *>( this );
     }
 
-    explicit operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentDescription *>( this );
     }
@@ -5469,12 +5897,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentDescription2 *>( this );
     }
 
-    explicit operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentDescription2 *>( this );
     }
@@ -5540,6 +5968,7 @@
   {
     using Type = AttachmentDescription2;
   };
+
   using AttachmentDescription2KHR = AttachmentDescription2;
 
   struct AttachmentDescriptionStencilLayout
@@ -5584,26 +6013,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
-                            setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
+      setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       stencilInitialLayout = stencilInitialLayout_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
-                            setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
+      setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       stencilFinalLayout = stencilFinalLayout_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout *>( this );
     }
 
-    explicit operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout *>( this );
     }
@@ -5652,6 +6081,7 @@
   {
     using Type = AttachmentDescriptionStencilLayout;
   };
+
   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
 
   struct AttachmentReference
@@ -5695,12 +6125,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentReference *>( this );
     }
 
-    explicit operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentReference *>( this );
     }
@@ -5801,12 +6231,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentReference2 *>( this );
     }
 
-    explicit operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentReference2 *>( this );
     }
@@ -5859,6 +6289,7 @@
   {
     using Type = AttachmentReference2;
   };
+
   using AttachmentReference2KHR = AttachmentReference2;
 
   struct AttachmentReferenceStencilLayout
@@ -5906,12 +6337,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout *>( this );
     }
 
-    explicit operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentReferenceStencilLayout *>( this );
     }
@@ -5957,6 +6388,7 @@
   {
     using Type = AttachmentReferenceStencilLayout;
   };
+
   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
 
   struct AttachmentSampleCountInfoAMD
@@ -6022,7 +6454,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
-                            setPColorAttachmentSamples( const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
+      setPColorAttachmentSamples( const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorAttachmentSamples = pColorAttachmentSamples_;
       return *this;
@@ -6039,7 +6471,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
-                            setDepthStencilAttachmentSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
+      setDepthStencilAttachmentSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
     {
       depthStencilAttachmentSamples = depthStencilAttachmentSamples_;
       return *this;
@@ -6104,6 +6536,7 @@
   {
     using Type = AttachmentSampleCountInfoAMD;
   };
+
   using AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
 
   struct Extent2D
@@ -6144,12 +6577,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
+    operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkExtent2D *>( this );
     }
 
-    explicit operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
+    operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkExtent2D *>( this );
     }
@@ -6227,12 +6660,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSampleLocationEXT *>( this );
     }
 
-    explicit operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSampleLocationEXT *>( this );
     }
@@ -6332,14 +6765,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
-                            setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationsPerPixel = sampleLocationsPerPixel_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
-                            setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationGridSize = sampleLocationGridSize_;
       return *this;
@@ -6352,7 +6785,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
-                            setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
+      setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
     {
       pSampleLocations = pSampleLocations_;
       return *this;
@@ -6369,12 +6802,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSampleLocationsInfoEXT *>( this );
     }
 
-    explicit operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSampleLocationsInfoEXT *>( this );
     }
@@ -6467,19 +6900,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT &
-                            setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationsInfo = sampleLocationsInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT *>( this );
     }
 
-    explicit operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkAttachmentSampleLocationsEXT *>( this );
     }
@@ -6552,12 +6985,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBaseInStructure *>( this );
     }
 
-    explicit operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
+    operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBaseInStructure *>( this );
     }
@@ -6630,12 +7063,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBaseOutStructure *>( this );
     }
 
-    explicit operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
+    operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBaseOutStructure *>( this );
     }
@@ -6738,7 +7171,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV &
-                            setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructure = accelerationStructure_;
       return *this;
@@ -6779,12 +7212,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( this );
     }
 
-    explicit operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV *>( this );
     }
@@ -6912,12 +7345,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo *>( this );
     }
 
-    explicit operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo *>( this );
     }
@@ -6964,6 +7397,7 @@
   {
     using Type = BindBufferMemoryDeviceGroupInfo;
   };
+
   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
 
   struct BindBufferMemoryInfo
@@ -7027,12 +7461,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindBufferMemoryInfo *>( this );
     }
 
-    explicit operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindBufferMemoryInfo *>( this );
     }
@@ -7084,8 +7518,328 @@
   {
     using Type = BindBufferMemoryInfo;
   };
+
   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
 
+  struct BindDescriptorBufferEmbeddedSamplersInfoEXT
+  {
+    using NativeType = VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBindDescriptorBufferEmbeddedSamplersInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BindDescriptorBufferEmbeddedSamplersInfoEXT( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
+                                                                      VULKAN_HPP_NAMESPACE::PipelineLayout   layout_     = {},
+                                                                      uint32_t                               set_        = {},
+                                                                      const void *                           pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , set( set_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindDescriptorBufferEmbeddedSamplersInfoEXT( BindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindDescriptorBufferEmbeddedSamplersInfoEXT( VkBindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BindDescriptorBufferEmbeddedSamplersInfoEXT( *reinterpret_cast<BindDescriptorBufferEmbeddedSamplersInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    BindDescriptorBufferEmbeddedSamplersInfoEXT & operator=( BindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindDescriptorBufferEmbeddedSamplersInfoEXT & operator=( VkBindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorBufferEmbeddedSamplersInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorBufferEmbeddedSamplersInfoEXT &
+      setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorBufferEmbeddedSamplersInfoEXT & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorBufferEmbeddedSamplersInfoEXT & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
+    {
+      set = set_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindDescriptorBufferEmbeddedSamplersInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( this );
+    }
+
+    operator VkBindDescriptorBufferEmbeddedSamplersInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stageFlags, layout, set );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindDescriptorBufferEmbeddedSamplersInfoEXT const & ) const = default;
+#else
+    bool operator==( BindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageFlags == rhs.stageFlags ) && ( layout == rhs.layout ) && ( set == rhs.set );
+#  endif
+    }
+
+    bool operator!=( BindDescriptorBufferEmbeddedSamplersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType      = StructureType::eBindDescriptorBufferEmbeddedSamplersInfoEXT;
+    const void *                           pNext      = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout   layout     = {};
+    uint32_t                               set        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eBindDescriptorBufferEmbeddedSamplersInfoEXT>
+  {
+    using Type = BindDescriptorBufferEmbeddedSamplersInfoEXT;
+  };
+
+  struct BindDescriptorSetsInfoKHR
+  {
+    using NativeType = VkBindDescriptorSetsInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBindDescriptorSetsInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BindDescriptorSetsInfoKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags      stageFlags_         = {},
+                                                    VULKAN_HPP_NAMESPACE::PipelineLayout        layout_             = {},
+                                                    uint32_t                                    firstSet_           = {},
+                                                    uint32_t                                    descriptorSetCount_ = {},
+                                                    const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets_    = {},
+                                                    uint32_t                                    dynamicOffsetCount_ = {},
+                                                    const uint32_t *                            pDynamicOffsets_    = {},
+                                                    const void *                                pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , firstSet( firstSet_ )
+      , descriptorSetCount( descriptorSetCount_ )
+      , pDescriptorSets( pDescriptorSets_ )
+      , dynamicOffsetCount( dynamicOffsetCount_ )
+      , pDynamicOffsets( pDynamicOffsets_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindDescriptorSetsInfoKHR( BindDescriptorSetsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindDescriptorSetsInfoKHR( VkBindDescriptorSetsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BindDescriptorSetsInfoKHR( *reinterpret_cast<BindDescriptorSetsInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    BindDescriptorSetsInfoKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags                                                           stageFlags_,
+                               VULKAN_HPP_NAMESPACE::PipelineLayout                                                             layout_,
+                               uint32_t                                                                                         firstSet_,
+                               VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets_,
+                               VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const &                            dynamicOffsets_ = {},
+                               const void *                                                                                     pNext_          = nullptr )
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , firstSet( firstSet_ )
+      , descriptorSetCount( static_cast<uint32_t>( descriptorSets_.size() ) )
+      , pDescriptorSets( descriptorSets_.data() )
+      , dynamicOffsetCount( static_cast<uint32_t>( dynamicOffsets_.size() ) )
+      , pDynamicOffsets( dynamicOffsets_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    BindDescriptorSetsInfoKHR & operator=( BindDescriptorSetsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindDescriptorSetsInfoKHR & operator=( VkBindDescriptorSetsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setFirstSet( uint32_t firstSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      firstSet = firstSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorSetCount = descriptorSetCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setPDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pDescriptorSets = pDescriptorSets_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    BindDescriptorSetsInfoKHR &
+      setDescriptorSets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorSetCount = static_cast<uint32_t>( descriptorSets_.size() );
+      pDescriptorSets    = descriptorSets_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setDynamicOffsetCount( uint32_t dynamicOffsetCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dynamicOffsetCount = dynamicOffsetCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindDescriptorSetsInfoKHR & setPDynamicOffsets( const uint32_t * pDynamicOffsets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pDynamicOffsets = pDynamicOffsets_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    BindDescriptorSetsInfoKHR & setDynamicOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & dynamicOffsets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dynamicOffsetCount = static_cast<uint32_t>( dynamicOffsets_.size() );
+      pDynamicOffsets    = dynamicOffsets_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindDescriptorSetsInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindDescriptorSetsInfoKHR *>( this );
+    }
+
+    operator VkBindDescriptorSetsInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindDescriptorSetsInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::DescriptorSet * const &,
+               uint32_t const &,
+               const uint32_t * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stageFlags, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindDescriptorSetsInfoKHR const & ) const = default;
+#else
+    bool operator==( BindDescriptorSetsInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageFlags == rhs.stageFlags ) && ( layout == rhs.layout ) && ( firstSet == rhs.firstSet ) &&
+             ( descriptorSetCount == rhs.descriptorSetCount ) && ( pDescriptorSets == rhs.pDescriptorSets ) &&
+             ( dynamicOffsetCount == rhs.dynamicOffsetCount ) && ( pDynamicOffsets == rhs.pDynamicOffsets );
+#  endif
+    }
+
+    bool operator!=( BindDescriptorSetsInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType         sType              = StructureType::eBindDescriptorSetsInfoKHR;
+    const void *                                pNext              = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags      stageFlags         = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout        layout             = {};
+    uint32_t                                    firstSet           = {};
+    uint32_t                                    descriptorSetCount = {};
+    const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets    = {};
+    uint32_t                                    dynamicOffsetCount = {};
+    const uint32_t *                            pDynamicOffsets    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eBindDescriptorSetsInfoKHR>
+  {
+    using Type = BindDescriptorSetsInfoKHR;
+  };
+
   struct Offset2D
   {
     using NativeType = VkOffset2D;
@@ -7124,12 +7878,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
+    operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkOffset2D *>( this );
     }
 
-    explicit operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
+    operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkOffset2D *>( this );
     }
@@ -7207,12 +7961,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRect2D *>( this );
     }
 
-    explicit operator VkRect2D &() VULKAN_HPP_NOEXCEPT
+    operator VkRect2D &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRect2D *>( this );
     }
@@ -7338,7 +8092,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo &
-                            setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
+      setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
     {
       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
       return *this;
@@ -7355,12 +8109,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo *>( this );
     }
 
-    explicit operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo *>( this );
     }
@@ -7415,6 +8169,7 @@
   {
     using Type = BindImageMemoryDeviceGroupInfo;
   };
+
   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
 
   struct BindImageMemoryInfo
@@ -7477,12 +8232,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindImageMemoryInfo *>( this );
     }
 
-    explicit operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindImageMemoryInfo *>( this );
     }
@@ -7534,6 +8289,7 @@
   {
     using Type = BindImageMemoryInfo;
   };
+
   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
 
   struct BindImageMemorySwapchainInfoKHR
@@ -7589,12 +8345,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR *>( this );
     }
 
-    explicit operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR *>( this );
     }
@@ -7687,12 +8443,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo *>( this );
     }
 
-    explicit operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindImagePlaneMemoryInfo *>( this );
     }
@@ -7738,6 +8494,7 @@
   {
     using Type = BindImagePlaneMemoryInfo;
   };
+
   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
 
   struct BindIndexBufferIndirectCommandNV
@@ -7791,12 +8548,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV *>( this );
     }
 
-    explicit operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
+    operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV *>( this );
     }
@@ -7837,6 +8594,179 @@
     VULKAN_HPP_NAMESPACE::IndexType     indexType     = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
   };
 
+  struct BindMemoryStatusKHR
+  {
+    using NativeType = VkBindMemoryStatusKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBindMemoryStatusKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BindMemoryStatusKHR( VULKAN_HPP_NAMESPACE::Result * pResult_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pResult( pResult_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindMemoryStatusKHR( BindMemoryStatusKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindMemoryStatusKHR( VkBindMemoryStatusKHR const & rhs ) VULKAN_HPP_NOEXCEPT : BindMemoryStatusKHR( *reinterpret_cast<BindMemoryStatusKHR const *>( &rhs ) )
+    {
+    }
+
+    BindMemoryStatusKHR & operator=( BindMemoryStatusKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindMemoryStatusKHR & operator=( VkBindMemoryStatusKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindMemoryStatusKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindMemoryStatusKHR & setPResult( VULKAN_HPP_NAMESPACE::Result * pResult_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pResult = pResult_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindMemoryStatusKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindMemoryStatusKHR *>( this );
+    }
+
+    operator VkBindMemoryStatusKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindMemoryStatusKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Result * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pResult );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindMemoryStatusKHR const & ) const = default;
+#else
+    bool operator==( BindMemoryStatusKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pResult == rhs.pResult );
+#  endif
+    }
+
+    bool operator!=( BindMemoryStatusKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType   = StructureType::eBindMemoryStatusKHR;
+    const void *                        pNext   = {};
+    VULKAN_HPP_NAMESPACE::Result *      pResult = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eBindMemoryStatusKHR>
+  {
+    using Type = BindMemoryStatusKHR;
+  };
+
+  struct BindPipelineIndirectCommandNV
+  {
+    using NativeType = VkBindPipelineIndirectCommandNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ = {} ) VULKAN_HPP_NOEXCEPT
+      : pipelineAddress( pipelineAddress_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindPipelineIndirectCommandNV( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BindPipelineIndirectCommandNV( *reinterpret_cast<BindPipelineIndirectCommandNV const *>( &rhs ) )
+    {
+    }
+
+    BindPipelineIndirectCommandNV & operator=( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindPipelineIndirectCommandNV & operator=( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindPipelineIndirectCommandNV & setPipelineAddress( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipelineAddress = pipelineAddress_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindPipelineIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindPipelineIndirectCommandNV *>( this );
+    }
+
+    operator VkBindPipelineIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindPipelineIndirectCommandNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( pipelineAddress );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindPipelineIndirectCommandNV const & ) const = default;
+#else
+    bool operator==( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( pipelineAddress == rhs.pipelineAddress );
+#  endif
+    }
+
+    bool operator!=( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress = {};
+  };
+
   struct BindShaderGroupIndirectCommandNV
   {
     using NativeType = VkBindShaderGroupIndirectCommandNV;
@@ -7868,12 +8798,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV *>( this );
     }
 
-    explicit operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
+    operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV *>( this );
     }
@@ -7975,12 +8905,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseMemoryBind *>( this );
     }
 
-    explicit operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseMemoryBind *>( this );
     }
@@ -8096,12 +9026,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo *>( this );
     }
 
-    explicit operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseBufferMemoryBindInfo *>( this );
     }
@@ -8210,12 +9140,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo *>( this );
     }
 
-    explicit operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo *>( this );
     }
@@ -8302,12 +9232,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageSubresource *>( this );
     }
 
-    explicit operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageSubresource *>( this );
     }
@@ -8395,12 +9325,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
+    operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkOffset3D *>( this );
     }
 
-    explicit operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
+    operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkOffset3D *>( this );
     }
@@ -8488,12 +9418,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
+    operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkExtent3D *>( this );
     }
 
-    explicit operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
+    operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkExtent3D *>( this );
     }
@@ -8608,12 +9538,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageMemoryBind *>( this );
     }
 
-    explicit operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageMemoryBind *>( this );
     }
@@ -8731,12 +9661,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageMemoryBindInfo *>( this );
     }
 
-    explicit operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageMemoryBindInfo *>( this );
     }
@@ -8903,7 +9833,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo &
-                            setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
+      setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
     {
       pImageOpaqueBinds = pImageOpaqueBinds_;
       return *this;
@@ -8964,12 +9894,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindSparseInfo *>( this );
     }
 
-    explicit operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindSparseInfo *>( this );
     }
@@ -9101,12 +10031,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV *>( this );
     }
 
-    explicit operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
+    operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV *>( this );
     }
@@ -9147,7 +10077,6 @@
     uint32_t                            stride        = {};
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct BindVideoSessionMemoryInfoKHR
   {
     using NativeType = VkBindVideoSessionMemoryInfoKHR;
@@ -9155,7 +10084,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBindVideoSessionMemoryInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( uint32_t                           memoryBindIndex_ = {},
                                                         VULKAN_HPP_NAMESPACE::DeviceMemory memory_          = {},
                                                         VULKAN_HPP_NAMESPACE::DeviceSize   memoryOffset_    = {},
@@ -9177,7 +10106,7 @@
     }
 
     BindVideoSessionMemoryInfoKHR & operator=( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     BindVideoSessionMemoryInfoKHR & operator=( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -9185,7 +10114,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -9215,7 +10144,7 @@
       memorySize = memorySize_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkBindVideoSessionMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -9227,41 +10156,41 @@
       return *reinterpret_cast<VkBindVideoSessionMemoryInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                VULKAN_HPP_NAMESPACE::DeviceMemory const &,
                VULKAN_HPP_NAMESPACE::DeviceSize const &,
                VULKAN_HPP_NAMESPACE::DeviceSize const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, memoryBindIndex, memory, memoryOffset, memorySize );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( BindVideoSessionMemoryInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memory == rhs.memory ) &&
              ( memoryOffset == rhs.memoryOffset ) && ( memorySize == rhs.memorySize );
-#    endif
+#  endif
     }
 
     bool operator!=( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eBindVideoSessionMemoryInfoKHR;
@@ -9277,7 +10206,104 @@
   {
     using Type = BindVideoSessionMemoryInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  struct BlitImageCubicWeightsInfoQCOM
+  {
+    using NativeType = VkBlitImageCubicWeightsInfoQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBlitImageCubicWeightsInfoQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      BlitImageCubicWeightsInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
+                                     const void *                                 pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cubicWeights( cubicWeights_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BlitImageCubicWeightsInfoQCOM( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BlitImageCubicWeightsInfoQCOM( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BlitImageCubicWeightsInfoQCOM( *reinterpret_cast<BlitImageCubicWeightsInfoQCOM const *>( &rhs ) )
+    {
+    }
+
+    BlitImageCubicWeightsInfoQCOM & operator=( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BlitImageCubicWeightsInfoQCOM & operator=( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cubicWeights = cubicWeights_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBlitImageCubicWeightsInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBlitImageCubicWeightsInfoQCOM *>( this );
+    }
+
+    operator VkBlitImageCubicWeightsInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBlitImageCubicWeightsInfoQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cubicWeights );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BlitImageCubicWeightsInfoQCOM const & ) const = default;
+#else
+    bool operator==( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicWeights == rhs.cubicWeights );
+#  endif
+    }
+
+    bool operator!=( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType          sType        = StructureType::eBlitImageCubicWeightsInfoQCOM;
+    const void *                                 pNext        = {};
+    VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eBlitImageCubicWeightsInfoQCOM>
+  {
+    using Type = BlitImageCubicWeightsInfoQCOM;
+  };
 
   struct ImageSubresourceLayers
   {
@@ -9337,12 +10363,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageSubresourceLayers *>( this );
     }
 
-    explicit operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageSubresourceLayers *>( this );
     }
@@ -9510,6 +10536,7 @@
   {
     using Type = ImageBlit2;
   };
+
   using ImageBlit2KHR = ImageBlit2;
 
   struct BlitImageInfo2
@@ -9698,6 +10725,7 @@
   {
     using Type = BlitImageInfo2;
   };
+
   using BlitImageInfo2KHR = BlitImageInfo2;
 
   struct BufferCaptureDescriptorDataInfoEXT
@@ -9748,7 +10776,6 @@
     {
       return *reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( this );
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkBufferCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
@@ -9783,7 +10810,7 @@
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType  = StructureType::eBufferCaptureDescriptorDataInfoEXT;
@@ -9796,755 +10823,6 @@
   {
     using Type = BufferCaptureDescriptorDataInfoEXT;
   };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  struct BufferCollectionConstraintsInfoFUCHSIA
-  {
-    using NativeType = VkBufferCollectionConstraintsInfoFUCHSIA;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
-      StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR
-      BufferCollectionConstraintsInfoFUCHSIA( uint32_t minBufferCount_                  = {},
-                                              uint32_t maxBufferCount_                  = {},
-                                              uint32_t minBufferCountForCamping_        = {},
-                                              uint32_t minBufferCountForDedicatedSlack_ = {},
-                                              uint32_t minBufferCountForSharedSlack_    = {} ) VULKAN_HPP_NOEXCEPT
-      : minBufferCount( minBufferCount_ )
-      , maxBufferCount( maxBufferCount_ )
-      , minBufferCountForCamping( minBufferCountForCamping_ )
-      , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
-      , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( BufferCollectionConstraintsInfoFUCHSIA const & rhs )
-      VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionConstraintsInfoFUCHSIA( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-      : BufferCollectionConstraintsInfoFUCHSIA(
-          *reinterpret_cast<BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs ) )
-    {}
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    BufferCollectionConstraintsInfoFUCHSIA &
-      operator=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionConstraintsInfoFUCHSIA &
-      operator=( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-      setMinBufferCount( uint32_t minBufferCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      minBufferCount = minBufferCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-      setMaxBufferCount( uint32_t maxBufferCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      maxBufferCount = maxBufferCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-      setMinBufferCountForCamping( uint32_t minBufferCountForCamping_ ) VULKAN_HPP_NOEXCEPT
-    {
-      minBufferCountForCamping = minBufferCountForCamping_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-      setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
-    {
-      minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-      setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
-    {
-      minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkBufferCollectionConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
-    }
-
-    explicit operator VkBufferCollectionConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
-    }
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType,
-                       pNext,
-                       minBufferCount,
-                       maxBufferCount,
-                       minBufferCountForCamping,
-                       minBufferCountForDedicatedSlack,
-                       minBufferCountForSharedSlack );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( BufferCollectionConstraintsInfoFUCHSIA const & ) const = default;
-#  else
-    bool operator==( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minBufferCount == rhs.minBufferCount ) &&
-             ( maxBufferCount == rhs.maxBufferCount ) && ( minBufferCountForCamping == rhs.minBufferCountForCamping ) &&
-             ( minBufferCountForDedicatedSlack == rhs.minBufferCountForDedicatedSlack ) &&
-             ( minBufferCountForSharedSlack == rhs.minBufferCountForSharedSlack );
-#    endif
-    }
-
-    bool operator!=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
-    const void *                        pNext          = {};
-    uint32_t                            minBufferCount = {};
-    uint32_t                            maxBufferCount = {};
-    uint32_t                            minBufferCountForCamping        = {};
-    uint32_t                            minBufferCountForDedicatedSlack = {};
-    uint32_t                            minBufferCountForSharedSlack    = {};
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA ) ==
-                              sizeof( VkBufferCollectionConstraintsInfoFUCHSIA ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_standard_layout<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA>::value,
-    "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA>::value,
-    "BufferCollectionConstraintsInfoFUCHSIA is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eBufferCollectionConstraintsInfoFUCHSIA>
-  {
-    using Type = BufferCollectionConstraintsInfoFUCHSIA;
-  };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  struct BufferCollectionCreateInfoFUCHSIA
-  {
-    using NativeType = VkBufferCollectionCreateInfoFUCHSIA;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
-      StructureType::eBufferCollectionCreateInfoFUCHSIA;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( zx_handle_t collectionToken_ = {} ) VULKAN_HPP_NOEXCEPT
-      : collectionToken( collectionToken_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR
-      BufferCollectionCreateInfoFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionCreateInfoFUCHSIA( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-      : BufferCollectionCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionCreateInfoFUCHSIA const *>( &rhs ) )
-    {}
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    BufferCollectionCreateInfoFUCHSIA &
-      operator=( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionCreateInfoFUCHSIA & operator=( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA &
-      setCollectionToken( zx_handle_t collectionToken_ ) VULKAN_HPP_NOEXCEPT
-    {
-      collectionToken = collectionToken_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkBufferCollectionCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( this );
-    }
-
-    explicit operator VkBufferCollectionCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkBufferCollectionCreateInfoFUCHSIA *>( this );
-    }
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, zx_handle_t const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, collectionToken );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
-        return cmp;
-      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
-        return cmp;
-      if ( auto cmp = memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ); cmp != 0 )
-        return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
-
-      return std::strong_ordering::equivalent;
-    }
-#  endif
-
-    bool operator==( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
-             ( memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ) == 0 );
-    }
-
-    bool operator!=( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eBufferCollectionCreateInfoFUCHSIA;
-    const void *                        pNext           = {};
-    zx_handle_t                         collectionToken = {};
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA ) ==
-                              sizeof( VkBufferCollectionCreateInfoFUCHSIA ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA>::value,
-                            "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA>::value,
-    "BufferCollectionCreateInfoFUCHSIA is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eBufferCollectionCreateInfoFUCHSIA>
-  {
-    using Type = BufferCollectionCreateInfoFUCHSIA;
-  };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  struct BufferCollectionImageCreateInfoFUCHSIA
-  {
-    using NativeType = VkBufferCollectionImageCreateInfoFUCHSIA;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
-      StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR
-      BufferCollectionImageCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
-                                              uint32_t index_ = {} ) VULKAN_HPP_NOEXCEPT
-      : collection( collection_ )
-      , index( index_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( BufferCollectionImageCreateInfoFUCHSIA const & rhs )
-      VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionImageCreateInfoFUCHSIA( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-      : BufferCollectionImageCreateInfoFUCHSIA(
-          *reinterpret_cast<BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs ) )
-    {}
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    BufferCollectionImageCreateInfoFUCHSIA &
-      operator=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionImageCreateInfoFUCHSIA &
-      operator=( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA &
-      setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
-    {
-      collection = collection_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
-    {
-      index = index_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkBufferCollectionImageCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
-    }
-
-    explicit operator VkBufferCollectionImageCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
-    }
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &,
-               uint32_t const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, collection, index );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( BufferCollectionImageCreateInfoFUCHSIA const & ) const = default;
-#  else
-    bool operator==( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) &&
-             ( index == rhs.index );
-#    endif
-    }
-
-    bool operator!=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType           sType      = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
-    const void *                                  pNext      = {};
-    VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
-    uint32_t                                      index      = {};
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA ) ==
-                              sizeof( VkBufferCollectionImageCreateInfoFUCHSIA ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_standard_layout<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA>::value,
-    "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA>::value,
-    "BufferCollectionImageCreateInfoFUCHSIA is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eBufferCollectionImageCreateInfoFUCHSIA>
-  {
-    using Type = BufferCollectionImageCreateInfoFUCHSIA;
-  };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  struct SysmemColorSpaceFUCHSIA
-  {
-    using NativeType = VkSysmemColorSpaceFUCHSIA;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSysmemColorSpaceFUCHSIA;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( uint32_t colorSpace_ = {} ) VULKAN_HPP_NOEXCEPT
-      : colorSpace( colorSpace_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    SysmemColorSpaceFUCHSIA( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-      : SysmemColorSpaceFUCHSIA( *reinterpret_cast<SysmemColorSpaceFUCHSIA const *>( &rhs ) )
-    {}
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    SysmemColorSpaceFUCHSIA & operator=( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    SysmemColorSpaceFUCHSIA & operator=( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setColorSpace( uint32_t colorSpace_ ) VULKAN_HPP_NOEXCEPT
-    {
-      colorSpace = colorSpace_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkSysmemColorSpaceFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkSysmemColorSpaceFUCHSIA *>( this );
-    }
-
-    explicit operator VkSysmemColorSpaceFUCHSIA &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkSysmemColorSpaceFUCHSIA *>( this );
-    }
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, colorSpace );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( SysmemColorSpaceFUCHSIA const & ) const = default;
-#  else
-    bool operator==( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorSpace == rhs.colorSpace );
-#    endif
-    }
-
-    bool operator!=( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType sType      = StructureType::eSysmemColorSpaceFUCHSIA;
-    const void *                        pNext      = {};
-    uint32_t                            colorSpace = {};
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA ) ==
-                              sizeof( VkSysmemColorSpaceFUCHSIA ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA>::value,
-                            "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA>::value,
-                            "SysmemColorSpaceFUCHSIA is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eSysmemColorSpaceFUCHSIA>
-  {
-    using Type = SysmemColorSpaceFUCHSIA;
-  };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-
-#if defined( VK_USE_PLATFORM_FUCHSIA )
-  struct BufferCollectionPropertiesFUCHSIA
-  {
-    using NativeType = VkBufferCollectionPropertiesFUCHSIA;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
-      StructureType::eBufferCollectionPropertiesFUCHSIA;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA(
-      uint32_t                                          memoryTypeBits_                   = {},
-      uint32_t                                          bufferCount_                      = {},
-      uint32_t                                          createInfoIndex_                  = {},
-      uint64_t                                          sysmemPixelFormat_                = {},
-      VULKAN_HPP_NAMESPACE::FormatFeatureFlags          formatFeatures_                   = {},
-      VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA     sysmemColorSpaceIndex_            = {},
-      VULKAN_HPP_NAMESPACE::ComponentMapping            samplerYcbcrConversionComponents_ = {},
-      VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ =
-        VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
-      VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
-      VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
-      VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ =
-        VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven ) VULKAN_HPP_NOEXCEPT
-      : memoryTypeBits( memoryTypeBits_ )
-      , bufferCount( bufferCount_ )
-      , createInfoIndex( createInfoIndex_ )
-      , sysmemPixelFormat( sysmemPixelFormat_ )
-      , formatFeatures( formatFeatures_ )
-      , sysmemColorSpaceIndex( sysmemColorSpaceIndex_ )
-      , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
-      , suggestedYcbcrModel( suggestedYcbcrModel_ )
-      , suggestedYcbcrRange( suggestedYcbcrRange_ )
-      , suggestedXChromaOffset( suggestedXChromaOffset_ )
-      , suggestedYChromaOffset( suggestedYChromaOffset_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR
-      BufferCollectionPropertiesFUCHSIA( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionPropertiesFUCHSIA( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-      : BufferCollectionPropertiesFUCHSIA( *reinterpret_cast<BufferCollectionPropertiesFUCHSIA const *>( &rhs ) )
-    {}
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    BufferCollectionPropertiesFUCHSIA &
-      operator=( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    BufferCollectionPropertiesFUCHSIA & operator=( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setMemoryTypeBits( uint32_t memoryTypeBits_ ) VULKAN_HPP_NOEXCEPT
-    {
-      memoryTypeBits = memoryTypeBits_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      bufferCount = bufferCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setCreateInfoIndex( uint32_t createInfoIndex_ ) VULKAN_HPP_NOEXCEPT
-    {
-      createInfoIndex = createInfoIndex_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
-    {
-      sysmemPixelFormat = sysmemPixelFormat_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
-    {
-      formatFeatures = formatFeatures_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSysmemColorSpaceIndex(
-      VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
-    {
-      sysmemColorSpaceIndex = sysmemColorSpaceIndex_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSamplerYcbcrConversionComponents(
-      VULKAN_HPP_NAMESPACE::ComponentMapping const & samplerYcbcrConversionComponents_ ) VULKAN_HPP_NOEXCEPT
-    {
-      samplerYcbcrConversionComponents = samplerYcbcrConversionComponents_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSuggestedYcbcrModel(
-      VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
-    {
-      suggestedYcbcrModel = suggestedYcbcrModel_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
-    {
-      suggestedYcbcrRange = suggestedYcbcrRange_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
-    {
-      suggestedXChromaOffset = suggestedXChromaOffset_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-      setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
-    {
-      suggestedYChromaOffset = suggestedYChromaOffset_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkBufferCollectionPropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkBufferCollectionPropertiesFUCHSIA *>( this );
-    }
-
-    explicit operator VkBufferCollectionPropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( this );
-    }
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               void * const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint64_t const &,
-               VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
-               VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const &,
-               VULKAN_HPP_NAMESPACE::ComponentMapping const &,
-               VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
-               VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
-               VULKAN_HPP_NAMESPACE::ChromaLocation const &,
-               VULKAN_HPP_NAMESPACE::ChromaLocation const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType,
-                       pNext,
-                       memoryTypeBits,
-                       bufferCount,
-                       createInfoIndex,
-                       sysmemPixelFormat,
-                       formatFeatures,
-                       sysmemColorSpaceIndex,
-                       samplerYcbcrConversionComponents,
-                       suggestedYcbcrModel,
-                       suggestedYcbcrRange,
-                       suggestedXChromaOffset,
-                       suggestedYChromaOffset );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( BufferCollectionPropertiesFUCHSIA const & ) const = default;
-#  else
-    bool operator==( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ) &&
-             ( bufferCount == rhs.bufferCount ) && ( createInfoIndex == rhs.createInfoIndex ) &&
-             ( sysmemPixelFormat == rhs.sysmemPixelFormat ) && ( formatFeatures == rhs.formatFeatures ) &&
-             ( sysmemColorSpaceIndex == rhs.sysmemColorSpaceIndex ) &&
-             ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
-             ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
-             ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) &&
-             ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
-#    endif
-    }
-
-    bool operator!=( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType               sType = StructureType::eBufferCollectionPropertiesFUCHSIA;
-    void *                                            pNext = {};
-    uint32_t                                          memoryTypeBits                   = {};
-    uint32_t                                          bufferCount                      = {};
-    uint32_t                                          createInfoIndex                  = {};
-    uint64_t                                          sysmemPixelFormat                = {};
-    VULKAN_HPP_NAMESPACE::FormatFeatureFlags          formatFeatures                   = {};
-    VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA     sysmemColorSpaceIndex            = {};
-    VULKAN_HPP_NAMESPACE::ComponentMapping            samplerYcbcrConversionComponents = {};
-    VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel =
-      VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
-    VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange    = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
-    VULKAN_HPP_NAMESPACE::ChromaLocation    suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
-    VULKAN_HPP_NAMESPACE::ChromaLocation    suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA ) ==
-                              sizeof( VkBufferCollectionPropertiesFUCHSIA ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>::value,
-                            "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT(
-    std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>::value,
-    "BufferCollectionPropertiesFUCHSIA is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eBufferCollectionPropertiesFUCHSIA>
-  {
-    using Type = BufferCollectionPropertiesFUCHSIA;
-  };
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
 
 #if defined( VK_USE_PLATFORM_FUCHSIA )
   struct BufferCollectionBufferCreateInfoFUCHSIA
@@ -10588,7 +10866,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA &
-                            setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
+      setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
     {
       collection = collection_;
       return *this;
@@ -10721,14 +10999,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-                            setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
+      setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
     {
       minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
-                            setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
+      setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
     {
       minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
       return *this;
@@ -10946,7 +11224,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA &
-                            setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
+      setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
     {
       collection = collection_;
       return *this;
@@ -11196,14 +11474,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
+      setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
     {
       formatFeatures = formatFeatures_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setSysmemColorSpaceIndex( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
+      setSysmemColorSpaceIndex( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
     {
       sysmemColorSpaceIndex = sysmemColorSpaceIndex_;
       return *this;
@@ -11217,28 +11495,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setSuggestedYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
+      setSuggestedYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
     {
       suggestedYcbcrModel = suggestedYcbcrModel_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
+      setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
     {
       suggestedYcbcrRange = suggestedYcbcrRange_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
+      setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       suggestedXChromaOffset = suggestedXChromaOffset_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
-                            setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
+      setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       suggestedYChromaOffset = suggestedYChromaOffset_;
       return *this;
@@ -11445,12 +11723,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferCreateInfo *>( this );
     }
 
-    explicit operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferCreateInfo *>( this );
     }
@@ -11560,7 +11838,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA &
-                            setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
+      setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
     {
       requiredFormatFeatures = requiredFormatFeatures_;
       return *this;
@@ -11842,6 +12120,7 @@
   {
     using Type = BufferCopy2;
   };
+
   using BufferCopy2KHR = BufferCopy2;
 
   struct BufferDeviceAddressCreateInfoEXT
@@ -11889,12 +12168,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT *>( this );
     }
 
-    explicit operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT *>( this );
     }
@@ -11985,12 +12264,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferDeviceAddressInfo *>( this );
     }
 
-    explicit operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferDeviceAddressInfo *>( this );
     }
@@ -12036,6 +12315,7 @@
   {
     using Type = BufferDeviceAddressInfo;
   };
+
   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
 
@@ -12110,12 +12390,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferImageCopy *>( this );
     }
 
-    explicit operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferImageCopy *>( this );
     }
@@ -12312,6 +12592,7 @@
   {
     using Type = BufferImageCopy2;
   };
+
   using BufferImageCopy2KHR = BufferImageCopy2;
 
   struct BufferMemoryBarrier
@@ -12406,12 +12687,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferMemoryBarrier *>( this );
     }
 
-    explicit operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferMemoryBarrier *>( this );
     }
@@ -12654,6 +12935,7 @@
   {
     using Type = BufferMemoryBarrier2;
   };
+
   using BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
 
   struct BufferMemoryRequirementsInfo2
@@ -12700,12 +12982,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( this );
     }
 
-    explicit operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2 *>( this );
     }
@@ -12751,6 +13033,7 @@
   {
     using Type = BufferMemoryRequirementsInfo2;
   };
+
   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
 
   struct BufferOpaqueCaptureAddressCreateInfo
@@ -12797,12 +13080,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo *>( this );
     }
 
-    explicit operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo *>( this );
     }
@@ -12848,8 +13131,106 @@
   {
     using Type = BufferOpaqueCaptureAddressCreateInfo;
   };
+
   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
 
+  struct BufferUsageFlags2CreateInfoKHR
+  {
+    using NativeType = VkBufferUsageFlags2CreateInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eBufferUsageFlags2CreateInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ = {},
+                                                         const void *                               pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , usage( usage_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BufferUsageFlags2CreateInfoKHR( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BufferUsageFlags2CreateInfoKHR( *reinterpret_cast<BufferUsageFlags2CreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    BufferUsageFlags2CreateInfoKHR & operator=( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BufferUsageFlags2CreateInfoKHR & operator=( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      usage = usage_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBufferUsageFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR *>( this );
+    }
+
+    operator VkBufferUsageFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, usage );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BufferUsageFlags2CreateInfoKHR const & ) const = default;
+#else
+    bool operator==( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage );
+#  endif
+    }
+
+    bool operator!=( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType        sType = StructureType::eBufferUsageFlags2CreateInfoKHR;
+    const void *                               pNext = {};
+    VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eBufferUsageFlags2CreateInfoKHR>
+  {
+    using Type = BufferUsageFlags2CreateInfoKHR;
+  };
+
   struct BufferViewCreateInfo
   {
     using NativeType = VkBufferViewCreateInfo;
@@ -12927,12 +13308,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkBufferViewCreateInfo *>( this );
     }
 
-    explicit operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkBufferViewCreateInfo *>( this );
     }
@@ -12990,66 +13371,66 @@
     using Type = BufferViewCreateInfo;
   };
 
-  struct CalibratedTimestampInfoEXT
+  struct CalibratedTimestampInfoKHR
   {
-    using NativeType = VkCalibratedTimestampInfoEXT;
+    using NativeType = VkCalibratedTimestampInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCalibratedTimestampInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCalibratedTimestampInfoKHR;
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice,
+    VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoKHR( VULKAN_HPP_NAMESPACE::TimeDomainKHR timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainKHR::eDevice,
                                                      const void *                        pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , timeDomain( timeDomain_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoKHR( CalibratedTimestampInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : CalibratedTimestampInfoEXT( *reinterpret_cast<CalibratedTimestampInfoEXT const *>( &rhs ) )
+    CalibratedTimestampInfoKHR( VkCalibratedTimestampInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CalibratedTimestampInfoKHR( *reinterpret_cast<CalibratedTimestampInfoKHR const *>( &rhs ) )
     {
     }
 
-    CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    CalibratedTimestampInfoKHR & operator=( CalibratedTimestampInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    CalibratedTimestampInfoKHR & operator=( VkCalibratedTimestampInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR const *>( &rhs );
       return *this;
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoKHR & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainKHR timeDomain_ ) VULKAN_HPP_NOEXCEPT
     {
       timeDomain = timeDomain_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCalibratedTimestampInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( this );
+      return *reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( this );
     }
 
-    explicit operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkCalibratedTimestampInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkCalibratedTimestampInfoEXT *>( this );
+      return *reinterpret_cast<VkCalibratedTimestampInfoKHR *>( this );
     }
 
 #if defined( VULKAN_HPP_USE_REFLECT )
 #  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
 #  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TimeDomainEXT const &>
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TimeDomainKHR const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -13058,9 +13439,9 @@
 #endif
 
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( CalibratedTimestampInfoEXT const & ) const = default;
+    auto operator<=>( CalibratedTimestampInfoKHR const & ) const = default;
 #else
-    bool operator==( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( CalibratedTimestampInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -13069,24 +13450,26 @@
 #  endif
     }
 
-    bool operator!=( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( CalibratedTimestampInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 #endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType      = StructureType::eCalibratedTimestampInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType      = StructureType::eCalibratedTimestampInfoKHR;
     const void *                        pNext      = {};
-    VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
+    VULKAN_HPP_NAMESPACE::TimeDomainKHR timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainKHR::eDevice;
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
+  struct CppType<StructureType, StructureType::eCalibratedTimestampInfoKHR>
   {
-    using Type = CalibratedTimestampInfoEXT;
+    using Type = CalibratedTimestampInfoKHR;
   };
 
+  using CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR;
+
   struct CheckpointData2NV
   {
     using NativeType = VkCheckpointData2NV;
@@ -13116,12 +13499,12 @@
       return *this;
     }
 
-    explicit operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCheckpointData2NV *>( this );
     }
 
-    explicit operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
+    operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCheckpointData2NV *>( this );
     }
@@ -13199,12 +13582,12 @@
       return *this;
     }
 
-    explicit operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCheckpointDataNV *>( this );
     }
 
-    explicit operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
+    operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCheckpointDataNV *>( this );
     }
@@ -13260,20 +13643,21 @@
     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<float, 4> & float32_ = {} ) : float32( float32_ ) {}
 
     VULKAN_HPP_CONSTEXPR ClearColorValue( float float32_0, float float32_1, float float32_2, float float32_3 )
-      : float32( { float32_0, float32_1, float32_2, float32_3 } )
+      : float32{ { { float32_0, float32_1, float32_2, float32_3 } } }
     {
     }
 
     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<int32_t, 4> & int32_ ) : int32( int32_ ) {}
 
-    VULKAN_HPP_CONSTEXPR ClearColorValue( int32_t int32_0, int32_t int32_1, int32_t int32_2, int32_t int32_3 ) : int32( { int32_0, int32_1, int32_2, int32_3 } )
+    VULKAN_HPP_CONSTEXPR ClearColorValue( int32_t int32_0, int32_t int32_1, int32_t int32_2, int32_t int32_3 )
+      : int32{ { { int32_0, int32_1, int32_2, int32_3 } } }
     {
     }
 
     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<uint32_t, 4> & uint32_ ) : uint32( uint32_ ) {}
 
     VULKAN_HPP_CONSTEXPR ClearColorValue( uint32_t uint32_0, uint32_t uint32_1, uint32_t uint32_2, uint32_t uint32_3 )
-      : uint32( { uint32_0, uint32_1, uint32_2, uint32_3 } )
+      : uint32{ { { uint32_0, uint32_1, uint32_2, uint32_3 } } }
     {
     }
 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
@@ -13354,12 +13738,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
+    operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkClearDepthStencilValue *>( this );
     }
 
-    explicit operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
+    operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkClearDepthStencilValue *>( this );
     }
@@ -13489,12 +13873,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
+    operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkClearAttachment *>( this );
     }
 
-    explicit operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
+    operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkClearAttachment *>( this );
     }
@@ -13562,12 +13946,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
+    operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkClearRect *>( this );
     }
 
-    explicit operator VkClearRect &() VULKAN_HPP_NOEXCEPT
+    operator VkClearRect &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkClearRect *>( this );
     }
@@ -13656,12 +14040,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCoarseSampleLocationNV *>( this );
     }
 
-    explicit operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
+    operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCoarseSampleLocationNV *>( this );
     }
@@ -13767,7 +14151,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV &
-                            setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
+      setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
     {
       pSampleLocations = pSampleLocations_;
       return *this;
@@ -13784,12 +14168,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( this );
     }
 
-    explicit operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
+    operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCoarseSampleOrderCustomNV *>( this );
     }
@@ -14144,12 +14528,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferAllocateInfo *>( this );
     }
 
-    explicit operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferAllocateInfo *>( this );
     }
@@ -14282,19 +14666,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo &
-                            setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineStatistics = pipelineStatistics_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferInheritanceInfo *>( this );
     }
 
-    explicit operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferInheritanceInfo *>( this );
     }
@@ -14402,19 +14786,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo &
-                            setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
+      setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pInheritanceInfo = pInheritanceInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferBeginInfo *>( this );
     }
 
-    explicit operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferBeginInfo *>( this );
     }
@@ -14506,19 +14890,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT &
-                            setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
+      setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       conditionalRenderingEnable = conditionalRenderingEnable_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
     }
 
-    explicit operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
     }
@@ -14609,26 +14993,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
-                            setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
+      setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
     {
       transform = transform_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
-                            setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
+      setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
     {
       renderArea = renderArea_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
     }
 
-    explicit operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
     }
@@ -14769,7 +15153,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
-                            setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
+      setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorAttachmentFormats = pColorAttachmentFormats_;
       return *this;
@@ -14786,21 +15170,21 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
-                            setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
+      setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       depthAttachmentFormat = depthAttachmentFormat_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
-                            setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
+      setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       stencilAttachmentFormat = stencilAttachmentFormat_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
-                            setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
+      setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
     {
       rasterizationSamples = rasterizationSamples_;
       return *this;
@@ -14876,6 +15260,7 @@
   {
     using Type = CommandBufferInheritanceRenderingInfo;
   };
+
   using CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
 
   struct Viewport
@@ -14945,12 +15330,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
+    operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkViewport *>( this );
     }
 
-    explicit operator VkViewport &() VULKAN_HPP_NOEXCEPT
+    operator VkViewport &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkViewport *>( this );
     }
@@ -15039,7 +15424,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
-                            setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
+      setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
     {
       viewportScissor2D = viewportScissor2D_;
       return *this;
@@ -15052,19 +15437,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
-                            setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT
+      setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT
     {
       pViewportDepths = pViewportDepths_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
     }
 
-    explicit operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
     }
@@ -15223,6 +15608,7 @@
   {
     using Type = CommandBufferSubmitInfo;
   };
+
   using CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
 
   struct CommandPoolCreateInfo
@@ -15278,12 +15664,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCommandPoolCreateInfo *>( this );
     }
 
-    explicit operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCommandPoolCreateInfo *>( this );
     }
@@ -15379,12 +15765,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSpecializationMapEntry *>( this );
     }
 
-    explicit operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
+    operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSpecializationMapEntry *>( this );
     }
@@ -15512,12 +15898,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSpecializationInfo *>( this );
     }
 
-    explicit operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSpecializationInfo *>( this );
     }
@@ -15630,19 +16016,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo &
-                            setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
+      setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pSpecializationInfo = pSpecializationInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo *>( this );
     }
 
-    explicit operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineShaderStageCreateInfo *>( this );
     }
@@ -15792,12 +16178,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkComputePipelineCreateInfo *>( this );
     }
 
-    explicit operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkComputePipelineCreateInfo *>( this );
     }
@@ -15855,6 +16241,127 @@
     using Type = ComputePipelineCreateInfo;
   };
 
+  struct ComputePipelineIndirectBufferInfoNV
+  {
+    using NativeType = VkComputePipelineIndirectBufferInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eComputePipelineIndirectBufferInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_                      = {},
+                                                              VULKAN_HPP_NAMESPACE::DeviceSize    size_                               = {},
+                                                              VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ = {},
+                                                              const void *                        pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , deviceAddress( deviceAddress_ )
+      , size( size_ )
+      , pipelineDeviceAddressCaptureReplay( pipelineDeviceAddressCaptureReplay_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ComputePipelineIndirectBufferInfoNV( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ComputePipelineIndirectBufferInfoNV( *reinterpret_cast<ComputePipelineIndirectBufferInfoNV const *>( &rhs ) )
+    {
+    }
+
+    ComputePipelineIndirectBufferInfoNV & operator=( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ComputePipelineIndirectBufferInfoNV & operator=( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceAddress = deviceAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV &
+      setPipelineDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipelineDeviceAddressCaptureReplay = pipelineDeviceAddressCaptureReplay_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkComputePipelineIndirectBufferInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkComputePipelineIndirectBufferInfoNV *>( this );
+    }
+
+    operator VkComputePipelineIndirectBufferInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkComputePipelineIndirectBufferInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::DeviceAddress const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::DeviceAddress const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, deviceAddress, size, pipelineDeviceAddressCaptureReplay );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ComputePipelineIndirectBufferInfoNV const & ) const = default;
+#else
+    bool operator==( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ) && ( size == rhs.size ) &&
+             ( pipelineDeviceAddressCaptureReplay == rhs.pipelineDeviceAddressCaptureReplay );
+#  endif
+    }
+
+    bool operator!=( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                              = StructureType::eComputePipelineIndirectBufferInfoNV;
+    const void *                        pNext                              = {};
+    VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress                      = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize    size                               = {};
+    VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eComputePipelineIndirectBufferInfoNV>
+  {
+    using Type = ComputePipelineIndirectBufferInfoNV;
+  };
+
   struct ConditionalRenderingBeginInfoEXT
   {
     using NativeType = VkConditionalRenderingBeginInfoEXT;
@@ -15916,12 +16423,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( this );
     }
 
-    explicit operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT *>( this );
     }
@@ -16026,12 +16533,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
+    operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkConformanceVersion *>( this );
     }
 
-    explicit operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
+    operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkConformanceVersion *>( this );
     }
@@ -16072,8 +16579,191 @@
     uint8_t subminor = {};
     uint8_t patch    = {};
   };
+
   using ConformanceVersionKHR = ConformanceVersion;
 
+  struct CooperativeMatrixPropertiesKHR
+  {
+    using NativeType = VkCooperativeMatrixPropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCooperativeMatrixPropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR( uint32_t                               MSize_      = {},
+                                                         uint32_t                               NSize_      = {},
+                                                         uint32_t                               KSize_      = {},
+                                                         VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_      = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
+                                                         VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_      = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
+                                                         VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_      = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
+                                                         VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
+                                                         VULKAN_HPP_NAMESPACE::Bool32           saturatingAccumulation_ = {},
+                                                         VULKAN_HPP_NAMESPACE::ScopeKHR         scope_ = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice,
+                                                         void *                                 pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , MSize( MSize_ )
+      , NSize( NSize_ )
+      , KSize( KSize_ )
+      , AType( AType_ )
+      , BType( BType_ )
+      , CType( CType_ )
+      , ResultType( ResultType_ )
+      , saturatingAccumulation( saturatingAccumulation_ )
+      , scope( scope_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CooperativeMatrixPropertiesKHR( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CooperativeMatrixPropertiesKHR( *reinterpret_cast<CooperativeMatrixPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    CooperativeMatrixPropertiesKHR & operator=( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CooperativeMatrixPropertiesKHR & operator=( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      MSize = MSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      NSize = NSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      KSize = KSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      AType = AType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      BType = BType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      CType = CType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setResultType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      ResultType = ResultType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR &
+      setSaturatingAccumulation( VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      saturatingAccumulation = saturatingAccumulation_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setScope( VULKAN_HPP_NAMESPACE::ScopeKHR scope_ ) VULKAN_HPP_NOEXCEPT
+    {
+      scope = scope_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCooperativeMatrixPropertiesKHR *>( this );
+    }
+
+    operator VkCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
+               VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
+               VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
+               VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::ScopeKHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, ResultType, saturatingAccumulation, scope );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CooperativeMatrixPropertiesKHR const & ) const = default;
+#else
+    bool operator==( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( MSize == rhs.MSize ) && ( NSize == rhs.NSize ) && ( KSize == rhs.KSize ) &&
+             ( AType == rhs.AType ) && ( BType == rhs.BType ) && ( CType == rhs.CType ) && ( ResultType == rhs.ResultType ) &&
+             ( saturatingAccumulation == rhs.saturatingAccumulation ) && ( scope == rhs.scope );
+#  endif
+    }
+
+    bool operator!=( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType                  = StructureType::eCooperativeMatrixPropertiesKHR;
+    void *                                 pNext                  = {};
+    uint32_t                               MSize                  = {};
+    uint32_t                               NSize                  = {};
+    uint32_t                               KSize                  = {};
+    VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType                  = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
+    VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType                  = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
+    VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType                  = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
+    VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType             = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
+    VULKAN_HPP_NAMESPACE::Bool32           saturatingAccumulation = {};
+    VULKAN_HPP_NAMESPACE::ScopeKHR         scope                  = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesKHR>
+  {
+    using Type = CooperativeMatrixPropertiesKHR;
+  };
+
   struct CooperativeMatrixPropertiesNV
   {
     using NativeType = VkCooperativeMatrixPropertiesNV;
@@ -16085,11 +16775,11 @@
     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( uint32_t                              MSize_ = {},
                                                         uint32_t                              NSize_ = {},
                                                         uint32_t                              KSize_ = {},
-                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
-                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
-                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
-                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
-                                                        VULKAN_HPP_NAMESPACE::ScopeNV         scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice,
+                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = {},
+                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = {},
+                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = {},
+                                                        VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = {},
+                                                        VULKAN_HPP_NAMESPACE::ScopeNV         scope_ = {},
                                                         void *                                pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , MSize( MSize_ )
@@ -16175,12 +16865,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV *>( this );
     }
 
-    explicit operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( this );
     }
@@ -16231,11 +16921,11 @@
     uint32_t                              MSize = {};
     uint32_t                              NSize = {};
     uint32_t                              KSize = {};
-    VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
-    VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
-    VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
-    VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
-    VULKAN_HPP_NAMESPACE::ScopeNV         scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
+    VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = {};
+    VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = {};
+    VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = {};
+    VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = {};
+    VULKAN_HPP_NAMESPACE::ScopeNV         scope = {};
   };
 
   template <>
@@ -16306,12 +16996,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( this );
     }
 
-    explicit operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR *>( this );
     }
@@ -16420,19 +17110,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR &
-                            setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
+      setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
     {
       mode = mode_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
     }
 
-    explicit operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
     }
@@ -16612,6 +17302,7 @@
   {
     using Type = CopyBufferInfo2;
   };
+
   using CopyBufferInfo2KHR = CopyBufferInfo2;
 
   struct CopyBufferToImageInfo2
@@ -16779,6 +17470,7 @@
   {
     using Type = CopyBufferToImageInfo2;
   };
+
   using CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
 
   struct CopyCommandTransformInfoQCOM
@@ -16827,12 +17519,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM *>( this );
     }
 
-    explicit operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCopyCommandTransformInfoQCOM *>( this );
     }
@@ -16969,12 +17661,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCopyDescriptorSet *>( this );
     }
 
-    explicit operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
+    operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCopyDescriptorSet *>( this );
     }
@@ -17173,6 +17865,7 @@
   {
     using Type = ImageCopy2;
   };
+
   using ImageCopy2KHR = ImageCopy2;
 
   struct CopyImageInfo2
@@ -17348,6 +18041,7 @@
   {
     using Type = CopyImageInfo2;
   };
+
   using CopyImageInfo2KHR = CopyImageInfo2;
 
   struct CopyImageToBufferInfo2
@@ -17389,8 +18083,7 @@
       : pNext( pNext_ )
       , srcImage( srcImage_ )
       , srcImageLayout( srcImageLayout_ )
-      , dstImage( dstImage_ )
-      , dstImageLayout( dstImageLayout_ )
+      , dstBuffer( dstBuffer_ )
       , regionCount( static_cast<uint32_t>( regions_.size() ) )
       , pRegions( regions_.data() )
     {
@@ -17427,7 +18120,7 @@
 
     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
-      dstImage = dstImage_;
+      dstBuffer = dstBuffer_;
       return *this;
     }
 
@@ -17516,8 +18209,518 @@
   {
     using Type = CopyImageToBufferInfo2;
   };
+
   using CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
 
+  struct CopyImageToImageInfoEXT
+  {
+    using NativeType = VkCopyImageToImageInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCopyImageToImageInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_          = {},
+                                                  VULKAN_HPP_NAMESPACE::Image                 srcImage_       = {},
+                                                  VULKAN_HPP_NAMESPACE::ImageLayout           srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                  VULKAN_HPP_NAMESPACE::Image                 dstImage_       = {},
+                                                  VULKAN_HPP_NAMESPACE::ImageLayout           dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                  uint32_t                                    regionCount_    = {},
+                                                  const VULKAN_HPP_NAMESPACE::ImageCopy2 *    pRegions_       = {},
+                                                  const void *                                pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , srcImage( srcImage_ )
+      , srcImageLayout( srcImageLayout_ )
+      , dstImage( dstImage_ )
+      , dstImageLayout( dstImageLayout_ )
+      , regionCount( regionCount_ )
+      , pRegions( pRegions_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CopyImageToImageInfoEXT( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CopyImageToImageInfoEXT( *reinterpret_cast<CopyImageToImageInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyImageToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT                                                   flags_,
+                             VULKAN_HPP_NAMESPACE::Image                                                                   srcImage_,
+                             VULKAN_HPP_NAMESPACE::ImageLayout                                                             srcImageLayout_,
+                             VULKAN_HPP_NAMESPACE::Image                                                                   dstImage_,
+                             VULKAN_HPP_NAMESPACE::ImageLayout                                                             dstImageLayout_,
+                             VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_,
+                             const void *                                                                                  pNext_ = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , srcImage( srcImage_ )
+      , srcImageLayout( srcImageLayout_ )
+      , dstImage( dstImage_ )
+      , dstImageLayout( dstImageLayout_ )
+      , regionCount( static_cast<uint32_t>( regions_.size() ) )
+      , pRegions( regions_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    CopyImageToImageInfoEXT & operator=( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CopyImageToImageInfoEXT & operator=( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      srcImage = srcImage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      srcImageLayout = srcImageLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstImage = dstImage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstImageLayout = dstImageLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = regionCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pRegions = pRegions_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyImageToImageInfoEXT &
+      setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = static_cast<uint32_t>( regions_.size() );
+      pRegions    = regions_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCopyImageToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCopyImageToImageInfoEXT *>( this );
+    }
+
+    operator VkCopyImageToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCopyImageToImageInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::Image const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               VULKAN_HPP_NAMESPACE::Image const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CopyImageToImageInfoEXT const & ) const = default;
+#else
+    bool operator==( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcImage == rhs.srcImage ) &&
+             ( srcImageLayout == rhs.srcImageLayout ) && ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) &&
+             ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
+#  endif
+    }
+
+    bool operator!=( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType         sType          = StructureType::eCopyImageToImageInfoEXT;
+    const void *                                pNext          = {};
+    VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags          = {};
+    VULKAN_HPP_NAMESPACE::Image                 srcImage       = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout           srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    VULKAN_HPP_NAMESPACE::Image                 dstImage       = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout           dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    uint32_t                                    regionCount    = {};
+    const VULKAN_HPP_NAMESPACE::ImageCopy2 *    pRegions       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCopyImageToImageInfoEXT>
+  {
+    using Type = CopyImageToImageInfoEXT;
+  };
+
+  struct ImageToMemoryCopyEXT
+  {
+    using NativeType = VkImageToMemoryCopyEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eImageToMemoryCopyEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT( void *                                       pHostPointer_      = {},
+                                               uint32_t                                     memoryRowLength_   = {},
+                                               uint32_t                                     memoryImageHeight_ = {},
+                                               VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_  = {},
+                                               VULKAN_HPP_NAMESPACE::Offset3D               imageOffset_       = {},
+                                               VULKAN_HPP_NAMESPACE::Extent3D               imageExtent_       = {},
+                                               const void *                                 pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pHostPointer( pHostPointer_ )
+      , memoryRowLength( memoryRowLength_ )
+      , memoryImageHeight( memoryImageHeight_ )
+      , imageSubresource( imageSubresource_ )
+      , imageOffset( imageOffset_ )
+      , imageExtent( imageExtent_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ImageToMemoryCopyEXT( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ImageToMemoryCopyEXT( *reinterpret_cast<ImageToMemoryCopyEXT const *>( &rhs ) )
+    {
+    }
+
+    ImageToMemoryCopyEXT & operator=( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ImageToMemoryCopyEXT & operator=( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pHostPointer = pHostPointer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memoryRowLength = memoryRowLength_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memoryImageHeight = memoryImageHeight_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT &
+      setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageSubresource = imageSubresource_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageOffset = imageOffset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageExtent = imageExtent_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkImageToMemoryCopyEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkImageToMemoryCopyEXT *>( this );
+    }
+
+    operator VkImageToMemoryCopyEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkImageToMemoryCopyEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
+               VULKAN_HPP_NAMESPACE::Offset3D const &,
+               VULKAN_HPP_NAMESPACE::Extent3D const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ImageToMemoryCopyEXT const & ) const = default;
+#else
+    bool operator==( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pHostPointer == rhs.pHostPointer ) && ( memoryRowLength == rhs.memoryRowLength ) &&
+             ( memoryImageHeight == rhs.memoryImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
+             ( imageExtent == rhs.imageExtent );
+#  endif
+    }
+
+    bool operator!=( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType          sType             = StructureType::eImageToMemoryCopyEXT;
+    const void *                                 pNext             = {};
+    void *                                       pHostPointer      = {};
+    uint32_t                                     memoryRowLength   = {};
+    uint32_t                                     memoryImageHeight = {};
+    VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource  = {};
+    VULKAN_HPP_NAMESPACE::Offset3D               imageOffset       = {};
+    VULKAN_HPP_NAMESPACE::Extent3D               imageExtent       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eImageToMemoryCopyEXT>
+  {
+    using Type = ImageToMemoryCopyEXT;
+  };
+
+  struct CopyImageToMemoryInfoEXT
+  {
+    using NativeType = VkCopyImageToMemoryInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCopyImageToMemoryInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_           = {},
+                                                   VULKAN_HPP_NAMESPACE::Image                 srcImage_        = {},
+                                                   VULKAN_HPP_NAMESPACE::ImageLayout           srcImageLayout_  = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                   uint32_t                                    regionCount_     = {},
+                                                   const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ = {},
+                                                   const void *                                       pNext_    = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , srcImage( srcImage_ )
+      , srcImageLayout( srcImageLayout_ )
+      , regionCount( regionCount_ )
+      , pRegions( pRegions_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CopyImageToMemoryInfoEXT( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CopyImageToMemoryInfoEXT( *reinterpret_cast<CopyImageToMemoryInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyImageToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT                                                             flags_,
+                              VULKAN_HPP_NAMESPACE::Image                                                                             srcImage_,
+                              VULKAN_HPP_NAMESPACE::ImageLayout                                                                       srcImageLayout_,
+                              VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_,
+                              const void *                                                                                            pNext_ = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , srcImage( srcImage_ )
+      , srcImageLayout( srcImageLayout_ )
+      , regionCount( static_cast<uint32_t>( regions_.size() ) )
+      , pRegions( regions_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    CopyImageToMemoryInfoEXT & operator=( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CopyImageToMemoryInfoEXT & operator=( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      srcImage = srcImage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      srcImageLayout = srcImageLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = regionCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pRegions = pRegions_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyImageToMemoryInfoEXT &
+      setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = static_cast<uint32_t>( regions_.size() );
+      pRegions    = regions_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCopyImageToMemoryInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( this );
+    }
+
+    operator VkCopyImageToMemoryInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCopyImageToMemoryInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::Image const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, srcImage, srcImageLayout, regionCount, pRegions );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CopyImageToMemoryInfoEXT const & ) const = default;
+#else
+    bool operator==( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcImage == rhs.srcImage ) &&
+             ( srcImageLayout == rhs.srcImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
+#  endif
+    }
+
+    bool operator!=( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                sType          = StructureType::eCopyImageToMemoryInfoEXT;
+    const void *                                       pNext          = {};
+    VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT        flags          = {};
+    VULKAN_HPP_NAMESPACE::Image                        srcImage       = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout                  srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    uint32_t                                           regionCount    = {};
+    const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCopyImageToMemoryInfoEXT>
+  {
+    using Type = CopyImageToMemoryInfoEXT;
+  };
+
   struct CopyMemoryIndirectCommandNV
   {
     using NativeType = VkCopyMemoryIndirectCommandNV;
@@ -17613,182 +18816,6 @@
     VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress = {};
     VULKAN_HPP_NAMESPACE::DeviceSize    size       = {};
   };
-  using CopyImageInfo2KHR = CopyImageInfo2;
-
-  struct CopyImageToBufferInfo2
-  {
-    using NativeType = VkCopyImageToBufferInfo2;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCopyImageToBufferInfo2;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2(
-      VULKAN_HPP_NAMESPACE::Image                    srcImage_       = {},
-      VULKAN_HPP_NAMESPACE::ImageLayout              srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
-      VULKAN_HPP_NAMESPACE::Buffer                   dstBuffer_      = {},
-      uint32_t                                       regionCount_    = {},
-      const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_       = {} ) VULKAN_HPP_NOEXCEPT
-      : srcImage( srcImage_ )
-      , srcImageLayout( srcImageLayout_ )
-      , dstBuffer( dstBuffer_ )
-      , regionCount( regionCount_ )
-      , pRegions( pRegions_ )
-    {}
-
-    VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    CopyImageToBufferInfo2( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
-      : CopyImageToBufferInfo2( *reinterpret_cast<CopyImageToBufferInfo2 const *>( &rhs ) )
-    {}
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    CopyImageToBufferInfo2(
-      VULKAN_HPP_NAMESPACE::Image       srcImage_,
-      VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
-      VULKAN_HPP_NAMESPACE::Buffer      dstBuffer_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ )
-      : srcImage( srcImage_ )
-      , srcImageLayout( srcImageLayout_ )
-      , dstBuffer( dstBuffer_ )
-      , regionCount( static_cast<uint32_t>( regions_.size() ) )
-      , pRegions( regions_.data() )
-    {}
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif   /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    CopyImageToBufferInfo2 & operator=( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    CopyImageToBufferInfo2 & operator=( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 &
-      setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
-    {
-      srcImage = srcImage_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 &
-      setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
-    {
-      srcImageLayout = srcImageLayout_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 &
-      setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
-    {
-      dstBuffer = dstBuffer_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      regionCount = regionCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 &
-      setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pRegions = pRegions_;
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    CopyImageToBufferInfo2 & setRegions(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ )
-      VULKAN_HPP_NOEXCEPT
-    {
-      regionCount = static_cast<uint32_t>( regions_.size() );
-      pRegions    = regions_.data();
-      return *this;
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkCopyImageToBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkCopyImageToBufferInfo2 *>( this );
-    }
-
-    explicit operator VkCopyImageToBufferInfo2 &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkCopyImageToBufferInfo2 *>( this );
-    }
-
-#if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               VULKAN_HPP_NAMESPACE::Image const &,
-               VULKAN_HPP_NAMESPACE::ImageLayout const &,
-               VULKAN_HPP_NAMESPACE::Buffer const &,
-               uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( CopyImageToBufferInfo2 const & ) const = default;
-#else
-    bool operator==( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) &&
-             ( srcImageLayout == rhs.srcImageLayout ) && ( dstBuffer == rhs.dstBuffer ) &&
-             ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
-#  endif
-    }
-
-    bool operator!=( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType            sType          = StructureType::eCopyImageToBufferInfo2;
-    const void *                                   pNext          = {};
-    VULKAN_HPP_NAMESPACE::Image                    srcImage       = {};
-    VULKAN_HPP_NAMESPACE::ImageLayout              srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
-    VULKAN_HPP_NAMESPACE::Buffer                   dstBuffer      = {};
-    uint32_t                                       regionCount    = {};
-    const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions       = {};
-  };
-  VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 ) ==
-                              sizeof( VkCopyImageToBufferInfo2 ),
-                            "struct and wrapper have different size!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2>::value,
-                            "struct wrapper is not a standard layout!" );
-  VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2>::value,
-                            "CopyImageToBufferInfo2 is not nothrow_move_constructible!" );
-
-  template <>
-  struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2>
-  {
-    using Type = CopyImageToBufferInfo2;
-  };
-  using CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
 
   struct CopyMemoryToAccelerationStructureInfoKHR
   {
@@ -17834,7 +18861,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
-                            setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
+      setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
     {
       src = src_;
       return *this;
@@ -17847,19 +18874,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
-                            setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
+      setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
     {
       mode = mode_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
     }
 
-    explicit operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
     }
@@ -17950,7 +18977,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV &
-                            setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
+      setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
     {
       imageSubresource = imageSubresource_;
       return *this;
@@ -18024,6 +19051,324 @@
     VULKAN_HPP_NAMESPACE::Extent3D               imageExtent       = {};
   };
 
+  struct MemoryToImageCopyEXT
+  {
+    using NativeType = VkMemoryToImageCopyEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eMemoryToImageCopyEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT( const void *                                 pHostPointer_      = {},
+                                               uint32_t                                     memoryRowLength_   = {},
+                                               uint32_t                                     memoryImageHeight_ = {},
+                                               VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_  = {},
+                                               VULKAN_HPP_NAMESPACE::Offset3D               imageOffset_       = {},
+                                               VULKAN_HPP_NAMESPACE::Extent3D               imageExtent_       = {},
+                                               const void *                                 pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pHostPointer( pHostPointer_ )
+      , memoryRowLength( memoryRowLength_ )
+      , memoryImageHeight( memoryImageHeight_ )
+      , imageSubresource( imageSubresource_ )
+      , imageOffset( imageOffset_ )
+      , imageExtent( imageExtent_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    MemoryToImageCopyEXT( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : MemoryToImageCopyEXT( *reinterpret_cast<MemoryToImageCopyEXT const *>( &rhs ) )
+    {
+    }
+
+    MemoryToImageCopyEXT & operator=( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    MemoryToImageCopyEXT & operator=( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPHostPointer( const void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pHostPointer = pHostPointer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memoryRowLength = memoryRowLength_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memoryImageHeight = memoryImageHeight_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT &
+      setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageSubresource = imageSubresource_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageOffset = imageOffset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageExtent = imageExtent_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkMemoryToImageCopyEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkMemoryToImageCopyEXT *>( this );
+    }
+
+    operator VkMemoryToImageCopyEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkMemoryToImageCopyEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               const void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
+               VULKAN_HPP_NAMESPACE::Offset3D const &,
+               VULKAN_HPP_NAMESPACE::Extent3D const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( MemoryToImageCopyEXT const & ) const = default;
+#else
+    bool operator==( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pHostPointer == rhs.pHostPointer ) && ( memoryRowLength == rhs.memoryRowLength ) &&
+             ( memoryImageHeight == rhs.memoryImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
+             ( imageExtent == rhs.imageExtent );
+#  endif
+    }
+
+    bool operator!=( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType          sType             = StructureType::eMemoryToImageCopyEXT;
+    const void *                                 pNext             = {};
+    const void *                                 pHostPointer      = {};
+    uint32_t                                     memoryRowLength   = {};
+    uint32_t                                     memoryImageHeight = {};
+    VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource  = {};
+    VULKAN_HPP_NAMESPACE::Offset3D               imageOffset       = {};
+    VULKAN_HPP_NAMESPACE::Extent3D               imageExtent       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eMemoryToImageCopyEXT>
+  {
+    using Type = MemoryToImageCopyEXT;
+  };
+
+  struct CopyMemoryToImageInfoEXT
+  {
+    using NativeType = VkCopyMemoryToImageInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCopyMemoryToImageInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_           = {},
+                                                   VULKAN_HPP_NAMESPACE::Image                 dstImage_        = {},
+                                                   VULKAN_HPP_NAMESPACE::ImageLayout           dstImageLayout_  = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                   uint32_t                                    regionCount_     = {},
+                                                   const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ = {},
+                                                   const void *                                       pNext_    = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , dstImage( dstImage_ )
+      , dstImageLayout( dstImageLayout_ )
+      , regionCount( regionCount_ )
+      , pRegions( pRegions_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CopyMemoryToImageInfoEXT( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CopyMemoryToImageInfoEXT( *reinterpret_cast<CopyMemoryToImageInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyMemoryToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT                                                             flags_,
+                              VULKAN_HPP_NAMESPACE::Image                                                                             dstImage_,
+                              VULKAN_HPP_NAMESPACE::ImageLayout                                                                       dstImageLayout_,
+                              VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_,
+                              const void *                                                                                            pNext_ = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , dstImage( dstImage_ )
+      , dstImageLayout( dstImageLayout_ )
+      , regionCount( static_cast<uint32_t>( regions_.size() ) )
+      , pRegions( regions_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    CopyMemoryToImageInfoEXT & operator=( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CopyMemoryToImageInfoEXT & operator=( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstImage = dstImage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstImageLayout = dstImageLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = regionCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pRegions = pRegions_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CopyMemoryToImageInfoEXT &
+      setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
+    {
+      regionCount = static_cast<uint32_t>( regions_.size() );
+      pRegions    = regions_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCopyMemoryToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( this );
+    }
+
+    operator VkCopyMemoryToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCopyMemoryToImageInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::Image const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, dstImage, dstImageLayout, regionCount, pRegions );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CopyMemoryToImageInfoEXT const & ) const = default;
+#else
+    bool operator==( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dstImage == rhs.dstImage ) &&
+             ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
+#  endif
+    }
+
+    bool operator!=( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                sType          = StructureType::eCopyMemoryToImageInfoEXT;
+    const void *                                       pNext          = {};
+    VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT        flags          = {};
+    VULKAN_HPP_NAMESPACE::Image                        dstImage       = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout                  dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    uint32_t                                           regionCount    = {};
+    const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCopyMemoryToImageInfoEXT>
+  {
+    using Type = CopyMemoryToImageInfoEXT;
+  };
+
   struct CopyMemoryToMicromapInfoEXT
   {
     using NativeType = VkCopyMemoryToMicromapInfoEXT;
@@ -18396,12 +19741,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( this );
     }
 
-    explicit operator VkCuFunctionCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkCuFunctionCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCuFunctionCreateInfoNVX *>( this );
     }
@@ -18635,12 +19980,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkCuLaunchInfoNVX *>( this );
     }
 
-    explicit operator VkCuLaunchInfoNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkCuLaunchInfoNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCuLaunchInfoNVX *>( this );
     }
@@ -18789,7 +20134,7 @@
       return *reinterpret_cast<const VkCuModuleCreateInfoNVX *>( this );
     }
 
-    explicit operator VkCuModuleCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkCuModuleCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkCuModuleCreateInfoNVX *>( this );
     }
@@ -18837,6 +20182,505 @@
     using Type = CuModuleCreateInfoNVX;
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct CudaFunctionCreateInfoNV
+  {
+    using NativeType = VkCudaFunctionCreateInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCudaFunctionCreateInfoNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      CudaFunctionCreateInfoNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , module( module_ )
+      , pName( pName_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CudaFunctionCreateInfoNV( CudaFunctionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CudaFunctionCreateInfoNV( VkCudaFunctionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CudaFunctionCreateInfoNV( *reinterpret_cast<CudaFunctionCreateInfoNV const *>( &rhs ) )
+    {
+    }
+
+    CudaFunctionCreateInfoNV & operator=( CudaFunctionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CudaFunctionCreateInfoNV & operator=( VkCudaFunctionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CudaFunctionCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaFunctionCreateInfoNV & setModule( VULKAN_HPP_NAMESPACE::CudaModuleNV module_ ) VULKAN_HPP_NOEXCEPT
+    {
+      module = module_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaFunctionCreateInfoNV & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pName = pName_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCudaFunctionCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( this );
+    }
+
+    operator VkCudaFunctionCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCudaFunctionCreateInfoNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CudaModuleNV const &, const char * const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, module, pName );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( CudaFunctionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = module <=> rhs.module; cmp != 0 )
+        return cmp;
+      if ( pName != rhs.pName )
+        if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
+          return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+
+      return std::strong_ordering::equivalent;
+    }
+#  endif
+
+    bool operator==( CudaFunctionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( module == rhs.module ) && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) );
+    }
+
+    bool operator!=( CudaFunctionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType  = StructureType::eCudaFunctionCreateInfoNV;
+    const void *                        pNext  = {};
+    VULKAN_HPP_NAMESPACE::CudaModuleNV  module = {};
+    const char *                        pName  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCudaFunctionCreateInfoNV>
+  {
+    using Type = CudaFunctionCreateInfoNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct CudaLaunchInfoNV
+  {
+    using NativeType = VkCudaLaunchInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCudaLaunchInfoNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CudaLaunchInfoNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV function_       = {},
+                                           uint32_t                             gridDimX_       = {},
+                                           uint32_t                             gridDimY_       = {},
+                                           uint32_t                             gridDimZ_       = {},
+                                           uint32_t                             blockDimX_      = {},
+                                           uint32_t                             blockDimY_      = {},
+                                           uint32_t                             blockDimZ_      = {},
+                                           uint32_t                             sharedMemBytes_ = {},
+                                           size_t                               paramCount_     = {},
+                                           const void * const *                 pParams_        = {},
+                                           size_t                               extraCount_     = {},
+                                           const void * const *                 pExtras_        = {},
+                                           const void *                         pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , function( function_ )
+      , gridDimX( gridDimX_ )
+      , gridDimY( gridDimY_ )
+      , gridDimZ( gridDimZ_ )
+      , blockDimX( blockDimX_ )
+      , blockDimY( blockDimY_ )
+      , blockDimZ( blockDimZ_ )
+      , sharedMemBytes( sharedMemBytes_ )
+      , paramCount( paramCount_ )
+      , pParams( pParams_ )
+      , extraCount( extraCount_ )
+      , pExtras( pExtras_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CudaLaunchInfoNV( CudaLaunchInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CudaLaunchInfoNV( VkCudaLaunchInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT : CudaLaunchInfoNV( *reinterpret_cast<CudaLaunchInfoNV const *>( &rhs ) ) {}
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CudaLaunchInfoNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV                                      function_,
+                      uint32_t                                                                  gridDimX_,
+                      uint32_t                                                                  gridDimY_,
+                      uint32_t                                                                  gridDimZ_,
+                      uint32_t                                                                  blockDimX_,
+                      uint32_t                                                                  blockDimY_,
+                      uint32_t                                                                  blockDimZ_,
+                      uint32_t                                                                  sharedMemBytes_,
+                      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_,
+                      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ = {},
+                      const void *                                                              pNext_  = nullptr )
+      : pNext( pNext_ )
+      , function( function_ )
+      , gridDimX( gridDimX_ )
+      , gridDimY( gridDimY_ )
+      , gridDimZ( gridDimZ_ )
+      , blockDimX( blockDimX_ )
+      , blockDimY( blockDimY_ )
+      , blockDimZ( blockDimZ_ )
+      , sharedMemBytes( sharedMemBytes_ )
+      , paramCount( params_.size() )
+      , pParams( params_.data() )
+      , extraCount( extras_.size() )
+      , pExtras( extras_.data() )
+    {
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    CudaLaunchInfoNV & operator=( CudaLaunchInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CudaLaunchInfoNV & operator=( VkCudaLaunchInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setFunction( VULKAN_HPP_NAMESPACE::CudaFunctionNV function_ ) VULKAN_HPP_NOEXCEPT
+    {
+      function = function_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setGridDimX( uint32_t gridDimX_ ) VULKAN_HPP_NOEXCEPT
+    {
+      gridDimX = gridDimX_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setGridDimY( uint32_t gridDimY_ ) VULKAN_HPP_NOEXCEPT
+    {
+      gridDimY = gridDimY_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setGridDimZ( uint32_t gridDimZ_ ) VULKAN_HPP_NOEXCEPT
+    {
+      gridDimZ = gridDimZ_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setBlockDimX( uint32_t blockDimX_ ) VULKAN_HPP_NOEXCEPT
+    {
+      blockDimX = blockDimX_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setBlockDimY( uint32_t blockDimY_ ) VULKAN_HPP_NOEXCEPT
+    {
+      blockDimY = blockDimY_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setBlockDimZ( uint32_t blockDimZ_ ) VULKAN_HPP_NOEXCEPT
+    {
+      blockDimZ = blockDimZ_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setSharedMemBytes( uint32_t sharedMemBytes_ ) VULKAN_HPP_NOEXCEPT
+    {
+      sharedMemBytes = sharedMemBytes_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setParamCount( size_t paramCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      paramCount = paramCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setPParams( const void * const * pParams_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pParams = pParams_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CudaLaunchInfoNV & setParams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_ ) VULKAN_HPP_NOEXCEPT
+    {
+      paramCount = params_.size();
+      pParams    = params_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setExtraCount( size_t extraCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      extraCount = extraCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaLaunchInfoNV & setPExtras( const void * const * pExtras_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pExtras = pExtras_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    CudaLaunchInfoNV & setExtras( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ ) VULKAN_HPP_NOEXCEPT
+    {
+      extraCount = extras_.size();
+      pExtras    = extras_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCudaLaunchInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCudaLaunchInfoNV *>( this );
+    }
+
+    operator VkCudaLaunchInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCudaLaunchInfoNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::CudaFunctionNV const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               size_t const &,
+               const void * const * const &,
+               size_t const &,
+               const void * const * const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie(
+        sType, pNext, function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CudaLaunchInfoNV const & ) const = default;
+#  else
+    bool operator==( CudaLaunchInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( function == rhs.function ) && ( gridDimX == rhs.gridDimX ) && ( gridDimY == rhs.gridDimY ) &&
+             ( gridDimZ == rhs.gridDimZ ) && ( blockDimX == rhs.blockDimX ) && ( blockDimY == rhs.blockDimY ) && ( blockDimZ == rhs.blockDimZ ) &&
+             ( sharedMemBytes == rhs.sharedMemBytes ) && ( paramCount == rhs.paramCount ) && ( pParams == rhs.pParams ) && ( extraCount == rhs.extraCount ) &&
+             ( pExtras == rhs.pExtras );
+#    endif
+    }
+
+    bool operator!=( CudaLaunchInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType  sType          = StructureType::eCudaLaunchInfoNV;
+    const void *                         pNext          = {};
+    VULKAN_HPP_NAMESPACE::CudaFunctionNV function       = {};
+    uint32_t                             gridDimX       = {};
+    uint32_t                             gridDimY       = {};
+    uint32_t                             gridDimZ       = {};
+    uint32_t                             blockDimX      = {};
+    uint32_t                             blockDimY      = {};
+    uint32_t                             blockDimZ      = {};
+    uint32_t                             sharedMemBytes = {};
+    size_t                               paramCount     = {};
+    const void * const *                 pParams        = {};
+    size_t                               extraCount     = {};
+    const void * const *                 pExtras        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCudaLaunchInfoNV>
+  {
+    using Type = CudaLaunchInfoNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct CudaModuleCreateInfoNV
+  {
+    using NativeType = VkCudaModuleCreateInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eCudaModuleCreateInfoNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR CudaModuleCreateInfoNV( size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , dataSize( dataSize_ )
+      , pData( pData_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR CudaModuleCreateInfoNV( CudaModuleCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    CudaModuleCreateInfoNV( VkCudaModuleCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : CudaModuleCreateInfoNV( *reinterpret_cast<CudaModuleCreateInfoNV const *>( &rhs ) )
+    {
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    CudaModuleCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
+      : pNext( pNext_ ), dataSize( data_.size() * sizeof( T ) ), pData( data_.data() )
+    {
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    CudaModuleCreateInfoNV & operator=( CudaModuleCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    CudaModuleCreateInfoNV & operator=( VkCudaModuleCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 CudaModuleCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaModuleCreateInfoNV & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dataSize = dataSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 CudaModuleCreateInfoNV & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pData = pData_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    CudaModuleCreateInfoNV & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dataSize = data_.size() * sizeof( T );
+      pData    = data_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkCudaModuleCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkCudaModuleCreateInfoNV *>( this );
+    }
+
+    operator VkCudaModuleCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkCudaModuleCreateInfoNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, size_t const &, const void * const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, dataSize, pData );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( CudaModuleCreateInfoNV const & ) const = default;
+#  else
+    bool operator==( CudaModuleCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
+#    endif
+    }
+
+    bool operator!=( CudaModuleCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType    = StructureType::eCudaModuleCreateInfoNV;
+    const void *                        pNext    = {};
+    size_t                              dataSize = {};
+    const void *                        pData    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eCudaModuleCreateInfoNV>
+  {
+    using Type = CudaModuleCreateInfoNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
   struct D3D12FenceSubmitInfoKHR
   {
@@ -18940,12 +20784,12 @@
 #    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR *>( this );
     }
 
-    explicit operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR *>( this );
     }
@@ -19055,12 +20899,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( this );
     }
 
-    explicit operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT *>( this );
     }
@@ -19180,12 +21024,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( this );
     }
 
-    explicit operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT *>( this );
     }
@@ -19350,12 +21194,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( this );
     }
 
-    explicit operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT *>( this );
     }
@@ -19474,12 +21318,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( this );
     }
 
-    explicit operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT *>( this );
     }
@@ -19577,12 +21421,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugUtilsLabelEXT *>( this );
     }
 
-    explicit operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugUtilsLabelEXT *>( this );
     }
@@ -19701,12 +21545,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( this );
     }
 
-    explicit operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT *>( this );
     }
@@ -19850,7 +21694,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
-                            setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -19881,7 +21725,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
-                            setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
+      setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
     {
       pQueueLabels = pQueueLabels_;
       return *this;
@@ -19904,7 +21748,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
-                            setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
+      setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
     {
       pCmdBufLabels = pCmdBufLabels_;
       return *this;
@@ -19927,7 +21771,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
-                            setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT
+      setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT
     {
       pObjects = pObjects_;
       return *this;
@@ -19944,12 +21788,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( this );
     }
 
-    explicit operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT *>( this );
     }
@@ -20100,14 +21944,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
-                            setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
+      setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
     {
       messageSeverity = messageSeverity_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
-                            setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
+      setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
     {
       messageType = messageType_;
       return *this;
@@ -20126,12 +21970,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( this );
     }
 
-    explicit operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT *>( this );
     }
@@ -20289,12 +22133,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( this );
     }
 
-    explicit operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT *>( this );
     }
@@ -20412,7 +22256,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV &
-                            setDecompressionMethod( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ ) VULKAN_HPP_NOEXCEPT
+      setDecompressionMethod( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ ) VULKAN_HPP_NOEXCEPT
     {
       decompressionMethod = decompressionMethod_;
       return *this;
@@ -20511,19 +22355,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV &
-                            setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
+      setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
     {
       dedicatedAllocation = dedicatedAllocation_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV *>( this );
     }
 
-    explicit operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV *>( this );
     }
@@ -20609,19 +22453,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV &
-                            setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
+      setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
     {
       dedicatedAllocation = dedicatedAllocation_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV *>( this );
     }
 
-    explicit operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV *>( this );
     }
@@ -20721,12 +22565,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
     }
 
-    explicit operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
     }
@@ -20900,6 +22744,7 @@
   {
     using Type = MemoryBarrier2;
   };
+
   using MemoryBarrier2KHR = MemoryBarrier2;
 
   struct ImageSubresourceRange
@@ -20968,12 +22813,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageSubresourceRange *>( this );
     }
 
-    explicit operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
+    operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageSubresourceRange *>( this );
     }
@@ -21127,7 +22972,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 &
-                            setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
+      setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
     {
       subresourceRange = subresourceRange_;
       return *this;
@@ -21219,6 +23064,7 @@
   {
     using Type = ImageMemoryBarrier2;
   };
+
   using ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
 
   struct DependencyInfo
@@ -21321,7 +23167,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
-                            setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
+      setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
     {
       pBufferMemoryBarriers = pBufferMemoryBarriers_;
       return *this;
@@ -21344,7 +23190,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
-                            setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
+      setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
     {
       pImageMemoryBarriers = pImageMemoryBarriers_;
       return *this;
@@ -21437,8 +23283,234 @@
   {
     using Type = DependencyInfo;
   };
+
   using DependencyInfoKHR = DependencyInfo;
 
+  struct DepthBiasInfoEXT
+  {
+    using NativeType = VkDepthBiasInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eDepthBiasInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT( float        depthBiasConstantFactor_ = {},
+                                           float        depthBiasClamp_          = {},
+                                           float        depthBiasSlopeFactor_    = {},
+                                           const void * pNext_                   = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , depthBiasConstantFactor( depthBiasConstantFactor_ )
+      , depthBiasClamp( depthBiasClamp_ )
+      , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DepthBiasInfoEXT( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DepthBiasInfoEXT( *reinterpret_cast<DepthBiasInfoEXT const *>( &rhs ) ) {}
+
+    DepthBiasInfoEXT & operator=( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DepthBiasInfoEXT & operator=( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasConstantFactor = depthBiasConstantFactor_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasClamp = depthBiasClamp_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasSlopeFactor = depthBiasSlopeFactor_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDepthBiasInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDepthBiasInfoEXT *>( this );
+    }
+
+    operator VkDepthBiasInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDepthBiasInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &, float const &, float const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DepthBiasInfoEXT const & ) const = default;
+#else
+    bool operator==( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) &&
+             ( depthBiasClamp == rhs.depthBiasClamp ) && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor );
+#  endif
+    }
+
+    bool operator!=( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                   = StructureType::eDepthBiasInfoEXT;
+    const void *                        pNext                   = {};
+    float                               depthBiasConstantFactor = {};
+    float                               depthBiasClamp          = {};
+    float                               depthBiasSlopeFactor    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eDepthBiasInfoEXT>
+  {
+    using Type = DepthBiasInfoEXT;
+  };
+
+  struct DepthBiasRepresentationInfoEXT
+  {
+    using NativeType = VkDepthBiasRepresentationInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eDepthBiasRepresentationInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ =
+                                                           VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat,
+                                                         VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {},
+                                                         const void *                 pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , depthBiasRepresentation( depthBiasRepresentation_ )
+      , depthBiasExact( depthBiasExact_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DepthBiasRepresentationInfoEXT( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DepthBiasRepresentationInfoEXT( *reinterpret_cast<DepthBiasRepresentationInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    DepthBiasRepresentationInfoEXT & operator=( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DepthBiasRepresentationInfoEXT & operator=( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT &
+      setDepthBiasRepresentation( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasRepresentation = depthBiasRepresentation_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasExact = depthBiasExact_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDepthBiasRepresentationInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDepthBiasRepresentationInfoEXT *>( this );
+    }
+
+    operator VkDepthBiasRepresentationInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDepthBiasRepresentationInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, depthBiasRepresentation, depthBiasExact );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DepthBiasRepresentationInfoEXT const & ) const = default;
+#else
+    bool operator==( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasRepresentation == rhs.depthBiasRepresentation ) &&
+             ( depthBiasExact == rhs.depthBiasExact );
+#  endif
+    }
+
+    bool operator!=( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType              sType                   = StructureType::eDepthBiasRepresentationInfoEXT;
+    const void *                                     pNext                   = {};
+    VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation = VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat;
+    VULKAN_HPP_NAMESPACE::Bool32                     depthBiasExact          = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eDepthBiasRepresentationInfoEXT>
+  {
+    using Type = DepthBiasRepresentationInfoEXT;
+  };
+
   struct DescriptorAddressInfoEXT
   {
     using NativeType = VkDescriptorAddressInfoEXT;
@@ -21765,7 +23837,6 @@
   {
     using Type = DescriptorBufferBindingPushDescriptorBufferHandleEXT;
   };
-  using DependencyInfoKHR = DependencyInfo;
 
   struct DescriptorBufferInfo
   {
@@ -21817,12 +23888,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorBufferInfo *>( this );
     }
 
-    explicit operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorBufferInfo *>( this );
     }
@@ -21913,12 +23984,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorImageInfo *>( this );
     }
 
-    explicit operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorImageInfo *>( this );
     }
@@ -21987,14 +24058,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
-                            setPCombinedImageSampler( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler_ ) VULKAN_HPP_NOEXCEPT
+      setPCombinedImageSampler( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler_ ) VULKAN_HPP_NOEXCEPT
     {
       pCombinedImageSampler = pCombinedImageSampler_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
-                            setPInputAttachmentImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage_ ) VULKAN_HPP_NOEXCEPT
+      setPInputAttachmentImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage_ ) VULKAN_HPP_NOEXCEPT
     {
       pInputAttachmentImage = pInputAttachmentImage_;
       return *this;
@@ -22013,14 +24084,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
-                            setPUniformTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setPUniformTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       pUniformTexelBuffer = pUniformTexelBuffer_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
-                            setPStorageTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setPStorageTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       pStorageTexelBuffer = pStorageTexelBuffer_;
       return *this;
@@ -22210,12 +24281,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorPoolSize *>( this );
     }
 
-    explicit operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorPoolSize *>( this );
     }
@@ -22344,12 +24415,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorPoolCreateInfo *>( this );
     }
 
-    explicit operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorPoolCreateInfo *>( this );
     }
@@ -22444,7 +24515,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo &
-                            setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
+      setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
     {
       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
       return *this;
@@ -22502,6 +24573,7 @@
   {
     using Type = DescriptorPoolInlineUniformBlockCreateInfo;
   };
+
   using DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
 
   struct DescriptorSetAllocateInfo
@@ -22584,12 +24656,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetAllocateInfo *>( this );
     }
 
-    explicit operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetAllocateInfo *>( this );
     }
@@ -22684,7 +24756,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE &
-                            setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorSetLayout = descriptorSetLayout_;
       return *this;
@@ -22840,12 +24912,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetLayoutBinding *>( this );
     }
 
-    explicit operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetLayoutBinding *>( this );
     }
@@ -22948,7 +25020,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo &
-                            setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
+      setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       pBindingFlags = pBindingFlags_;
       return *this;
@@ -22965,12 +25037,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
     }
 
-    explicit operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
     }
@@ -23018,6 +25090,7 @@
   {
     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
   };
+
   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
 
   struct DescriptorSetLayoutCreateInfo
@@ -23084,7 +25157,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo &
-                            setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT
+      setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT
     {
       pBindings = pBindings_;
       return *this;
@@ -23101,12 +25174,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( this );
     }
 
-    explicit operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo *>( this );
     }
@@ -23295,12 +25368,12 @@
       return *this;
     }
 
-    explicit operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetLayoutSupport *>( this );
     }
 
-    explicit operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetLayoutSupport *>( this );
     }
@@ -23346,6 +25419,7 @@
   {
     using Type = DescriptorSetLayoutSupport;
   };
+
   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
 
   struct DescriptorSetVariableDescriptorCountAllocateInfo
@@ -23420,12 +25494,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
     }
 
-    explicit operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
     }
@@ -23473,6 +25547,7 @@
   {
     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
   };
+
   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
 
   struct DescriptorSetVariableDescriptorCountLayoutSupport
@@ -23508,12 +25583,12 @@
       return *this;
     }
 
-    explicit operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
     }
 
-    explicit operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
     }
@@ -23559,6 +25634,7 @@
   {
     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
   };
+
   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
 
   struct DescriptorUpdateTemplateEntry
@@ -23635,12 +25711,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry *>( this );
     }
 
-    explicit operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry *>( this );
     }
@@ -23684,6 +25760,7 @@
     size_t                               offset          = {};
     size_t                               stride          = {};
   };
+
   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
 
   struct DescriptorUpdateTemplateCreateInfo
@@ -23763,7 +25840,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -23794,21 +25871,21 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
-                            setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
+      setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
     {
       templateType = templateType_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
-                            setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorSetLayout = descriptorSetLayout_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
-                            setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineBindPoint = pipelineBindPoint_;
       return *this;
@@ -23827,12 +25904,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( this );
     }
 
-    explicit operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo *>( this );
     }
@@ -23898,6 +25975,7 @@
   {
     using Type = DescriptorUpdateTemplateCreateInfo;
   };
+
   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
 
   struct DeviceAddressBindingCallbackDataEXT
@@ -23964,7 +26042,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT &
-                            setBindingType( VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ ) VULKAN_HPP_NOEXCEPT
+      setBindingType( VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ ) VULKAN_HPP_NOEXCEPT
     {
       bindingType = bindingType_;
       return *this;
@@ -24128,6 +26206,7 @@
   {
     using Type = DeviceBufferMemoryRequirements;
   };
+
   using DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
 
   struct DeviceQueueCreateInfo
@@ -24222,12 +26301,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceQueueCreateInfo *>( this );
     }
 
-    explicit operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceQueueCreateInfo *>( this );
     }
@@ -24545,7 +26624,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
+      setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
     {
       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
       return *this;
@@ -24570,7 +26649,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
+      setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
       return *this;
@@ -24596,28 +26675,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
+      setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
+      setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderStorageImageMultisample = shaderStorageImageMultisample_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
+      setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
-                            setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
+      setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
       return *this;
@@ -24760,12 +26839,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFeatures *>( this );
     }
@@ -25075,7 +27154,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo &
-                            setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
+      setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
     {
       pQueueCreateInfos = pQueueCreateInfos_;
       return *this;
@@ -25142,12 +27221,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceCreateInfo *>( this );
     }
 
-    explicit operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceCreateInfo *>( this );
     }
@@ -25307,7 +27386,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT &
-                            setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
+      setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
     {
       pfnUserCallback = pfnUserCallback_;
       return *this;
@@ -25320,12 +27399,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
     }
 
-    explicit operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
     }
@@ -25420,12 +27499,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
     }
 
-    explicit operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
     }
@@ -25514,12 +27593,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceEventInfoEXT *>( this );
     }
 
-    explicit operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceEventInfoEXT *>( this );
     }
@@ -26016,7 +28095,9 @@
       std::array<uint8_t, VK_UUID_SIZE> const &                     pipelineCacheUUID_ = {},
       uint32_t                                                      applicationNameOffset_ = {},
       uint32_t                                                      applicationVersion_    = {},
-      uint32_t                                                      engineNameOffset_      = {} ) VULKAN_HPP_NOEXCEPT
+      uint32_t                                                      engineNameOffset_      = {},
+      uint32_t                                                      engineVersion_         = {},
+      uint32_t                                                      apiVersion_            = {} ) VULKAN_HPP_NOEXCEPT
       : headerSize( headerSize_ )
       , headerVersion( headerVersion_ )
       , vendorID( vendorID_ )
@@ -26026,6 +28107,8 @@
       , applicationNameOffset( applicationNameOffset_ )
       , applicationVersion( applicationVersion_ )
       , engineNameOffset( engineNameOffset_ )
+      , engineVersion( engineVersion_ )
+      , apiVersion( apiVersion_ )
     {
     }
 
@@ -26053,7 +28136,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT &
-                            setHeaderVersion( VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ ) VULKAN_HPP_NOEXCEPT
+      setHeaderVersion( VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ ) VULKAN_HPP_NOEXCEPT
     {
       headerVersion = headerVersion_;
       return *this;
@@ -26078,7 +28161,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT &
-                            setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineCacheUUID = pipelineCacheUUID_;
       return *this;
@@ -26101,6 +28184,18 @@
       engineNameOffset = engineNameOffset_;
       return *this;
     }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
+    {
+      engineVersion = engineVersion_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
+    {
+      apiVersion = apiVersion_;
+      return *this;
+    }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT const &() const VULKAN_HPP_NOEXCEPT
@@ -26125,12 +28220,23 @@
                VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
                uint32_t const &,
                uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
                uint32_t const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie(
-        headerSize, headerVersion, vendorID, deviceID, driverVersion, pipelineCacheUUID, applicationNameOffset, applicationVersion, engineNameOffset );
+      return std::tie( headerSize,
+                       headerVersion,
+                       vendorID,
+                       deviceID,
+                       driverVersion,
+                       pipelineCacheUUID,
+                       applicationNameOffset,
+                       applicationVersion,
+                       engineNameOffset,
+                       engineVersion,
+                       apiVersion );
     }
 #endif
 
@@ -26145,7 +28251,7 @@
       return ( headerSize == rhs.headerSize ) && ( headerVersion == rhs.headerVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
              ( driverVersion == rhs.driverVersion ) && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) &&
              ( applicationNameOffset == rhs.applicationNameOffset ) && ( applicationVersion == rhs.applicationVersion ) &&
-             ( engineNameOffset == rhs.engineNameOffset );
+             ( engineNameOffset == rhs.engineNameOffset ) && ( engineVersion == rhs.engineVersion ) && ( apiVersion == rhs.apiVersion );
 #  endif
     }
 
@@ -26165,6 +28271,8 @@
     uint32_t                                                      applicationNameOffset = {};
     uint32_t                                                      applicationVersion    = {};
     uint32_t                                                      engineNameOffset      = {};
+    uint32_t                                                      engineVersion         = {};
+    uint32_t                                                      apiVersion            = {};
   };
 
   struct DeviceGroupBindSparseInfo
@@ -26219,12 +28327,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo *>( this );
     }
 
-    explicit operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupBindSparseInfo *>( this );
     }
@@ -26272,6 +28380,7 @@
   {
     using Type = DeviceGroupBindSparseInfo;
   };
+
   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
 
   struct DeviceGroupCommandBufferBeginInfo
@@ -26318,12 +28427,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo *>( this );
     }
 
-    explicit operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo *>( this );
     }
@@ -26369,6 +28478,7 @@
   {
     using Type = DeviceGroupCommandBufferBeginInfo;
   };
+
   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
 
   struct DeviceGroupDeviceCreateInfo
@@ -26426,7 +28536,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo &
-                            setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
+      setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
     {
       pPhysicalDevices = pPhysicalDevices_;
       return *this;
@@ -26443,12 +28553,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo *>( this );
     }
 
-    explicit operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo *>( this );
     }
@@ -26496,6 +28606,7 @@
   {
     using Type = DeviceGroupDeviceCreateInfo;
   };
+
   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
 
   struct DeviceGroupPresentCapabilitiesKHR
@@ -26531,12 +28642,12 @@
       return *this;
     }
 
-    explicit operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR *>( this );
     }
 
-    explicit operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( this );
     }
@@ -26667,12 +28778,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR *>( this );
     }
 
-    explicit operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR *>( this );
     }
@@ -26793,7 +28904,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo &
-                            setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
+      setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
     {
       pDeviceRenderAreas = pDeviceRenderAreas_;
       return *this;
@@ -26810,12 +28921,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo *>( this );
     }
 
-    explicit operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo *>( this );
     }
@@ -26865,6 +28976,7 @@
   {
     using Type = DeviceGroupRenderPassBeginInfo;
   };
+
   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
 
   struct DeviceGroupSubmitInfo
@@ -26998,12 +29110,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupSubmitInfo *>( this );
     }
 
-    explicit operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupSubmitInfo *>( this );
     }
@@ -27071,6 +29183,7 @@
   {
     using Type = DeviceGroupSubmitInfo;
   };
+
   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
 
   struct DeviceGroupSwapchainCreateInfoKHR
@@ -27118,12 +29231,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR *>( this );
     }
 
-    explicit operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR *>( this );
     }
@@ -27554,8 +29667,217 @@
   {
     using Type = DeviceImageMemoryRequirements;
   };
+
   using DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
 
+  struct ImageSubresource2KHR
+  {
+    using NativeType = VkImageSubresource2KHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eImageSubresource2KHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , imageSubresource( imageSubresource_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ImageSubresource2KHR( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ImageSubresource2KHR( *reinterpret_cast<ImageSubresource2KHR const *>( &rhs ) )
+    {
+    }
+
+    ImageSubresource2KHR & operator=( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ImageSubresource2KHR & operator=( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageSubresource = imageSubresource_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkImageSubresource2KHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkImageSubresource2KHR *>( this );
+    }
+
+    operator VkImageSubresource2KHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkImageSubresource2KHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageSubresource const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, imageSubresource );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ImageSubresource2KHR const & ) const = default;
+#else
+    bool operator==( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSubresource == rhs.imageSubresource );
+#  endif
+    }
+
+    bool operator!=( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType            = StructureType::eImageSubresource2KHR;
+    void *                                 pNext            = {};
+    VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eImageSubresource2KHR>
+  {
+    using Type = ImageSubresource2KHR;
+  };
+
+  using ImageSubresource2EXT = ImageSubresource2KHR;
+
+  struct DeviceImageSubresourceInfoKHR
+  {
+    using NativeType = VkDeviceImageSubresourceInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eDeviceImageSubresourceInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( const VULKAN_HPP_NAMESPACE::ImageCreateInfo *      pCreateInfo_  = {},
+                                                        const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ = {},
+                                                        const void *                                       pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pCreateInfo( pCreateInfo_ )
+      , pSubresource( pSubresource_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DeviceImageSubresourceInfoKHR( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DeviceImageSubresourceInfoKHR( *reinterpret_cast<DeviceImageSubresourceInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    DeviceImageSubresourceInfoKHR & operator=( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DeviceImageSubresourceInfoKHR & operator=( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pCreateInfo = pCreateInfo_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR &
+      setPSubresource( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSubresource = pSubresource_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDeviceImageSubresourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( this );
+    }
+
+    operator VkDeviceImageSubresourceInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDeviceImageSubresourceInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &,
+               const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pCreateInfo, pSubresource );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DeviceImageSubresourceInfoKHR const & ) const = default;
+#else
+    bool operator==( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo ) && ( pSubresource == rhs.pSubresource );
+#  endif
+    }
+
+    bool operator!=( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                sType        = StructureType::eDeviceImageSubresourceInfoKHR;
+    const void *                                       pNext        = {};
+    const VULKAN_HPP_NAMESPACE::ImageCreateInfo *      pCreateInfo  = {};
+    const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eDeviceImageSubresourceInfoKHR>
+  {
+    using Type = DeviceImageSubresourceInfoKHR;
+  };
+
   struct DeviceMemoryOpaqueCaptureAddressInfo
   {
     using NativeType = VkDeviceMemoryOpaqueCaptureAddressInfo;
@@ -27652,6 +29974,7 @@
   {
     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
   };
+
   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
 
   struct DeviceMemoryOverallocationCreateInfoAMD
@@ -27694,7 +30017,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD &
-                            setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
+      setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
     {
       overallocationBehavior = overallocationBehavior_;
       return *this;
@@ -27864,6 +30187,51 @@
     using Type = DeviceMemoryReportCallbackDataEXT;
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  union DeviceOrHostAddressConstAMDX
+  {
+    using NativeType = VkDeviceOrHostAddressConstAMDX;
+#  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) : deviceAddress( deviceAddress_ ) {}
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( const void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
+#  endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+
+#  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceAddress = deviceAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      hostAddress = hostAddress_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_UNION_SETTERS*/
+
+    operator VkDeviceOrHostAddressConstAMDX const &() const
+    {
+      return *reinterpret_cast<const VkDeviceOrHostAddressConstAMDX *>( this );
+    }
+
+    operator VkDeviceOrHostAddressConstAMDX &()
+    {
+      return *reinterpret_cast<VkDeviceOrHostAddressConstAMDX *>( this );
+    }
+
+#  ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+    VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
+    const void *                        hostAddress;
+#  else
+    VkDeviceAddress deviceAddress;
+    const void *    hostAddress;
+#  endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct DevicePrivateDataCreateInfo
   {
     using NativeType = VkDevicePrivateDataCreateInfo;
@@ -27959,6 +30327,7 @@
   {
     using Type = DevicePrivateDataCreateInfo;
   };
+
   using DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
 
   struct DeviceQueueGlobalPriorityCreateInfoKHR
@@ -28001,7 +30370,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR &
-                            setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ ) VULKAN_HPP_NOEXCEPT
+      setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ ) VULKAN_HPP_NOEXCEPT
     {
       globalPriority = globalPriority_;
       return *this;
@@ -28059,6 +30428,7 @@
   {
     using Type = DeviceQueueGlobalPriorityCreateInfoKHR;
   };
+
   using DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
 
   struct DeviceQueueInfo2
@@ -28178,6 +30548,102 @@
     using Type = DeviceQueueInfo2;
   };
 
+  struct DeviceQueueShaderCoreControlCreateInfoARM
+  {
+    using NativeType = VkDeviceQueueShaderCoreControlCreateInfoARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eDeviceQueueShaderCoreControlCreateInfoARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DeviceQueueShaderCoreControlCreateInfoARM( uint32_t shaderCoreCount_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderCoreCount( shaderCoreCount_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DeviceQueueShaderCoreControlCreateInfoARM( DeviceQueueShaderCoreControlCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DeviceQueueShaderCoreControlCreateInfoARM( VkDeviceQueueShaderCoreControlCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DeviceQueueShaderCoreControlCreateInfoARM( *reinterpret_cast<DeviceQueueShaderCoreControlCreateInfoARM const *>( &rhs ) )
+    {
+    }
+
+    DeviceQueueShaderCoreControlCreateInfoARM & operator=( DeviceQueueShaderCoreControlCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DeviceQueueShaderCoreControlCreateInfoARM & operator=( VkDeviceQueueShaderCoreControlCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DeviceQueueShaderCoreControlCreateInfoARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DeviceQueueShaderCoreControlCreateInfoARM & setShaderCoreCount( uint32_t shaderCoreCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderCoreCount = shaderCoreCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDeviceQueueShaderCoreControlCreateInfoARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDeviceQueueShaderCoreControlCreateInfoARM *>( this );
+    }
+
+    operator VkDeviceQueueShaderCoreControlCreateInfoARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDeviceQueueShaderCoreControlCreateInfoARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderCoreCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DeviceQueueShaderCoreControlCreateInfoARM const & ) const = default;
+#else
+    bool operator==( DeviceQueueShaderCoreControlCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreCount == rhs.shaderCoreCount );
+#  endif
+    }
+
+    bool operator!=( DeviceQueueShaderCoreControlCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eDeviceQueueShaderCoreControlCreateInfoARM;
+    void *                              pNext           = {};
+    uint32_t                            shaderCoreCount = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eDeviceQueueShaderCoreControlCreateInfoARM>
+  {
+    using Type = DeviceQueueShaderCoreControlCreateInfoARM;
+  };
+
   struct DirectDriverLoadingInfoLUNARG
   {
     using NativeType = VkDirectDriverLoadingInfoLUNARG;
@@ -28225,7 +30691,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG &
-                            setPfnGetInstanceProcAddr( PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ ) VULKAN_HPP_NOEXCEPT
+      setPfnGetInstanceProcAddr( PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ ) VULKAN_HPP_NOEXCEPT
     {
       pfnGetInstanceProcAddr = pfnGetInstanceProcAddr_;
       return *this;
@@ -28296,7 +30762,7 @@
       VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG         mode_        = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive,
       uint32_t                                                    driverCount_ = {},
       const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_    = {},
-      void *                                                      pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      const void *                                                pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , mode( mode_ )
       , driverCount( driverCount_ )
@@ -28314,7 +30780,7 @@
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     DirectDriverLoadingListLUNARG( VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG                                                              mode_,
                                    VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG> const & drivers_,
-                                   void * pNext_ = nullptr )
+                                   const void * pNext_ = nullptr )
       : pNext( pNext_ ), mode( mode_ ), driverCount( static_cast<uint32_t>( drivers_.size() ) ), pDrivers( drivers_.data() )
     {
     }
@@ -28330,7 +30796,7 @@
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
@@ -28349,7 +30815,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG &
-                            setPDrivers( const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ ) VULKAN_HPP_NOEXCEPT
+      setPDrivers( const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ ) VULKAN_HPP_NOEXCEPT
     {
       pDrivers = pDrivers_;
       return *this;
@@ -28381,7 +30847,7 @@
     auto
 #  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               void * const &,
+               const void * const &,
                VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG const &,
                uint32_t const &,
                const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * const &>
@@ -28408,7 +30874,7 @@
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                         sType       = StructureType::eDirectDriverLoadingListLUNARG;
-    void *                                                      pNext       = {};
+    const void *                                                pNext       = {};
     VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG         mode        = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive;
     uint32_t                                                    driverCount = {};
     const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers    = {};
@@ -28541,6 +31007,175 @@
   };
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct DispatchGraphCountInfoAMDX
+  {
+    using NativeType = VkDispatchGraphCountInfoAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( uint32_t                                           count_  = {},
+                                                        VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos_  = {},
+                                                        uint64_t                                           stride_ = {} ) VULKAN_HPP_NOEXCEPT
+      : count( count_ )
+      , infos( infos_ )
+      , stride( stride_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DispatchGraphCountInfoAMDX( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DispatchGraphCountInfoAMDX( *reinterpret_cast<DispatchGraphCountInfoAMDX const *>( &rhs ) )
+    {
+    }
+
+    DispatchGraphCountInfoAMDX & operator=( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DispatchGraphCountInfoAMDX & operator=( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setCount( uint32_t count_ ) VULKAN_HPP_NOEXCEPT
+    {
+      count = count_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setInfos( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & infos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      infos = infos_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setStride( uint64_t stride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stride = stride_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDispatchGraphCountInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( this );
+    }
+
+    operator VkDispatchGraphCountInfoAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDispatchGraphCountInfoAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( count, infos, stride );
+    }
+#  endif
+
+  public:
+    uint32_t                                           count  = {};
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos  = {};
+    uint64_t                                           stride = {};
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct DispatchGraphInfoAMDX
+  {
+    using NativeType = VkDispatchGraphInfoAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX( uint32_t                                           nodeIndex_     = {},
+                                                   uint32_t                                           payloadCount_  = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads_      = {},
+                                                   uint64_t                                           payloadStride_ = {} ) VULKAN_HPP_NOEXCEPT
+      : nodeIndex( nodeIndex_ )
+      , payloadCount( payloadCount_ )
+      , payloads( payloads_ )
+      , payloadStride( payloadStride_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DispatchGraphInfoAMDX( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DispatchGraphInfoAMDX( *reinterpret_cast<DispatchGraphInfoAMDX const *>( &rhs ) )
+    {
+    }
+
+    DispatchGraphInfoAMDX & operator=( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DispatchGraphInfoAMDX & operator=( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setNodeIndex( uint32_t nodeIndex_ ) VULKAN_HPP_NOEXCEPT
+    {
+      nodeIndex = nodeIndex_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadCount( uint32_t payloadCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      payloadCount = payloadCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloads( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & payloads_ ) VULKAN_HPP_NOEXCEPT
+    {
+      payloads = payloads_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadStride( uint64_t payloadStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      payloadStride = payloadStride_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDispatchGraphInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDispatchGraphInfoAMDX *>( this );
+    }
+
+    operator VkDispatchGraphInfoAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDispatchGraphInfoAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( nodeIndex, payloadCount, payloads, payloadStride );
+    }
+#  endif
+
+  public:
+    uint32_t                                           nodeIndex     = {};
+    uint32_t                                           payloadCount  = {};
+    VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads      = {};
+    uint64_t                                           payloadStride = {};
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct DispatchIndirectCommand
   {
     using NativeType = VkDispatchIndirectCommand;
@@ -31040,6 +33675,425 @@
     using Type = EventCreateInfo;
   };
 
+  struct PipelineLibraryCreateInfoKHR
+  {
+    using NativeType = VkPipelineLibraryCreateInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineLibraryCreateInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t                               libraryCount_ = {},
+                                                       const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_   = {},
+                                                       const void *                           pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , libraryCount( libraryCount_ )
+      , pLibraries( pLibraries_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_,
+                                  const void *                                                                                pNext_ = nullptr )
+      : pNext( pNext_ ), libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      libraryCount = libraryCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pLibraries = pLibraries_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PipelineLibraryCreateInfoKHR &
+      setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
+    {
+      libraryCount = static_cast<uint32_t>( libraries_.size() );
+      pLibraries   = libraries_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR *>( this );
+    }
+
+    operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, libraryCount, pLibraries );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( libraryCount == rhs.libraryCount ) && ( pLibraries == rhs.pLibraries );
+#  endif
+    }
+
+    bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType        = StructureType::ePipelineLibraryCreateInfoKHR;
+    const void *                           pNext        = {};
+    uint32_t                               libraryCount = {};
+    const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries   = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
+  {
+    using Type = PipelineLibraryCreateInfoKHR;
+  };
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct ExecutionGraphPipelineCreateInfoAMDX
+  {
+    using NativeType = VkExecutionGraphPipelineCreateInfoAMDX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX( VULKAN_HPP_NAMESPACE::PipelineCreateFlags                   flags_              = {},
+                                                               uint32_t                                                    stageCount_         = {},
+                                                               const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_            = {},
+                                                               const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR *  pLibraryInfo_       = {},
+                                                               VULKAN_HPP_NAMESPACE::PipelineLayout                        layout_             = {},
+                                                               VULKAN_HPP_NAMESPACE::Pipeline                              basePipelineHandle_ = {},
+                                                               int32_t                                                     basePipelineIndex_  = {},
+                                                               const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , stageCount( stageCount_ )
+      , pStages( pStages_ )
+      , pLibraryInfo( pLibraryInfo_ )
+      , layout( layout_ )
+      , basePipelineHandle( basePipelineHandle_ )
+      , basePipelineIndex( basePipelineIndex_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ExecutionGraphPipelineCreateInfoAMDX( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ExecutionGraphPipelineCreateInfoAMDX( *reinterpret_cast<ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs ) )
+    {
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    ExecutionGraphPipelineCreateInfoAMDX(
+      VULKAN_HPP_NAMESPACE::PipelineCreateFlags                                                                        flags_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
+      const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR *                                                       pLibraryInfo_       = {},
+      VULKAN_HPP_NAMESPACE::PipelineLayout                                                                             layout_             = {},
+      VULKAN_HPP_NAMESPACE::Pipeline                                                                                   basePipelineHandle_ = {},
+      int32_t                                                                                                          basePipelineIndex_  = {},
+      const void *                                                                                                     pNext_              = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , stageCount( static_cast<uint32_t>( stages_.size() ) )
+      , pStages( stages_.data() )
+      , pLibraryInfo( pLibraryInfo_ )
+      , layout( layout_ )
+      , basePipelineHandle( basePipelineHandle_ )
+      , basePipelineIndex( basePipelineIndex_ )
+    {
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    ExecutionGraphPipelineCreateInfoAMDX & operator=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ExecutionGraphPipelineCreateInfoAMDX & operator=( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageCount = stageCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
+      setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pStages = pStages_;
+      return *this;
+    }
+
+#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    ExecutionGraphPipelineCreateInfoAMDX &
+      setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageCount = static_cast<uint32_t>( stages_.size() );
+      pStages    = stages_.data();
+      return *this;
+    }
+#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
+      setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pLibraryInfo = pLibraryInfo_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
+      setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
+    {
+      basePipelineHandle = basePipelineHandle_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
+    {
+      basePipelineIndex = basePipelineIndex_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkExecutionGraphPipelineCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( this );
+    }
+
+    operator VkExecutionGraphPipelineCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkExecutionGraphPipelineCreateInfoAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
+               const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               VULKAN_HPP_NAMESPACE::Pipeline const &,
+               int32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, stageCount, pStages, pLibraryInfo, layout, basePipelineHandle, basePipelineIndex );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ExecutionGraphPipelineCreateInfoAMDX const & ) const = default;
+#  else
+    bool operator==( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
+             ( pLibraryInfo == rhs.pLibraryInfo ) && ( layout == rhs.layout ) && ( basePipelineHandle == rhs.basePipelineHandle ) &&
+             ( basePipelineIndex == rhs.basePipelineIndex );
+#    endif
+    }
+
+    bool operator!=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                         sType              = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
+    const void *                                                pNext              = {};
+    VULKAN_HPP_NAMESPACE::PipelineCreateFlags                   flags              = {};
+    uint32_t                                                    stageCount         = {};
+    const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages            = {};
+    const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR *  pLibraryInfo       = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout                        layout             = {};
+    VULKAN_HPP_NAMESPACE::Pipeline                              basePipelineHandle = {};
+    int32_t                                                     basePipelineIndex  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eExecutionGraphPipelineCreateInfoAMDX>
+  {
+    using Type = ExecutionGraphPipelineCreateInfoAMDX;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct ExecutionGraphPipelineScratchSizeAMDX
+  {
+    using NativeType = VkExecutionGraphPipelineScratchSizeAMDX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , size( size_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ExecutionGraphPipelineScratchSizeAMDX( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ExecutionGraphPipelineScratchSizeAMDX( *reinterpret_cast<ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs ) )
+    {
+    }
+
+    ExecutionGraphPipelineScratchSizeAMDX & operator=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ExecutionGraphPipelineScratchSizeAMDX & operator=( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkExecutionGraphPipelineScratchSizeAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkExecutionGraphPipelineScratchSizeAMDX *>( this );
+    }
+
+    operator VkExecutionGraphPipelineScratchSizeAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, size );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ExecutionGraphPipelineScratchSizeAMDX const & ) const = default;
+#  else
+    bool operator==( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( size == rhs.size );
+#    endif
+    }
+
+    bool operator!=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
+    void *                              pNext = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize    size  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eExecutionGraphPipelineScratchSizeAMDX>
+  {
+    using Type = ExecutionGraphPipelineScratchSizeAMDX;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct ExportFenceCreateInfo
   {
     using NativeType = VkExportFenceCreateInfo;
@@ -31136,6 +34190,7 @@
   {
     using Type = ExportFenceCreateInfo;
   };
+
   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
 
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -31351,6 +34406,7 @@
   {
     using Type = ExportMemoryAllocateInfo;
   };
+
   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
 
   struct ExportMemoryAllocateInfoNV
@@ -31392,7 +34448,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV &
-                            setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
+      setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       handleTypes = handleTypes_;
       return *this;
@@ -32137,7 +35193,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT &
-                            setExportObjectType( VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ ) VULKAN_HPP_NOEXCEPT
+      setExportObjectType( VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ ) VULKAN_HPP_NOEXCEPT
     {
       exportObjectType = exportObjectType_;
       return *this;
@@ -32587,7 +35643,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo &
-                            setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
+      setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       handleTypes = handleTypes_;
       return *this;
@@ -32645,6 +35701,7 @@
   {
     using Type = ExportSemaphoreCreateInfo;
   };
+
   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
 
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -32914,6 +35971,7 @@
     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes         = {};
   };
+
   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
 
   struct ExternalBufferProperties
@@ -32998,6 +36056,7 @@
   {
     using Type = ExternalBufferProperties;
   };
+
   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
 
   struct ExternalFenceProperties
@@ -33093,6 +36152,7 @@
   {
     using Type = ExternalFenceProperties;
   };
+
   using ExternalFencePropertiesKHR = ExternalFenceProperties;
 
 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
@@ -33193,6 +36253,101 @@
   };
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  struct ExternalFormatQNX
+  {
+    using NativeType = VkExternalFormatQNX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eExternalFormatQNX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ExternalFormatQNX( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , externalFormat( externalFormat_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ExternalFormatQNX( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ExternalFormatQNX( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT : ExternalFormatQNX( *reinterpret_cast<ExternalFormatQNX const *>( &rhs ) ) {}
+
+    ExternalFormatQNX & operator=( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ExternalFormatQNX & operator=( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatQNX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
+    {
+      externalFormat = externalFormat_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkExternalFormatQNX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkExternalFormatQNX *>( this );
+    }
+
+    operator VkExternalFormatQNX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkExternalFormatQNX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, externalFormat );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ExternalFormatQNX const & ) const = default;
+#  else
+    bool operator==( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormat == rhs.externalFormat );
+#    endif
+    }
+
+    bool operator!=( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eExternalFormatQNX;
+    void *                              pNext          = {};
+    uint64_t                            externalFormat = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eExternalFormatQNX>
+  {
+    using Type = ExternalFormatQNX;
+  };
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   struct ExternalImageFormatProperties
   {
     using NativeType = VkExternalImageFormatProperties;
@@ -33275,6 +36430,7 @@
   {
     using Type = ExternalImageFormatProperties;
   };
+
   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
 
   struct ImageFormatProperties
@@ -33448,6 +36604,104 @@
     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes         = {};
   };
 
+  struct ExternalMemoryAcquireUnmodifiedEXT
+  {
+    using NativeType = VkExternalMemoryAcquireUnmodifiedEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ = {},
+                                                             const void *                 pNext_                   = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , acquireUnmodifiedMemory( acquireUnmodifiedMemory_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ExternalMemoryAcquireUnmodifiedEXT( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ExternalMemoryAcquireUnmodifiedEXT( *reinterpret_cast<ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs ) )
+    {
+    }
+
+    ExternalMemoryAcquireUnmodifiedEXT & operator=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ExternalMemoryAcquireUnmodifiedEXT & operator=( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT &
+      setAcquireUnmodifiedMemory( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ ) VULKAN_HPP_NOEXCEPT
+    {
+      acquireUnmodifiedMemory = acquireUnmodifiedMemory_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkExternalMemoryAcquireUnmodifiedEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkExternalMemoryAcquireUnmodifiedEXT *>( this );
+    }
+
+    operator VkExternalMemoryAcquireUnmodifiedEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkExternalMemoryAcquireUnmodifiedEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, acquireUnmodifiedMemory );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ExternalMemoryAcquireUnmodifiedEXT const & ) const = default;
+#else
+    bool operator==( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireUnmodifiedMemory == rhs.acquireUnmodifiedMemory );
+#  endif
+    }
+
+    bool operator!=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                   = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
+    const void *                        pNext                   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        acquireUnmodifiedMemory = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eExternalMemoryAcquireUnmodifiedEXT>
+  {
+    using Type = ExternalMemoryAcquireUnmodifiedEXT;
+  };
+
   struct ExternalMemoryBufferCreateInfo
   {
     using NativeType = VkExternalMemoryBufferCreateInfo;
@@ -33487,7 +36741,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo &
-                            setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
+      setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       handleTypes = handleTypes_;
       return *this;
@@ -33545,6 +36799,7 @@
   {
     using Type = ExternalMemoryBufferCreateInfo;
   };
+
   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
 
   struct ExternalMemoryImageCreateInfo
@@ -33586,7 +36841,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo &
-                            setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
+      setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       handleTypes = handleTypes_;
       return *this;
@@ -33644,6 +36899,7 @@
   {
     using Type = ExternalMemoryImageCreateInfo;
   };
+
   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
 
   struct ExternalMemoryImageCreateInfoNV
@@ -33685,7 +36941,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV &
-                            setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
+      setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       handleTypes = handleTypes_;
       return *this;
@@ -33837,6 +37093,7 @@
   {
     using Type = ExternalSemaphoreProperties;
   };
+
   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
 
   struct FenceCreateInfo
@@ -34391,6 +37648,7 @@
   {
     using Type = FormatProperties2;
   };
+
   using FormatProperties2KHR = FormatProperties2;
 
   struct FormatProperties3
@@ -34483,6 +37741,7 @@
   {
     using Type = FormatProperties3;
   };
+
   using FormatProperties3KHR = FormatProperties3;
 
   struct FragmentShadingRateAttachmentInfoKHR
@@ -34533,7 +37792,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR &
-                            setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
       return *this;
@@ -34597,6 +37856,235 @@
     using Type = FragmentShadingRateAttachmentInfoKHR;
   };
 
+  struct FrameBoundaryEXT
+  {
+    using NativeType = VkFrameBoundaryEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eFrameBoundaryEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_       = {},
+                                           uint64_t                                    frameID_     = {},
+                                           uint32_t                                    imageCount_  = {},
+                                           const VULKAN_HPP_NAMESPACE::Image *         pImages_     = {},
+                                           uint32_t                                    bufferCount_ = {},
+                                           const VULKAN_HPP_NAMESPACE::Buffer *        pBuffers_    = {},
+                                           uint64_t                                    tagName_     = {},
+                                           size_t                                      tagSize_     = {},
+                                           const void *                                pTag_        = {},
+                                           const void *                                pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , frameID( frameID_ )
+      , imageCount( imageCount_ )
+      , pImages( pImages_ )
+      , bufferCount( bufferCount_ )
+      , pBuffers( pBuffers_ )
+      , tagName( tagName_ )
+      , tagSize( tagSize_ )
+      , pTag( pTag_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    FrameBoundaryEXT( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT : FrameBoundaryEXT( *reinterpret_cast<FrameBoundaryEXT const *>( &rhs ) ) {}
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT                                               flags_,
+                      uint64_t                                                                                  frameID_,
+                      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const &  images_,
+                      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ = {},
+                      uint64_t                                                                                  tagName_ = {},
+                      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const &                            tag_     = {},
+                      const void *                                                                              pNext_   = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , frameID( frameID_ )
+      , imageCount( static_cast<uint32_t>( images_.size() ) )
+      , pImages( images_.data() )
+      , bufferCount( static_cast<uint32_t>( buffers_.size() ) )
+      , pBuffers( buffers_.data() )
+      , tagName( tagName_ )
+      , tagSize( tag_.size() * sizeof( T ) )
+      , pTag( tag_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    FrameBoundaryEXT & operator=( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    FrameBoundaryEXT & operator=( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFlags( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFrameID( uint64_t frameID_ ) VULKAN_HPP_NOEXCEPT
+    {
+      frameID = frameID_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setImageCount( uint32_t imageCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageCount = imageCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPImages( const VULKAN_HPP_NAMESPACE::Image * pImages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pImages = pImages_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    FrameBoundaryEXT & setImages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const & images_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageCount = static_cast<uint32_t>( images_.size() );
+      pImages    = images_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      bufferCount = bufferCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPBuffers( const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pBuffers = pBuffers_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    FrameBoundaryEXT & setBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ ) VULKAN_HPP_NOEXCEPT
+    {
+      bufferCount = static_cast<uint32_t>( buffers_.size() );
+      pBuffers    = buffers_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      tagName = tagName_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      tagSize = tagSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pTag = pTag_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    FrameBoundaryEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
+    {
+      tagSize = tag_.size() * sizeof( T );
+      pTag    = tag_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkFrameBoundaryEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkFrameBoundaryEXT *>( this );
+    }
+
+    operator VkFrameBoundaryEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkFrameBoundaryEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT const &,
+               uint64_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::Image * const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::Buffer * const &,
+               uint64_t const &,
+               size_t const &,
+               const void * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, frameID, imageCount, pImages, bufferCount, pBuffers, tagName, tagSize, pTag );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( FrameBoundaryEXT const & ) const = default;
+#else
+    bool operator==( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( frameID == rhs.frameID ) && ( imageCount == rhs.imageCount ) &&
+             ( pImages == rhs.pImages ) && ( bufferCount == rhs.bufferCount ) && ( pBuffers == rhs.pBuffers ) && ( tagName == rhs.tagName ) &&
+             ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
+#  endif
+    }
+
+    bool operator!=( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType         sType       = StructureType::eFrameBoundaryEXT;
+    const void *                                pNext       = {};
+    VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags       = {};
+    uint64_t                                    frameID     = {};
+    uint32_t                                    imageCount  = {};
+    const VULKAN_HPP_NAMESPACE::Image *         pImages     = {};
+    uint32_t                                    bufferCount = {};
+    const VULKAN_HPP_NAMESPACE::Buffer *        pBuffers    = {};
+    uint64_t                                    tagName     = {};
+    size_t                                      tagSize     = {};
+    const void *                                pTag        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eFrameBoundaryEXT>
+  {
+    using Type = FrameBoundaryEXT;
+  };
+
   struct FramebufferAttachmentImageInfo
   {
     using NativeType = VkFramebufferAttachmentImageInfo;
@@ -34786,6 +38274,7 @@
   {
     using Type = FramebufferAttachmentImageInfo;
   };
+
   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
 
   struct FramebufferAttachmentsCreateInfo
@@ -34846,7 +38335,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo &
-                            setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
+      setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
     {
       pAttachmentImageInfos = pAttachmentImageInfos_;
       return *this;
@@ -34920,6 +38409,7 @@
   {
     using Type = FramebufferAttachmentsCreateInfo;
   };
+
   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
 
   struct FramebufferCreateInfo
@@ -35407,7 +38897,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV &
-                            setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
+      setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       indirectCommandsLayout = indirectCommandsLayout_;
       return *this;
@@ -35627,7 +39117,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
-                            setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineBindPoint = pipelineBindPoint_;
       return *this;
@@ -35640,7 +39130,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
-                            setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
+      setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       indirectCommandsLayout = indirectCommandsLayout_;
       return *this;
@@ -35714,6 +39204,379 @@
     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
   };
 
+  struct LatencyTimingsFrameReportNV
+  {
+    using NativeType = VkLatencyTimingsFrameReportNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLatencyTimingsFrameReportNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( uint64_t     presentID_                = {},
+                                                      uint64_t     inputSampleTimeUs_        = {},
+                                                      uint64_t     simStartTimeUs_           = {},
+                                                      uint64_t     simEndTimeUs_             = {},
+                                                      uint64_t     renderSubmitStartTimeUs_  = {},
+                                                      uint64_t     renderSubmitEndTimeUs_    = {},
+                                                      uint64_t     presentStartTimeUs_       = {},
+                                                      uint64_t     presentEndTimeUs_         = {},
+                                                      uint64_t     driverStartTimeUs_        = {},
+                                                      uint64_t     driverEndTimeUs_          = {},
+                                                      uint64_t     osRenderQueueStartTimeUs_ = {},
+                                                      uint64_t     osRenderQueueEndTimeUs_   = {},
+                                                      uint64_t     gpuRenderStartTimeUs_     = {},
+                                                      uint64_t     gpuRenderEndTimeUs_       = {},
+                                                      const void * pNext_                    = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , presentID( presentID_ )
+      , inputSampleTimeUs( inputSampleTimeUs_ )
+      , simStartTimeUs( simStartTimeUs_ )
+      , simEndTimeUs( simEndTimeUs_ )
+      , renderSubmitStartTimeUs( renderSubmitStartTimeUs_ )
+      , renderSubmitEndTimeUs( renderSubmitEndTimeUs_ )
+      , presentStartTimeUs( presentStartTimeUs_ )
+      , presentEndTimeUs( presentEndTimeUs_ )
+      , driverStartTimeUs( driverStartTimeUs_ )
+      , driverEndTimeUs( driverEndTimeUs_ )
+      , osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ )
+      , osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ )
+      , gpuRenderStartTimeUs( gpuRenderStartTimeUs_ )
+      , gpuRenderEndTimeUs( gpuRenderEndTimeUs_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LatencyTimingsFrameReportNV( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : LatencyTimingsFrameReportNV( *reinterpret_cast<LatencyTimingsFrameReportNV const *>( &rhs ) )
+    {
+    }
+
+    LatencyTimingsFrameReportNV & operator=( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LatencyTimingsFrameReportNV & operator=( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentID = presentID_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setInputSampleTimeUs( uint64_t inputSampleTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      inputSampleTimeUs = inputSampleTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimStartTimeUs( uint64_t simStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      simStartTimeUs = simStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimEndTimeUs( uint64_t simEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      simEndTimeUs = simEndTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitStartTimeUs( uint64_t renderSubmitStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      renderSubmitStartTimeUs = renderSubmitStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitEndTimeUs( uint64_t renderSubmitEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      renderSubmitEndTimeUs = renderSubmitEndTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentStartTimeUs( uint64_t presentStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentStartTimeUs = presentStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentEndTimeUs( uint64_t presentEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentEndTimeUs = presentEndTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverStartTimeUs( uint64_t driverStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      driverStartTimeUs = driverStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverEndTimeUs( uint64_t driverEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      driverEndTimeUs = driverEndTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueStartTimeUs( uint64_t osRenderQueueStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      osRenderQueueStartTimeUs = osRenderQueueStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueEndTimeUs( uint64_t osRenderQueueEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      osRenderQueueEndTimeUs = osRenderQueueEndTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderStartTimeUs( uint64_t gpuRenderStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      gpuRenderStartTimeUs = gpuRenderStartTimeUs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderEndTimeUs( uint64_t gpuRenderEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      gpuRenderEndTimeUs = gpuRenderEndTimeUs_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLatencyTimingsFrameReportNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLatencyTimingsFrameReportNV *>( this );
+    }
+
+    operator VkLatencyTimingsFrameReportNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLatencyTimingsFrameReportNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &,
+               uint64_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       presentID,
+                       inputSampleTimeUs,
+                       simStartTimeUs,
+                       simEndTimeUs,
+                       renderSubmitStartTimeUs,
+                       renderSubmitEndTimeUs,
+                       presentStartTimeUs,
+                       presentEndTimeUs,
+                       driverStartTimeUs,
+                       driverEndTimeUs,
+                       osRenderQueueStartTimeUs,
+                       osRenderQueueEndTimeUs,
+                       gpuRenderStartTimeUs,
+                       gpuRenderEndTimeUs );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LatencyTimingsFrameReportNV const & ) const = default;
+#else
+    bool operator==( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID ) && ( inputSampleTimeUs == rhs.inputSampleTimeUs ) &&
+             ( simStartTimeUs == rhs.simStartTimeUs ) && ( simEndTimeUs == rhs.simEndTimeUs ) && ( renderSubmitStartTimeUs == rhs.renderSubmitStartTimeUs ) &&
+             ( renderSubmitEndTimeUs == rhs.renderSubmitEndTimeUs ) && ( presentStartTimeUs == rhs.presentStartTimeUs ) &&
+             ( presentEndTimeUs == rhs.presentEndTimeUs ) && ( driverStartTimeUs == rhs.driverStartTimeUs ) && ( driverEndTimeUs == rhs.driverEndTimeUs ) &&
+             ( osRenderQueueStartTimeUs == rhs.osRenderQueueStartTimeUs ) && ( osRenderQueueEndTimeUs == rhs.osRenderQueueEndTimeUs ) &&
+             ( gpuRenderStartTimeUs == rhs.gpuRenderStartTimeUs ) && ( gpuRenderEndTimeUs == rhs.gpuRenderEndTimeUs );
+#  endif
+    }
+
+    bool operator!=( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                    = StructureType::eLatencyTimingsFrameReportNV;
+    const void *                        pNext                    = {};
+    uint64_t                            presentID                = {};
+    uint64_t                            inputSampleTimeUs        = {};
+    uint64_t                            simStartTimeUs           = {};
+    uint64_t                            simEndTimeUs             = {};
+    uint64_t                            renderSubmitStartTimeUs  = {};
+    uint64_t                            renderSubmitEndTimeUs    = {};
+    uint64_t                            presentStartTimeUs       = {};
+    uint64_t                            presentEndTimeUs         = {};
+    uint64_t                            driverStartTimeUs        = {};
+    uint64_t                            driverEndTimeUs          = {};
+    uint64_t                            osRenderQueueStartTimeUs = {};
+    uint64_t                            osRenderQueueEndTimeUs   = {};
+    uint64_t                            gpuRenderStartTimeUs     = {};
+    uint64_t                            gpuRenderEndTimeUs       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLatencyTimingsFrameReportNV>
+  {
+    using Type = LatencyTimingsFrameReportNV;
+  };
+
+  struct GetLatencyMarkerInfoNV
+  {
+    using NativeType = VkGetLatencyMarkerInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eGetLatencyMarkerInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( uint32_t                                            timingCount_ = {},
+                                                 VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_    = {},
+                                                 const void *                                        pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , timingCount( timingCount_ )
+      , pTimings( pTimings_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    GetLatencyMarkerInfoNV( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : GetLatencyMarkerInfoNV( *reinterpret_cast<GetLatencyMarkerInfoNV const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV> const & timings_,
+                            const void *                                                                                             pNext_ = nullptr )
+      : pNext( pNext_ ), timingCount( static_cast<uint32_t>( timings_.size() ) ), pTimings( timings_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    GetLatencyMarkerInfoNV & operator=( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setTimingCount( uint32_t timingCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      timingCount = timingCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pTimings = pTimings_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    GetLatencyMarkerInfoNV &
+      setTimings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV> const & timings_ ) VULKAN_HPP_NOEXCEPT
+    {
+      timingCount = static_cast<uint32_t>( timings_.size() );
+      pTimings    = timings_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkGetLatencyMarkerInfoNV *>( this );
+    }
+
+    operator VkGetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkGetLatencyMarkerInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, timingCount, pTimings );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( GetLatencyMarkerInfoNV const & ) const = default;
+#else
+    bool operator==( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timingCount == rhs.timingCount ) && ( pTimings == rhs.pTimings );
+#  endif
+    }
+
+    bool operator!=( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                 sType       = StructureType::eGetLatencyMarkerInfoNV;
+    const void *                                        pNext       = {};
+    uint32_t                                            timingCount = {};
+    VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eGetLatencyMarkerInfoNV>
+  {
+    using Type = GetLatencyMarkerInfoNV;
+  };
+
   struct VertexInputBindingDescription
   {
     using NativeType = VkVertexInputBindingDescription;
@@ -35979,7 +39842,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -36010,7 +39873,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
-                            setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
+      setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
       return *this;
@@ -36144,7 +40007,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -36157,7 +40020,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
-                            setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
+      setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       primitiveRestartEnable = primitiveRestartEnable_;
       return *this;
@@ -36264,7 +40127,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -36567,7 +40430,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -36580,7 +40443,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
-                            setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
+      setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       rasterizerDiscardEnable = rasterizerDiscardEnable_;
       return *this;
@@ -36776,14 +40639,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
-                            setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
+      setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
     {
       rasterizationSamples = rasterizationSamples_;
       return *this;
@@ -36808,7 +40671,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
-                            setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
+      setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       alphaToCoverageEnable = alphaToCoverageEnable_;
       return *this;
@@ -37082,7 +40945,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -37107,7 +40970,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
-                            setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
+      setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       depthBoundsTestEnable = depthBoundsTestEnable_;
       return *this;
@@ -37278,14 +41141,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
-                            setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
+      setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
     {
       srcColorBlendFactor = srcColorBlendFactor_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
-                            setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
+      setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
     {
       dstColorBlendFactor = dstColorBlendFactor_;
       return *this;
@@ -37298,14 +41161,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
-                            setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
+      setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
     {
       srcAlphaBlendFactor = srcAlphaBlendFactor_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
-                            setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
+      setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
     {
       dstAlphaBlendFactor = dstAlphaBlendFactor_;
       return *this;
@@ -37318,7 +41181,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
-                            setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
+      setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
     {
       colorWriteMask = colorWriteMask_;
       return *this;
@@ -37478,7 +41341,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo &
-                            setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pAttachments = pAttachments_;
       return *this;
@@ -37845,7 +41708,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
+      setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
     {
       pVertexInputState = pVertexInputState_;
       return *this;
@@ -37859,14 +41722,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
+      setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
     {
       pTessellationState = pTessellationState_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT
+      setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT
     {
       pViewportState = pViewportState_;
       return *this;
@@ -37880,28 +41743,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
+      setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
     {
       pMultisampleState = pMultisampleState_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
+      setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
     {
       pDepthStencilState = pDepthStencilState_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
+      setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorBlendState = pColorBlendState_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
-                            setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
+      setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
     {
       pDynamicState = pDynamicState_;
       return *this;
@@ -38057,7 +41920,7 @@
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ = {},
-                                                               void *                                                pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+                                                               const void *                                          pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
     {
@@ -38080,7 +41943,7 @@
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
@@ -38107,7 +41970,7 @@
 #  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
 #  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT const &>
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -38135,7 +41998,7 @@
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                   sType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
-    void *                                                pNext = {};
+    const void *                                          pNext = {};
     VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags = {};
   };
 
@@ -38210,7 +42073,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
-                            setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
+      setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
     {
       pStages = pStages_;
       return *this;
@@ -38227,14 +42090,14 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
-                            setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
+      setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
     {
       pVertexInputState = pVertexInputState_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
-                            setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
+      setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
     {
       pTessellationState = pTessellationState_;
       return *this;
@@ -38367,7 +42230,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV &
-                            setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
+      setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
     {
       pGroups = pGroups_;
       return *this;
@@ -38825,6 +42688,224 @@
     using Type = HeadlessSurfaceCreateInfoEXT;
   };
 
+  struct HostImageCopyDevicePerformanceQueryEXT
+  {
+    using NativeType = VkHostImageCopyDevicePerformanceQueryEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess_   = {},
+                                                                 VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout_ = {},
+                                                                 void *                       pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , optimalDeviceAccess( optimalDeviceAccess_ )
+      , identicalMemoryLayout( identicalMemoryLayout_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    HostImageCopyDevicePerformanceQueryEXT( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : HostImageCopyDevicePerformanceQueryEXT( *reinterpret_cast<HostImageCopyDevicePerformanceQueryEXT const *>( &rhs ) )
+    {
+    }
+
+    HostImageCopyDevicePerformanceQueryEXT & operator=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    HostImageCopyDevicePerformanceQueryEXT & operator=( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkHostImageCopyDevicePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT *>( this );
+    }
+
+    operator VkHostImageCopyDevicePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, optimalDeviceAccess, identicalMemoryLayout );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( HostImageCopyDevicePerformanceQueryEXT const & ) const = default;
+#else
+    bool operator==( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( optimalDeviceAccess == rhs.optimalDeviceAccess ) &&
+             ( identicalMemoryLayout == rhs.identicalMemoryLayout );
+#  endif
+    }
+
+    bool operator!=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
+    void *                              pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Bool32        optimalDeviceAccess   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        identicalMemoryLayout = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eHostImageCopyDevicePerformanceQueryEXT>
+  {
+    using Type = HostImageCopyDevicePerformanceQueryEXT;
+  };
+
+  struct HostImageLayoutTransitionInfoEXT
+  {
+    using NativeType = VkHostImageLayoutTransitionInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eHostImageLayoutTransitionInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT( VULKAN_HPP_NAMESPACE::Image       image_     = {},
+                                                           VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                           VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
+                                                           VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
+                                                           const void *                                pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , image( image_ )
+      , oldLayout( oldLayout_ )
+      , newLayout( newLayout_ )
+      , subresourceRange( subresourceRange_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    HostImageLayoutTransitionInfoEXT( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : HostImageLayoutTransitionInfoEXT( *reinterpret_cast<HostImageLayoutTransitionInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    HostImageLayoutTransitionInfoEXT & operator=( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    HostImageLayoutTransitionInfoEXT & operator=( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
+    {
+      image = image_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      oldLayout = oldLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      newLayout = newLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT &
+      setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
+    {
+      subresourceRange = subresourceRange_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkHostImageLayoutTransitionInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( this );
+    }
+
+    operator VkHostImageLayoutTransitionInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkHostImageLayoutTransitionInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::Image const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout const &,
+               VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, image, oldLayout, newLayout, subresourceRange );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( HostImageLayoutTransitionInfoEXT const & ) const = default;
+#else
+    bool operator==( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( oldLayout == rhs.oldLayout ) && ( newLayout == rhs.newLayout ) &&
+             ( subresourceRange == rhs.subresourceRange );
+#  endif
+    }
+
+    bool operator!=( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType         sType            = StructureType::eHostImageLayoutTransitionInfoEXT;
+    const void *                                pNext            = {};
+    VULKAN_HPP_NAMESPACE::Image                 image            = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout           oldLayout        = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    VULKAN_HPP_NAMESPACE::ImageLayout           newLayout        = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
+    VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eHostImageLayoutTransitionInfoEXT>
+  {
+    using Type = HostImageLayoutTransitionInfoEXT;
+  };
+
 #if defined( VK_USE_PLATFORM_IOS_MVK )
   struct IOSSurfaceCreateInfoMVK
   {
@@ -39202,7 +43283,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT &
-                            setPFixedRateFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
+      setPFixedRateFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       pFixedRateFlags = pFixedRateFlags_;
       return *this;
@@ -39436,14 +43517,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
-                            setImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo_ ) VULKAN_HPP_NOEXCEPT
+      setImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       imageCreateInfo = imageCreateInfo_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
-                            setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
+      setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
     {
       requiredFormatFeatures = requiredFormatFeatures_;
       return *this;
@@ -39468,7 +43549,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
-                            setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
+      setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorSpaces = pColorSpaces_;
       return *this;
@@ -39619,7 +43700,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA &
-                            setPFormatConstraints( const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
+      setPFormatConstraints( const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
     {
       pFormatConstraints = pFormatConstraints_;
       return *this;
@@ -39896,7 +43977,7 @@
       return *reinterpret_cast<const VkSubresourceLayout *>( this );
     }
 
-    explicit operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
+    operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubresourceLayout *>( this );
     }
@@ -40006,14 +44087,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
-                            setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
+      setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
     {
       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
-                            setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
+      setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
     {
       pPlaneLayouts = pPlaneLayouts_;
       return *this;
@@ -40030,12 +44111,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
     }
 
-    explicit operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
     }
@@ -40160,12 +44241,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT *>( this );
     }
 
-    explicit operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT *>( this );
     }
@@ -40244,12 +44325,12 @@
       return *this;
     }
 
-    explicit operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT *>( this );
     }
 
-    explicit operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( this );
     }
@@ -40367,12 +44448,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageFormatListCreateInfo *>( this );
     }
 
-    explicit operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageFormatListCreateInfo *>( this );
     }
@@ -40419,6 +44500,7 @@
   {
     using Type = ImageFormatListCreateInfo;
   };
+
   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
 
   struct ImageFormatProperties2
@@ -40452,12 +44534,12 @@
       return *this;
     }
 
-    explicit operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageFormatProperties2 *>( this );
     }
 
-    explicit operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
+    operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageFormatProperties2 *>( this );
     }
@@ -40503,6 +44585,7 @@
   {
     using Type = ImageFormatProperties2;
   };
+
   using ImageFormatProperties2KHR = ImageFormatProperties2;
 
   struct ImageMemoryBarrier
@@ -40597,19 +44680,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier &
-                            setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
+      setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
     {
       subresourceRange = subresourceRange_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageMemoryBarrier *>( this );
     }
 
-    explicit operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
+    operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageMemoryBarrier *>( this );
     }
@@ -40718,12 +44801,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( this );
     }
 
-    explicit operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageMemoryRequirementsInfo2 *>( this );
     }
@@ -40769,6 +44852,7 @@
   {
     using Type = ImageMemoryRequirementsInfo2;
   };
+
   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
 
 #if defined( VK_USE_PLATFORM_FUCHSIA )
@@ -40825,12 +44909,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
     }
 
-    explicit operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
     }
@@ -40937,12 +45021,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo *>( this );
     }
 
-    explicit operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo *>( this );
     }
@@ -40988,6 +45072,7 @@
   {
     using Type = ImagePlaneMemoryRequirementsInfo;
   };
+
   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
 
   struct ImageResolve
@@ -41053,12 +45138,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageResolve *>( this );
     }
 
-    explicit operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
+    operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageResolve *>( this );
     }
@@ -41242,6 +45327,7 @@
   {
     using Type = ImageResolve2;
   };
+
   using ImageResolve2KHR = ImageResolve2;
 
   struct ImageSparseMemoryRequirementsInfo2
@@ -41288,12 +45374,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( this );
     }
 
-    explicit operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2 *>( this );
     }
@@ -41339,6 +45425,7 @@
   {
     using Type = ImageSparseMemoryRequirementsInfo2;
   };
+
   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
 
   struct ImageStencilUsageCreateInfo
@@ -41386,12 +45473,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageStencilUsageCreateInfo *>( this );
     }
 
-    explicit operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageStencilUsageCreateInfo *>( this );
     }
@@ -41437,104 +45524,9 @@
   {
     using Type = ImageStencilUsageCreateInfo;
   };
+
   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
 
-  struct ImageSubresource2EXT
-  {
-    using NativeType = VkImageSubresource2EXT;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eImageSubresource2EXT;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR ImageSubresource2EXT( VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , imageSubresource( imageSubresource_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR ImageSubresource2EXT( ImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    ImageSubresource2EXT( VkImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : ImageSubresource2EXT( *reinterpret_cast<ImageSubresource2EXT const *>( &rhs ) )
-    {
-    }
-
-    ImageSubresource2EXT & operator=( ImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    ImageSubresource2EXT & operator=( VkImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 ImageSubresource2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 ImageSubresource2EXT & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
-    {
-      imageSubresource = imageSubresource_;
-      return *this;
-    }
-#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkImageSubresource2EXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkImageSubresource2EXT *>( this );
-    }
-
-    operator VkImageSubresource2EXT &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkImageSubresource2EXT *>( this );
-    }
-
-#if defined( VULKAN_HPP_USE_REFLECT )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageSubresource const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, imageSubresource );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( ImageSubresource2EXT const & ) const = default;
-#else
-    bool operator==( ImageSubresource2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSubresource == rhs.imageSubresource );
-#  endif
-    }
-
-    bool operator!=( ImageSubresource2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType    sType            = StructureType::eImageSubresource2EXT;
-    void *                                 pNext            = {};
-    VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource = {};
-  };
-
-  template <>
-  struct CppType<StructureType, StructureType::eImageSubresource2EXT>
-  {
-    using Type = ImageSubresource2EXT;
-  };
-
   struct ImageSwapchainCreateInfoKHR
   {
     using NativeType = VkImageSwapchainCreateInfoKHR;
@@ -41579,12 +45571,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR *>( this );
     }
 
-    explicit operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR *>( this );
     }
@@ -41676,12 +45668,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT *>( this );
     }
 
-    explicit operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT *>( this );
     }
@@ -41761,12 +45753,12 @@
       return *this;
     }
 
-    explicit operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX *>( this );
     }
 
-    explicit operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageViewAddressPropertiesNVX *>( this );
     }
@@ -41990,19 +45982,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo &
-                            setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
+      setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
     {
       subresourceRange = subresourceRange_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageViewCreateInfo *>( this );
     }
 
-    explicit operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageViewCreateInfo *>( this );
     }
@@ -42123,12 +46115,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageViewHandleInfoNVX *>( this );
     }
 
-    explicit operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageViewHandleInfoNVX *>( this );
     }
@@ -42398,6 +46390,111 @@
     using Type = ImageViewSampleWeightCreateInfoQCOM;
   };
 
+  struct ImageViewSlicedCreateInfoEXT
+  {
+    using NativeType = VkImageViewSlicedCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eImageViewSlicedCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      ImageViewSlicedCreateInfoEXT( uint32_t sliceOffset_ = {}, uint32_t sliceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , sliceOffset( sliceOffset_ )
+      , sliceCount( sliceCount_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ImageViewSlicedCreateInfoEXT( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ImageViewSlicedCreateInfoEXT( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ImageViewSlicedCreateInfoEXT( *reinterpret_cast<ImageViewSlicedCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    ImageViewSlicedCreateInfoEXT & operator=( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ImageViewSlicedCreateInfoEXT & operator=( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceOffset( uint32_t sliceOffset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      sliceOffset = sliceOffset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      sliceCount = sliceCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkImageViewSlicedCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkImageViewSlicedCreateInfoEXT *>( this );
+    }
+
+    operator VkImageViewSlicedCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkImageViewSlicedCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, sliceOffset, sliceCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ImageViewSlicedCreateInfoEXT const & ) const = default;
+#else
+    bool operator==( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sliceOffset == rhs.sliceOffset ) && ( sliceCount == rhs.sliceCount );
+#  endif
+    }
+
+    bool operator!=( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType       = StructureType::eImageViewSlicedCreateInfoEXT;
+    const void *                        pNext       = {};
+    uint32_t                            sliceOffset = {};
+    uint32_t                            sliceCount  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eImageViewSlicedCreateInfoEXT>
+  {
+    using Type = ImageViewSlicedCreateInfoEXT;
+  };
+
   struct ImageViewUsageCreateInfo
   {
     using NativeType = VkImageViewUsageCreateInfo;
@@ -42442,12 +46539,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImageViewUsageCreateInfo *>( this );
     }
 
-    explicit operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImageViewUsageCreateInfo *>( this );
     }
@@ -42493,6 +46590,7 @@
   {
     using Type = ImageViewUsageCreateInfo;
   };
+
   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
 
 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
@@ -42540,12 +46638,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID *>( this );
     }
 
-    explicit operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
+    operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID *>( this );
     }
@@ -42663,12 +46761,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportFenceFdInfoKHR *>( this );
     }
 
-    explicit operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportFenceFdInfoKHR *>( this );
     }
@@ -42785,7 +46883,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -42804,12 +46902,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( this );
     }
 
-    explicit operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR *>( this );
     }
@@ -43030,12 +47128,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportMemoryFdInfoKHR *>( this );
     }
 
-    explicit operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportMemoryFdInfoKHR *>( this );
     }
@@ -43125,7 +47223,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -43138,12 +47236,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT *>( this );
     }
 
-    explicit operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT *>( this );
     }
@@ -43237,7 +47335,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -43256,12 +47354,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR *>( this );
     }
 
-    explicit operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR *>( this );
     }
@@ -43357,7 +47455,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -43370,12 +47468,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV *>( this );
     }
 
-    explicit operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV *>( this );
     }
@@ -43467,7 +47565,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -43480,12 +47578,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
     }
 
-    explicit operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
     }
@@ -43948,6 +48046,104 @@
   };
 #endif /*VK_USE_PLATFORM_METAL_EXT*/
 
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  struct ImportScreenBufferInfoQNX
+  {
+    using NativeType = VkImportScreenBufferInfoQNX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eImportScreenBufferInfoQNX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( struct _screen_buffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , buffer( buffer_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ImportScreenBufferInfoQNX( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ImportScreenBufferInfoQNX( *reinterpret_cast<ImportScreenBufferInfoQNX const *>( &rhs ) )
+    {
+    }
+
+    ImportScreenBufferInfoQNX & operator=( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ImportScreenBufferInfoQNX & operator=( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setBuffer( struct _screen_buffer * buffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      buffer = buffer_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkImportScreenBufferInfoQNX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkImportScreenBufferInfoQNX *>( this );
+    }
+
+    operator VkImportScreenBufferInfoQNX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkImportScreenBufferInfoQNX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct _screen_buffer * const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, buffer );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ImportScreenBufferInfoQNX const & ) const = default;
+#  else
+    bool operator==( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
+#    endif
+    }
+
+    bool operator!=( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType  = StructureType::eImportScreenBufferInfoQNX;
+    const void *                        pNext  = {};
+    struct _screen_buffer *             buffer = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eImportScreenBufferInfoQNX>
+  {
+    using Type = ImportScreenBufferInfoQNX;
+  };
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   struct ImportSemaphoreFdInfoKHR
   {
     using NativeType = VkImportSemaphoreFdInfoKHR;
@@ -44006,7 +48202,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -44019,12 +48215,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( this );
     }
 
-    explicit operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR *>( this );
     }
@@ -44141,7 +48337,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -44160,12 +48356,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( this );
     }
 
-    explicit operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR *>( this );
     }
@@ -44283,7 +48479,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -44296,12 +48492,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
     }
 
-    explicit operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
     }
@@ -44505,14 +48701,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
-                            setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
+      setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       pushconstantPipelineLayout = pushconstantPipelineLayout_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
-                            setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
+      setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
       return *this;
@@ -44531,7 +48727,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
-                            setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
+      setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       indirectStateFlags = indirectStateFlags_;
       return *this;
@@ -44576,12 +48772,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV *>( this );
     }
 
-    explicit operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
+    operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV *>( this );
     }
@@ -44747,7 +48943,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
-                            setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineBindPoint = pipelineBindPoint_;
       return *this;
@@ -44760,7 +48956,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
-                            setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT
+      setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT
     {
       pTokens = pTokens_;
       return *this;
@@ -44799,12 +48995,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( this );
     }
 
-    explicit operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV *>( this );
     }
@@ -44908,12 +49104,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( this );
     }
 
-    explicit operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL *>( this );
     }
@@ -45010,12 +49206,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
+    operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkInputAttachmentAspectReference *>( this );
     }
 
-    explicit operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
+    operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkInputAttachmentAspectReference *>( this );
     }
@@ -45055,6 +49251,7 @@
     uint32_t                               inputAttachmentIndex = {};
     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask           = {};
   };
+
   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
 
   struct InstanceCreateInfo
@@ -45176,12 +49373,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkInstanceCreateInfo *>( this );
     }
 
-    explicit operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkInstanceCreateInfo *>( this );
     }
@@ -45274,6 +49471,448 @@
     using Type = InstanceCreateInfo;
   };
 
+  struct LatencySleepInfoNV
+  {
+    using NativeType = VkLatencySleepInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLatencySleepInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      LatencySleepInfoNV( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , signalSemaphore( signalSemaphore_ )
+      , value( value_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LatencySleepInfoNV( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LatencySleepInfoNV( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT : LatencySleepInfoNV( *reinterpret_cast<LatencySleepInfoNV const *>( &rhs ) ) {}
+
+    LatencySleepInfoNV & operator=( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LatencySleepInfoNV & operator=( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setSignalSemaphore( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ ) VULKAN_HPP_NOEXCEPT
+    {
+      signalSemaphore = signalSemaphore_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
+    {
+      value = value_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLatencySleepInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLatencySleepInfoNV *>( this );
+    }
+
+    operator VkLatencySleepInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLatencySleepInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, signalSemaphore, value );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LatencySleepInfoNV const & ) const = default;
+#else
+    bool operator==( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( signalSemaphore == rhs.signalSemaphore ) && ( value == rhs.value );
+#  endif
+    }
+
+    bool operator!=( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eLatencySleepInfoNV;
+    const void *                        pNext           = {};
+    VULKAN_HPP_NAMESPACE::Semaphore     signalSemaphore = {};
+    uint64_t                            value           = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLatencySleepInfoNV>
+  {
+    using Type = LatencySleepInfoNV;
+  };
+
+  struct LatencySleepModeInfoNV
+  {
+    using NativeType = VkLatencySleepModeInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLatencySleepModeInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_    = {},
+                                                 VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_   = {},
+                                                 uint32_t                     minimumIntervalUs_ = {},
+                                                 const void *                 pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , lowLatencyMode( lowLatencyMode_ )
+      , lowLatencyBoost( lowLatencyBoost_ )
+      , minimumIntervalUs( minimumIntervalUs_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LatencySleepModeInfoNV( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : LatencySleepModeInfoNV( *reinterpret_cast<LatencySleepModeInfoNV const *>( &rhs ) )
+    {
+    }
+
+    LatencySleepModeInfoNV & operator=( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LatencySleepModeInfoNV & operator=( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyMode( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ ) VULKAN_HPP_NOEXCEPT
+    {
+      lowLatencyMode = lowLatencyMode_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyBoost( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ ) VULKAN_HPP_NOEXCEPT
+    {
+      lowLatencyBoost = lowLatencyBoost_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setMinimumIntervalUs( uint32_t minimumIntervalUs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      minimumIntervalUs = minimumIntervalUs_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLatencySleepModeInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLatencySleepModeInfoNV *>( this );
+    }
+
+    operator VkLatencySleepModeInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLatencySleepModeInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, lowLatencyMode, lowLatencyBoost, minimumIntervalUs );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LatencySleepModeInfoNV const & ) const = default;
+#else
+    bool operator==( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lowLatencyMode == rhs.lowLatencyMode ) && ( lowLatencyBoost == rhs.lowLatencyBoost ) &&
+             ( minimumIntervalUs == rhs.minimumIntervalUs );
+#  endif
+    }
+
+    bool operator!=( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::eLatencySleepModeInfoNV;
+    const void *                        pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        lowLatencyMode    = {};
+    VULKAN_HPP_NAMESPACE::Bool32        lowLatencyBoost   = {};
+    uint32_t                            minimumIntervalUs = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLatencySleepModeInfoNV>
+  {
+    using Type = LatencySleepModeInfoNV;
+  };
+
+  struct LatencySubmissionPresentIdNV
+  {
+    using NativeType = VkLatencySubmissionPresentIdNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLatencySubmissionPresentIdNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( uint64_t presentID_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , presentID( presentID_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LatencySubmissionPresentIdNV( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : LatencySubmissionPresentIdNV( *reinterpret_cast<LatencySubmissionPresentIdNV const *>( &rhs ) )
+    {
+    }
+
+    LatencySubmissionPresentIdNV & operator=( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LatencySubmissionPresentIdNV & operator=( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentID = presentID_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLatencySubmissionPresentIdNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLatencySubmissionPresentIdNV *>( this );
+    }
+
+    operator VkLatencySubmissionPresentIdNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLatencySubmissionPresentIdNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, presentID );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LatencySubmissionPresentIdNV const & ) const = default;
+#else
+    bool operator==( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID );
+#  endif
+    }
+
+    bool operator!=( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType     = StructureType::eLatencySubmissionPresentIdNV;
+    const void *                        pNext     = {};
+    uint64_t                            presentID = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLatencySubmissionPresentIdNV>
+  {
+    using Type = LatencySubmissionPresentIdNV;
+  };
+
+  struct LatencySurfaceCapabilitiesNV
+  {
+    using NativeType = VkLatencySurfaceCapabilitiesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLatencySurfaceCapabilitiesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( uint32_t                               presentModeCount_ = {},
+                                                       VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_    = {},
+                                                       const void *                           pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , presentModeCount( presentModeCount_ )
+      , pPresentModes( pPresentModes_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LatencySurfaceCapabilitiesNV( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : LatencySurfaceCapabilitiesNV( *reinterpret_cast<LatencySurfaceCapabilitiesNV const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    LatencySurfaceCapabilitiesNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
+                                  const void *                                                                                pNext_ = nullptr )
+      : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    LatencySurfaceCapabilitiesNV & operator=( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LatencySurfaceCapabilitiesNV & operator=( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentModeCount = presentModeCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPresentModes = pPresentModes_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    LatencySurfaceCapabilitiesNV &
+      setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentModeCount = static_cast<uint32_t>( presentModes_.size() );
+      pPresentModes    = presentModes_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLatencySurfaceCapabilitiesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLatencySurfaceCapabilitiesNV *>( this );
+    }
+
+    operator VkLatencySurfaceCapabilitiesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLatencySurfaceCapabilitiesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, presentModeCount, pPresentModes );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LatencySurfaceCapabilitiesNV const & ) const = default;
+#else
+    bool operator==( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes );
+#  endif
+    }
+
+    bool operator!=( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType            = StructureType::eLatencySurfaceCapabilitiesNV;
+    const void *                           pNext            = {};
+    uint32_t                               presentModeCount = {};
+    VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLatencySurfaceCapabilitiesNV>
+  {
+    using Type = LatencySurfaceCapabilitiesNV;
+  };
+
   struct LayerProperties
   {
     using NativeType = VkLayerProperties;
@@ -45303,12 +49942,12 @@
       return *this;
     }
 
-    explicit operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkLayerProperties *>( this );
     }
 
-    explicit operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkLayerProperties *>( this );
     }
@@ -45354,6 +49993,280 @@
     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE>    description           = {};
   };
 
+  struct LayerSettingEXT
+  {
+    using NativeType = VkLayerSettingEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LayerSettingEXT( const char *                              pLayerName_   = {},
+                                          const char *                              pSettingName_ = {},
+                                          VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT type_         = VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT::eBool32,
+                                          uint32_t                                  valueCount_   = {},
+                                          const void *                              pValues_      = {} ) VULKAN_HPP_NOEXCEPT
+      : pLayerName( pLayerName_ )
+      , pSettingName( pSettingName_ )
+      , type( type_ )
+      , valueCount( valueCount_ )
+      , pValues( pValues_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LayerSettingEXT( LayerSettingEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LayerSettingEXT( VkLayerSettingEXT const & rhs ) VULKAN_HPP_NOEXCEPT : LayerSettingEXT( *reinterpret_cast<LayerSettingEXT const *>( &rhs ) ) {}
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    LayerSettingEXT( const char *                                                   pLayerName_,
+                     const char *                                                   pSettingName_,
+                     VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT                      type_,
+                     VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & values_ )
+      : pLayerName( pLayerName_ )
+      , pSettingName( pSettingName_ )
+      , type( type_ )
+      , valueCount( static_cast<uint32_t>( values_.size() * sizeof( T ) ) )
+      , pValues( values_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    LayerSettingEXT & operator=( LayerSettingEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LayerSettingEXT & operator=( VkLayerSettingEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerSettingEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingEXT & setPLayerName( const char * pLayerName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pLayerName = pLayerName_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingEXT & setPSettingName( const char * pSettingName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSettingName = pSettingName_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingEXT & setType( VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
+    {
+      type = type_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingEXT & setValueCount( uint32_t valueCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      valueCount = valueCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingEXT & setPValues( const void * pValues_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pValues = pValues_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    LayerSettingEXT & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & values_ ) VULKAN_HPP_NOEXCEPT
+    {
+      valueCount = static_cast<uint32_t>( values_.size() * sizeof( T ) );
+      pValues    = values_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLayerSettingEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLayerSettingEXT *>( this );
+    }
+
+    operator VkLayerSettingEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLayerSettingEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<const char * const &, const char * const &, VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT const &, uint32_t const &, const void * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( pLayerName, pSettingName, type, valueCount, pValues );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( LayerSettingEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( pLayerName != rhs.pLayerName )
+        if ( auto cmp = strcmp( pLayerName, rhs.pLayerName ); cmp != 0 )
+          return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( pSettingName != rhs.pSettingName )
+        if ( auto cmp = strcmp( pSettingName, rhs.pSettingName ); cmp != 0 )
+          return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( auto cmp = type <=> rhs.type; cmp != 0 )
+        return cmp;
+      if ( auto cmp = valueCount <=> rhs.valueCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pValues <=> rhs.pValues; cmp != 0 )
+        return cmp;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( LayerSettingEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( ( pLayerName == rhs.pLayerName ) || ( strcmp( pLayerName, rhs.pLayerName ) == 0 ) ) &&
+             ( ( pSettingName == rhs.pSettingName ) || ( strcmp( pSettingName, rhs.pSettingName ) == 0 ) ) && ( type == rhs.type ) &&
+             ( valueCount == rhs.valueCount ) && ( pValues == rhs.pValues );
+    }
+
+    bool operator!=( LayerSettingEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    const char *                              pLayerName   = {};
+    const char *                              pSettingName = {};
+    VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT type         = VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT::eBool32;
+    uint32_t                                  valueCount   = {};
+    const void *                              pValues      = {};
+  };
+
+  struct LayerSettingsCreateInfoEXT
+  {
+    using NativeType = VkLayerSettingsCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eLayerSettingsCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR LayerSettingsCreateInfoEXT( uint32_t                                      settingCount_ = {},
+                                                     const VULKAN_HPP_NAMESPACE::LayerSettingEXT * pSettings_    = {},
+                                                     const void *                                  pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , settingCount( settingCount_ )
+      , pSettings( pSettings_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR LayerSettingsCreateInfoEXT( LayerSettingsCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    LayerSettingsCreateInfoEXT( VkLayerSettingsCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : LayerSettingsCreateInfoEXT( *reinterpret_cast<LayerSettingsCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    LayerSettingsCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::LayerSettingEXT> const & settings_,
+                                const void *                                                                                       pNext_ = nullptr )
+      : pNext( pNext_ ), settingCount( static_cast<uint32_t>( settings_.size() ) ), pSettings( settings_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    LayerSettingsCreateInfoEXT & operator=( LayerSettingsCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    LayerSettingsCreateInfoEXT & operator=( VkLayerSettingsCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingsCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingsCreateInfoEXT & setSettingCount( uint32_t settingCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      settingCount = settingCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 LayerSettingsCreateInfoEXT & setPSettings( const VULKAN_HPP_NAMESPACE::LayerSettingEXT * pSettings_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSettings = pSettings_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    LayerSettingsCreateInfoEXT &
+      setSettings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::LayerSettingEXT> const & settings_ ) VULKAN_HPP_NOEXCEPT
+    {
+      settingCount = static_cast<uint32_t>( settings_.size() );
+      pSettings    = settings_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkLayerSettingsCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkLayerSettingsCreateInfoEXT *>( this );
+    }
+
+    operator VkLayerSettingsCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkLayerSettingsCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::LayerSettingEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, settingCount, pSettings );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( LayerSettingsCreateInfoEXT const & ) const = default;
+#else
+    bool operator==( LayerSettingsCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( settingCount == rhs.settingCount ) && ( pSettings == rhs.pSettings );
+#  endif
+    }
+
+    bool operator!=( LayerSettingsCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType           sType        = StructureType::eLayerSettingsCreateInfoEXT;
+    const void *                                  pNext        = {};
+    uint32_t                                      settingCount = {};
+    const VULKAN_HPP_NAMESPACE::LayerSettingEXT * pSettings    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eLayerSettingsCreateInfoEXT>
+  {
+    using Type = LayerSettingsCreateInfoEXT;
+  };
+
 #if defined( VK_USE_PLATFORM_MACOS_MVK )
   struct MacOSSurfaceCreateInfoMVK
   {
@@ -45408,12 +50321,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( this );
     }
 
-    explicit operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
+    operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK *>( this );
     }
@@ -45521,12 +50434,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMappedMemoryRange *>( this );
     }
 
-    explicit operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
+    operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMappedMemoryRange *>( this );
     }
@@ -45632,12 +50545,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo *>( this );
     }
 
-    explicit operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryAllocateFlagsInfo *>( this );
     }
@@ -45684,6 +50597,7 @@
   {
     using Type = MemoryAllocateFlagsInfo;
   };
+
   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
 
   struct MemoryAllocateInfo
@@ -45736,12 +50650,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryAllocateInfo *>( this );
     }
 
-    explicit operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryAllocateInfo *>( this );
     }
@@ -45839,12 +50753,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryBarrier *>( this );
     }
 
-    explicit operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryBarrier *>( this );
     }
@@ -45948,12 +50862,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo *>( this );
     }
 
-    explicit operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo *>( this );
     }
@@ -46000,6 +50914,7 @@
   {
     using Type = MemoryDedicatedAllocateInfo;
   };
+
   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
 
   struct MemoryDedicatedRequirements
@@ -46035,12 +50950,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryDedicatedRequirements *>( this );
     }
 
-    explicit operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryDedicatedRequirements *>( this );
     }
@@ -46088,6 +51003,7 @@
   {
     using Type = MemoryDedicatedRequirements;
   };
+
   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
 
   struct MemoryFdPropertiesKHR
@@ -46120,12 +51036,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryFdPropertiesKHR *>( this );
     }
 
-    explicit operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryFdPropertiesKHR *>( this );
     }
@@ -46218,12 +51134,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
     }
 
-    explicit operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
     }
@@ -46322,12 +51238,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryGetFdInfoKHR *>( this );
     }
 
-    explicit operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryGetFdInfoKHR *>( this );
     }
@@ -46426,7 +51342,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
@@ -46538,19 +51454,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( this );
     }
 
-    explicit operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR *>( this );
     }
@@ -46651,19 +51567,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
     }
 
-    explicit operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
     }
@@ -46739,12 +51655,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryHeap *>( this );
     }
 
-    explicit operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryHeap *>( this );
     }
@@ -46814,12 +51730,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT *>( this );
     }
 
-    explicit operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( this );
     }
@@ -46866,6 +51782,133 @@
     using Type = MemoryHostPointerPropertiesEXT;
   };
 
+  struct MemoryMapInfoKHR
+  {
+    using NativeType = VkMemoryMapInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eMemoryMapInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR( VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_  = {},
+                                           VULKAN_HPP_NAMESPACE::DeviceMemory   memory_ = {},
+                                           VULKAN_HPP_NAMESPACE::DeviceSize     offset_ = {},
+                                           VULKAN_HPP_NAMESPACE::DeviceSize     size_   = {},
+                                           const void *                         pNext_  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , memory( memory_ )
+      , offset( offset_ )
+      , size( size_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    MemoryMapInfoKHR( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryMapInfoKHR( *reinterpret_cast<MemoryMapInfoKHR const *>( &rhs ) ) {}
+
+    MemoryMapInfoKHR & operator=( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    MemoryMapInfoKHR & operator=( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memory = memory_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      offset = offset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkMemoryMapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkMemoryMapInfoKHR *>( this );
+    }
+
+    operator VkMemoryMapInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkMemoryMapInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::MemoryMapFlags const &,
+               VULKAN_HPP_NAMESPACE::DeviceMemory const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, memory, offset, size );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( MemoryMapInfoKHR const & ) const = default;
+#else
+    bool operator==( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( memory == rhs.memory ) && ( offset == rhs.offset ) &&
+             ( size == rhs.size );
+#  endif
+    }
+
+    bool operator!=( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType  sType  = StructureType::eMemoryMapInfoKHR;
+    const void *                         pNext  = {};
+    VULKAN_HPP_NAMESPACE::MemoryMapFlags flags  = {};
+    VULKAN_HPP_NAMESPACE::DeviceMemory   memory = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize     offset = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize     size   = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eMemoryMapInfoKHR>
+  {
+    using Type = MemoryMapInfoKHR;
+  };
+
   struct MemoryOpaqueCaptureAddressAllocateInfo
   {
     using NativeType = VkMemoryOpaqueCaptureAddressAllocateInfo;
@@ -46910,12 +51953,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
     }
 
-    explicit operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
     }
@@ -46961,6 +52004,7 @@
   {
     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
   };
+
   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
 
   struct MemoryPriorityAllocateInfoEXT
@@ -47007,12 +52051,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT *>( this );
     }
 
-    explicit operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT *>( this );
     }
@@ -47086,12 +52130,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryRequirements *>( this );
     }
 
-    explicit operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryRequirements *>( this );
     }
@@ -47161,12 +52205,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryRequirements2 *>( this );
     }
 
-    explicit operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryRequirements2 *>( this );
     }
@@ -47212,6 +52256,7 @@
   {
     using Type = MemoryRequirements2;
   };
+
   using MemoryRequirements2KHR = MemoryRequirements2;
 
   struct MemoryType
@@ -47238,12 +52283,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryType *>( this );
     }
 
-    explicit operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryType *>( this );
     }
@@ -47283,6 +52328,112 @@
     uint32_t                                  heapIndex     = {};
   };
 
+  struct MemoryUnmapInfoKHR
+  {
+    using NativeType = VkMemoryUnmapInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eMemoryUnmapInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_  = {},
+                                             VULKAN_HPP_NAMESPACE::DeviceMemory        memory_ = {},
+                                             const void *                              pNext_  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , memory( memory_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    MemoryUnmapInfoKHR( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryUnmapInfoKHR( *reinterpret_cast<MemoryUnmapInfoKHR const *>( &rhs ) ) {}
+
+    MemoryUnmapInfoKHR & operator=( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    MemoryUnmapInfoKHR & operator=( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
+    {
+      memory = memory_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkMemoryUnmapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkMemoryUnmapInfoKHR *>( this );
+    }
+
+    operator VkMemoryUnmapInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkMemoryUnmapInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR const &,
+               VULKAN_HPP_NAMESPACE::DeviceMemory const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, memory );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( MemoryUnmapInfoKHR const & ) const = default;
+#else
+    bool operator==( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( memory == rhs.memory );
+#  endif
+    }
+
+    bool operator!=( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType       sType  = StructureType::eMemoryUnmapInfoKHR;
+    const void *                              pNext  = {};
+    VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags  = {};
+    VULKAN_HPP_NAMESPACE::DeviceMemory        memory = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eMemoryUnmapInfoKHR>
+  {
+    using Type = MemoryUnmapInfoKHR;
+  };
+
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
   struct MemoryWin32HandlePropertiesKHR
   {
@@ -47314,12 +52465,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR *>( this );
     }
 
-    explicit operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( this );
     }
@@ -47398,12 +52549,12 @@
       return *this;
     }
 
-    explicit operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
     }
 
-    explicit operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
     }
@@ -47505,12 +52656,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( this );
     }
 
-    explicit operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT *>( this );
     }
@@ -47731,7 +52882,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT &
-                            setTriangleArray( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & triangleArray_ ) VULKAN_HPP_NOEXCEPT
+      setTriangleArray( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & triangleArray_ ) VULKAN_HPP_NOEXCEPT
     {
       triangleArray = triangleArray_;
       return *this;
@@ -48308,12 +53459,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( this );
     }
 
-    explicit operator VkMultiDrawIndexedInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMultiDrawIndexedInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMultiDrawIndexedInfoEXT *>( this );
     }
@@ -48392,12 +53543,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMultiDrawInfoEXT *>( this );
     }
 
-    explicit operator VkMultiDrawInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMultiDrawInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMultiDrawInfoEXT *>( this );
     }
@@ -48467,12 +53618,12 @@
       return *this;
     }
 
-    explicit operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkMultisamplePropertiesEXT *>( this );
     }
 
-    explicit operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkMultisamplePropertiesEXT *>( this );
     }
@@ -48568,7 +53719,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT &
-                            setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
+      setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
     {
       rasterizationSamples = rasterizationSamples_;
       return *this;
@@ -48679,7 +53830,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX &
-                            setPerViewAttributesPositionXOnly( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ ) VULKAN_HPP_NOEXCEPT
+      setPerViewAttributesPositionXOnly( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ ) VULKAN_HPP_NOEXCEPT
     {
       perViewAttributesPositionXOnly = perViewAttributesPositionXOnly_;
       return *this;
@@ -48740,6 +53891,135 @@
     using Type = MultiviewPerViewAttributesInfoNVX;
   };
 
+  struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM
+  {
+    using NativeType = VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( uint32_t                             perViewRenderAreaCount_ = {},
+                                                                             const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_    = {},
+                                                                             const void *                         pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , perViewRenderAreaCount( perViewRenderAreaCount_ )
+      , pPerViewRenderAreas( pPerViewRenderAreas_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( *reinterpret_cast<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_, const void * pNext_ = nullptr )
+      : pNext( pNext_ ), perViewRenderAreaCount( static_cast<uint32_t>( perViewRenderAreas_.size() ) ), pPerViewRenderAreas( perViewRenderAreas_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
+      operator=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & operator=( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
+      setPerViewRenderAreaCount( uint32_t perViewRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      perViewRenderAreaCount = perViewRenderAreaCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
+      setPPerViewRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPerViewRenderAreas = pPerViewRenderAreas_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
+      setPerViewRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
+    {
+      perViewRenderAreaCount = static_cast<uint32_t>( perViewRenderAreas_.size() );
+      pPerViewRenderAreas    = perViewRenderAreas_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>( this );
+    }
+
+    operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, perViewRenderAreaCount, pPerViewRenderAreas );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & ) const = default;
+#else
+    bool operator==( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewRenderAreaCount == rhs.perViewRenderAreaCount ) &&
+             ( pPerViewRenderAreas == rhs.pPerViewRenderAreas );
+#  endif
+    }
+
+    bool operator!=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType  sType                  = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+    const void *                         pNext                  = {};
+    uint32_t                             perViewRenderAreaCount = {};
+    const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>
+  {
+    using Type = MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+  };
+
   struct MutableDescriptorTypeListEXT
   {
     using NativeType = VkMutableDescriptorTypeListEXT;
@@ -48783,7 +54063,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListEXT &
-                            setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
+      setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       pDescriptorTypes = pDescriptorTypes_;
       return *this;
@@ -48844,6 +54124,7 @@
     uint32_t                                     descriptorTypeCount = {};
     const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes    = {};
   };
+
   using MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
 
   struct MutableDescriptorTypeCreateInfoEXT
@@ -48898,7 +54179,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT &
-                            setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
+      setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
     {
       mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_;
       return *this;
@@ -48979,6 +54260,7 @@
   {
     using Type = MutableDescriptorTypeCreateInfoEXT;
   };
+
   using MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
 
   struct OpaqueCaptureDescriptorDataCreateInfoEXT
@@ -49020,7 +54302,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 OpaqueCaptureDescriptorDataCreateInfoEXT &
-                            setOpaqueCaptureDescriptorData( const void * opaqueCaptureDescriptorData_ ) VULKAN_HPP_NOEXCEPT
+      setOpaqueCaptureDescriptorData( const void * opaqueCaptureDescriptorData_ ) VULKAN_HPP_NOEXCEPT
     {
       opaqueCaptureDescriptorData = opaqueCaptureDescriptorData_;
       return *this;
@@ -49483,21 +54765,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
-                            setOutputGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ ) VULKAN_HPP_NOEXCEPT
+      setOutputGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ ) VULKAN_HPP_NOEXCEPT
     {
       outputGridSize = outputGridSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
-                            setHintGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ ) VULKAN_HPP_NOEXCEPT
+      setHintGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ ) VULKAN_HPP_NOEXCEPT
     {
       hintGridSize = hintGridSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
-                            setPerformanceLevel( VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ ) VULKAN_HPP_NOEXCEPT
+      setPerformanceLevel( VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ ) VULKAN_HPP_NOEXCEPT
     {
       performanceLevel = performanceLevel_;
       return *this;
@@ -49697,6 +54979,103 @@
     using Type = OpticalFlowSessionCreatePrivateDataInfoNV;
   };
 
+  struct OutOfBandQueueTypeInfoNV
+  {
+    using NativeType = VkOutOfBandQueueTypeInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eOutOfBandQueueTypeInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender,
+                                                   const void *                               pNext_     = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , queueType( queueType_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    OutOfBandQueueTypeInfoNV( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : OutOfBandQueueTypeInfoNV( *reinterpret_cast<OutOfBandQueueTypeInfoNV const *>( &rhs ) )
+    {
+    }
+
+    OutOfBandQueueTypeInfoNV & operator=( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    OutOfBandQueueTypeInfoNV & operator=( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setQueueType( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      queueType = queueType_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkOutOfBandQueueTypeInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( this );
+    }
+
+    operator VkOutOfBandQueueTypeInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkOutOfBandQueueTypeInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, queueType );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( OutOfBandQueueTypeInfoNV const & ) const = default;
+#else
+    bool operator==( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueType == rhs.queueType );
+#  endif
+    }
+
+    bool operator!=( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType        sType     = StructureType::eOutOfBandQueueTypeInfoNV;
+    const void *                               pNext     = {};
+    VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eOutOfBandQueueTypeInfoNV>
+  {
+    using Type = OutOfBandQueueTypeInfoNV;
+  };
+
   struct PastPresentationTimingGOOGLE
   {
     using NativeType = VkPastPresentationTimingGOOGLE;
@@ -49731,12 +55110,12 @@
       return *this;
     }
 
-    explicit operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE *>( this );
     }
 
-    explicit operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
+    operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPastPresentationTimingGOOGLE *>( this );
     }
@@ -49821,19 +55200,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL &
-                            setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
+      setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
     {
       type = type_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( this );
     }
 
-    explicit operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL *>( this );
     }
@@ -49918,12 +55297,12 @@
       return *this;
     }
 
-    explicit operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR *>( this );
     }
 
-    explicit operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( this );
     }
@@ -50017,12 +55396,12 @@
       return *this;
     }
 
-    explicit operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceCounterKHR *>( this );
     }
 
-    explicit operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceCounterKHR *>( this );
     }
@@ -50196,12 +55575,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( this );
     }
 
-    explicit operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL *>( this );
     }
@@ -50310,12 +55689,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( this );
     }
 
-    explicit operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL *>( this );
     }
@@ -50412,12 +55791,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR *>( this );
     }
 
-    explicit operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR *>( this );
     }
@@ -50508,12 +55887,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( this );
     }
 
-    explicit operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL *>( this );
     }
@@ -50674,12 +56053,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPerformanceValueINTEL *>( this );
     }
 
-    explicit operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPerformanceValueINTEL *>( this );
     }
@@ -50746,40 +56125,40 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
-                            setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       storageBuffer16BitAccess = storageBuffer16BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
-                            setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
-                            setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
+      setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
     {
       storagePushConstant16 = storagePushConstant16_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
-                            setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
+      setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
     {
       storageInputOutput16 = storageInputOutput16_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures *>( this );
     }
@@ -50835,6 +56214,7 @@
   {
     using Type = PhysicalDevice16BitStorageFeatures;
   };
+
   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
 
   struct PhysicalDevice4444FormatsFeaturesEXT
@@ -50890,12 +56270,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
     }
@@ -50986,33 +56366,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
-                            setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       storageBuffer8BitAccess = storageBuffer8BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
-                            setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
-                            setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
+      setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
     {
       storagePushConstant8 = storagePushConstant8_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures *>( this );
     }
@@ -51065,6 +56445,7 @@
   {
     using Type = PhysicalDevice8BitStorageFeatures;
   };
+
   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
 
   struct PhysicalDeviceASTCDecodeFeaturesEXT
@@ -51106,19 +56487,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT &
-                            setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
+      setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
     {
       decodeModeSharedExponent = decodeModeSharedExponent_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
     }
@@ -51214,28 +56595,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
-                            setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructure = accelerationStructure_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
-                            setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
-                            setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
-                            setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureHostCommands = accelerationStructureHostCommands_;
       return *this;
@@ -51249,12 +56630,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
     }
@@ -51367,12 +56748,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
     }
@@ -51490,7 +56871,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAddressBindingReportFeaturesEXT &
-                            setReportAddressBinding( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ ) VULKAN_HPP_NOEXCEPT
+      setReportAddressBinding( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ ) VULKAN_HPP_NOEXCEPT
     {
       reportAddressBinding = reportAddressBinding_;
       return *this;
@@ -51646,6 +57027,108 @@
     using Type = PhysicalDeviceAmigoProfilingFeaturesSEC;
   };
 
+  struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ = {},
+                                                                                      void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , attachmentFeedbackLoopDynamicState( attachmentFeedbackLoopDynamicState_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs )
+      VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
+          *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+      operator=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+      operator=( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+      setAttachmentFeedbackLoopDynamicState( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ ) VULKAN_HPP_NOEXCEPT
+    {
+      attachmentFeedbackLoopDynamicState = attachmentFeedbackLoopDynamicState_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, attachmentFeedbackLoopDynamicState );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentFeedbackLoopDynamicState == rhs.attachmentFeedbackLoopDynamicState );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                              = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+    void *                              pNext                              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        attachmentFeedbackLoopDynamicState = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
+  {
+    using Type = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+  };
+
   struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
@@ -51687,7 +57170,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &
-                            setAttachmentFeedbackLoopLayout( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ ) VULKAN_HPP_NOEXCEPT
+      setAttachmentFeedbackLoopLayout( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       attachmentFeedbackLoopLayout = attachmentFeedbackLoopLayout_;
       return *this;
@@ -51786,19 +57269,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT &
-                            setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
+      setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
     {
       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
     }
@@ -51888,12 +57371,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
     }
@@ -52004,14 +57487,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
-                            setBorderColorSwizzle( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ ) VULKAN_HPP_NOEXCEPT
+      setBorderColorSwizzle( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ ) VULKAN_HPP_NOEXCEPT
     {
       borderColorSwizzle = borderColorSwizzle_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
-                            setBorderColorSwizzleFromImage( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ ) VULKAN_HPP_NOEXCEPT
+      setBorderColorSwizzleFromImage( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ ) VULKAN_HPP_NOEXCEPT
     {
       borderColorSwizzleFromImage = borderColorSwizzleFromImage_;
       return *this;
@@ -52115,33 +57598,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
-                            setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddress = bufferDeviceAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
-                            setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
-                            setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
     }
@@ -52195,6 +57678,7 @@
   {
     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
   };
+
   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
 
   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
@@ -52240,33 +57724,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
-                            setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddress = bufferDeviceAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
-                            setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
-                            setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
     }
@@ -52320,8 +57804,320 @@
   {
     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
   };
+
   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
 
+  struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+  {
+    using NativeType = VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_          = {},
+                                                                           VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ = {},
+                                                                           void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , clustercullingShader( clustercullingShader_ )
+      , multiviewClusterCullingShader( multiviewClusterCullingShader_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI &
+      setClustercullingShader( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ ) VULKAN_HPP_NOEXCEPT
+    {
+      clustercullingShader = clustercullingShader_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI &
+      setMultiviewClusterCullingShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ ) VULKAN_HPP_NOEXCEPT
+    {
+      multiviewClusterCullingShader = multiviewClusterCullingShader_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>( this );
+    }
+
+    operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, clustercullingShader, multiviewClusterCullingShader );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( clustercullingShader == rhs.clustercullingShader ) &&
+             ( multiviewClusterCullingShader == rhs.multiviewClusterCullingShader );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                         = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+    void *                              pNext                         = {};
+    VULKAN_HPP_NAMESPACE::Bool32        clustercullingShader          = {};
+    VULKAN_HPP_NAMESPACE::Bool32        multiviewClusterCullingShader = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
+  {
+    using Type = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
+  };
+
+  struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+  {
+    using NativeType = VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( std::array<uint32_t, 3> const &  maxWorkGroupCount_             = {},
+                                                                                std::array<uint32_t, 3> const &  maxWorkGroupSize_              = {},
+                                                                                uint32_t                         maxOutputClusterCount_         = {},
+                                                                                VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment_ = {},
+                                                                                void *                           pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxWorkGroupCount( maxWorkGroupCount_ )
+      , maxWorkGroupSize( maxWorkGroupSize_ )
+      , maxOutputClusterCount( maxOutputClusterCount_ )
+      , indirectBufferOffsetAlignment( indirectBufferOffsetAlignment_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14
+      PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceClusterCullingShaderPropertiesHUAWEI &
+      operator=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceClusterCullingShaderPropertiesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI *>( this );
+    }
+
+    operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
+               VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maxWorkGroupCount, maxWorkGroupSize, maxOutputClusterCount, indirectBufferOffsetAlignment );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxWorkGroupCount == rhs.maxWorkGroupCount ) &&
+             ( maxWorkGroupSize == rhs.maxWorkGroupSize ) && ( maxOutputClusterCount == rhs.maxOutputClusterCount ) &&
+             ( indirectBufferOffsetAlignment == rhs.indirectBufferOffsetAlignment );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType                         = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+    void *                                            pNext                         = {};
+    VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupCount             = {};
+    VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupSize              = {};
+    uint32_t                                          maxOutputClusterCount         = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                  indirectBufferOffsetAlignment = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI>
+  {
+    using Type = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
+  };
+
+  struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+  {
+    using NativeType = VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 clusterShadingRate_ = {},
+                                                                              void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , clusterShadingRate( clusterShadingRate_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI( PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI( VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI &
+      operator=( PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI &
+      setClusterShadingRate( VULKAN_HPP_NAMESPACE::Bool32 clusterShadingRate_ ) VULKAN_HPP_NOEXCEPT
+    {
+      clusterShadingRate = clusterShadingRate_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI *>( this );
+    }
+
+    operator VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, clusterShadingRate );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( clusterShadingRate == rhs.clusterShadingRate );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::ePhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        clusterShadingRate = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>
+  {
+    using Type = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
+  };
+
   struct PhysicalDeviceCoherentMemoryFeaturesAMD
   {
     using NativeType = VkPhysicalDeviceCoherentMemoryFeaturesAMD;
@@ -52361,19 +58157,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD &
-                            setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
+      setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
     {
       deviceCoherentMemory = deviceCoherentMemory_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
     }
@@ -52459,19 +58255,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT &
-                            setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT
+      setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       colorWriteEnable = colorWriteEnable_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
     }
@@ -52560,26 +58356,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
-                            setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
+      setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
     {
       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
-                            setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
+      setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
     {
       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
     }
@@ -52670,26 +58466,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
-                            setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
+      setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
     {
       conditionalRendering = conditionalRendering_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
-                            setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
+      setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
     {
       inheritedConditionalRendering = inheritedConditionalRendering_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
     }
@@ -52787,12 +58583,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
     }
@@ -52874,6 +58670,115 @@
     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
   };
 
+  struct PhysicalDeviceCooperativeMatrixFeaturesKHR
+  {
+    using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_                   = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
+                                                                     void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cooperativeMatrix( cooperativeMatrix_ )
+      , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCooperativeMatrixFeaturesKHR( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCooperativeMatrixFeaturesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR &
+      setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cooperativeMatrix = cooperativeMatrix_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR &
+      setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrix == rhs.cooperativeMatrix ) &&
+             ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                               = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
+    void *                              pNext                               = {};
+    VULKAN_HPP_NAMESPACE::Bool32        cooperativeMatrix                   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        cooperativeMatrixRobustBufferAccess = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR>
+  {
+    using Type = PhysicalDeviceCooperativeMatrixFeaturesKHR;
+  };
+
   struct PhysicalDeviceCooperativeMatrixFeaturesNV
   {
     using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesNV;
@@ -52915,26 +58820,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
-                            setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
+      setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
     {
       cooperativeMatrix = cooperativeMatrix_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
-                            setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
+      setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
     }
@@ -52983,6 +58888,89 @@
     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
   };
 
+  struct PhysicalDeviceCooperativeMatrixPropertiesKHR
+  {
+    using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
+                                                                       void *                                 pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCooperativeMatrixPropertiesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType                            = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
+    void *                                 pNext                            = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR>
+  {
+    using Type = PhysicalDeviceCooperativeMatrixPropertiesKHR;
+  };
+
   struct PhysicalDeviceCooperativeMatrixPropertiesNV
   {
     using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesNV;
@@ -53014,12 +59002,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
     }
@@ -53285,19 +59273,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV &
-                            setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
+      setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
     {
       cornerSampledImage = cornerSampledImage_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
     }
@@ -53384,19 +59372,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV &
-                            setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageReductionMode = coverageReductionMode_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
     }
@@ -53443,6 +59431,389 @@
     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
   };
 
+  struct PhysicalDeviceCubicClampFeaturesQCOM
+  {
+    using NativeType = VkPhysicalDeviceCubicClampFeaturesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cubicRangeClamp( cubicRangeClamp_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCubicClampFeaturesQCOM( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCubicClampFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCubicClampFeaturesQCOM & operator=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCubicClampFeaturesQCOM & operator=( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setCubicRangeClamp( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cubicRangeClamp = cubicRangeClamp_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceCubicClampFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCubicClampFeaturesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceCubicClampFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCubicClampFeaturesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cubicRangeClamp );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCubicClampFeaturesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicRangeClamp == rhs.cubicRangeClamp );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
+    void *                              pNext           = {};
+    VULKAN_HPP_NAMESPACE::Bool32        cubicRangeClamp = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCubicClampFeaturesQCOM>
+  {
+    using Type = PhysicalDeviceCubicClampFeaturesQCOM;
+  };
+
+  struct PhysicalDeviceCubicWeightsFeaturesQCOM
+  {
+    using NativeType = VkPhysicalDeviceCubicWeightsFeaturesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ = {},
+                                                                 void *                       pNext_                  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , selectableCubicWeights( selectableCubicWeights_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCubicWeightsFeaturesQCOM( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCubicWeightsFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM &
+      setSelectableCubicWeights( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ ) VULKAN_HPP_NOEXCEPT
+    {
+      selectableCubicWeights = selectableCubicWeights_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceCubicWeightsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCubicWeightsFeaturesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceCubicWeightsFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCubicWeightsFeaturesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, selectableCubicWeights );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCubicWeightsFeaturesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( selectableCubicWeights == rhs.selectableCubicWeights );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                  = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
+    void *                              pNext                  = {};
+    VULKAN_HPP_NAMESPACE::Bool32        selectableCubicWeights = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM>
+  {
+    using Type = PhysicalDeviceCubicWeightsFeaturesQCOM;
+  };
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceCudaKernelLaunchFeaturesNV
+  {
+    using NativeType = VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCudaKernelLaunchFeaturesNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cudaKernelLaunchFeatures_ = {},
+                                                                   void *                       pNext_                    = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cudaKernelLaunchFeatures( cudaKernelLaunchFeatures_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchFeaturesNV( PhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCudaKernelLaunchFeaturesNV( VkPhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCudaKernelLaunchFeaturesNV( *reinterpret_cast<PhysicalDeviceCudaKernelLaunchFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCudaKernelLaunchFeaturesNV & operator=( PhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCudaKernelLaunchFeaturesNV & operator=( VkPhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCudaKernelLaunchFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCudaKernelLaunchFeaturesNV &
+      setCudaKernelLaunchFeatures( VULKAN_HPP_NAMESPACE::Bool32 cudaKernelLaunchFeatures_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cudaKernelLaunchFeatures = cudaKernelLaunchFeatures_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceCudaKernelLaunchFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCudaKernelLaunchFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceCudaKernelLaunchFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCudaKernelLaunchFeaturesNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cudaKernelLaunchFeatures );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCudaKernelLaunchFeaturesNV const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cudaKernelLaunchFeatures == rhs.cudaKernelLaunchFeatures );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceCudaKernelLaunchFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                    = StructureType::ePhysicalDeviceCudaKernelLaunchFeaturesNV;
+    void *                              pNext                    = {};
+    VULKAN_HPP_NAMESPACE::Bool32        cudaKernelLaunchFeatures = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCudaKernelLaunchFeaturesNV>
+  {
+    using Type = PhysicalDeviceCudaKernelLaunchFeaturesNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceCudaKernelLaunchPropertiesNV
+  {
+    using NativeType = VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceCudaKernelLaunchPropertiesNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchPropertiesNV( uint32_t computeCapabilityMinor_ = {},
+                                                                     uint32_t computeCapabilityMajor_ = {},
+                                                                     void *   pNext_                  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , computeCapabilityMinor( computeCapabilityMinor_ )
+      , computeCapabilityMajor( computeCapabilityMajor_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchPropertiesNV( PhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceCudaKernelLaunchPropertiesNV( VkPhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceCudaKernelLaunchPropertiesNV( *reinterpret_cast<PhysicalDeviceCudaKernelLaunchPropertiesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceCudaKernelLaunchPropertiesNV & operator=( PhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceCudaKernelLaunchPropertiesNV & operator=( VkPhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceCudaKernelLaunchPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceCudaKernelLaunchPropertiesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceCudaKernelLaunchPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceCudaKernelLaunchPropertiesNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, computeCapabilityMinor, computeCapabilityMajor );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceCudaKernelLaunchPropertiesNV const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( computeCapabilityMinor == rhs.computeCapabilityMinor ) &&
+             ( computeCapabilityMajor == rhs.computeCapabilityMajor );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceCudaKernelLaunchPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                  = StructureType::ePhysicalDeviceCudaKernelLaunchPropertiesNV;
+    void *                              pNext                  = {};
+    uint32_t                            computeCapabilityMinor = {};
+    uint32_t                            computeCapabilityMajor = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceCudaKernelLaunchPropertiesNV>
+  {
+    using Type = PhysicalDeviceCudaKernelLaunchPropertiesNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct PhysicalDeviceCustomBorderColorFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceCustomBorderColorFeaturesEXT;
@@ -53484,26 +59855,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
-                            setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
+      setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
     {
       customBorderColors = customBorderColors_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
-                            setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
+      setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
     }
@@ -53583,12 +59954,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
     }
@@ -53677,19 +60048,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
-                            setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
+      setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
     {
       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
     }
@@ -53736,6 +60107,140 @@
     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
   };
 
+  struct PhysicalDeviceDepthBiasControlFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceDepthBiasControlFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_                                = {},
+                                                                    VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ = {},
+                                                                    VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_                             = {},
+                                                                    VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_                                  = {},
+                                                                    void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , depthBiasControl( depthBiasControl_ )
+      , leastRepresentableValueForceUnormRepresentation( leastRepresentableValueForceUnormRepresentation_ )
+      , floatRepresentation( floatRepresentation_ )
+      , depthBiasExact( depthBiasExact_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDepthBiasControlFeaturesEXT( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDepthBiasControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
+      setDepthBiasControl( VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasControl = depthBiasControl_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
+      setLeastRepresentableValueForceUnormRepresentation( VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      leastRepresentableValueForceUnormRepresentation = leastRepresentableValueForceUnormRepresentation_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
+      setFloatRepresentation( VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      floatRepresentation = floatRepresentation_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthBiasExact = depthBiasExact_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDepthBiasControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDepthBiasControlFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceDepthBiasControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, depthBiasControl, leastRepresentableValueForceUnormRepresentation, floatRepresentation, depthBiasExact );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDepthBiasControlFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasControl == rhs.depthBiasControl ) &&
+             ( leastRepresentableValueForceUnormRepresentation == rhs.leastRepresentableValueForceUnormRepresentation ) &&
+             ( floatRepresentation == rhs.floatRepresentation ) && ( depthBiasExact == rhs.depthBiasExact );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                           = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
+    void *                              pNext                                           = {};
+    VULKAN_HPP_NAMESPACE::Bool32        depthBiasControl                                = {};
+    VULKAN_HPP_NAMESPACE::Bool32        leastRepresentableValueForceUnormRepresentation = {};
+    VULKAN_HPP_NAMESPACE::Bool32        floatRepresentation                             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        depthBiasExact                                  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT>
+  {
+    using Type = PhysicalDeviceDepthBiasControlFeaturesEXT;
+  };
+
   struct PhysicalDeviceDepthClampZeroOneFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
@@ -53775,7 +60280,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT &
-                            setDepthClampZeroOne( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ ) VULKAN_HPP_NOEXCEPT
+      setDepthClampZeroOne( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ ) VULKAN_HPP_NOEXCEPT
     {
       depthClampZeroOne = depthClampZeroOne_;
       return *this;
@@ -53873,7 +60378,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT &
-                            setDepthClipControl( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ ) VULKAN_HPP_NOEXCEPT
+      setDepthClipControl( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ ) VULKAN_HPP_NOEXCEPT
     {
       depthClipControl = depthClipControl_;
       return *this;
@@ -53977,12 +60482,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
     }
@@ -54066,12 +60571,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties *>( this );
     }
@@ -54127,6 +60632,7 @@
   {
     using Type = PhysicalDeviceDepthStencilResolveProperties;
   };
+
   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
 
   struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
@@ -54260,28 +60766,28 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
-                            setDescriptorBuffer( VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBuffer( VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBuffer = descriptorBuffer_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
-                            setDescriptorBufferCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBufferCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBufferCaptureReplay = descriptorBufferCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
-                            setDescriptorBufferImageLayoutIgnored( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBufferImageLayoutIgnored( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBufferImageLayoutIgnored = descriptorBufferImageLayoutIgnored_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
-                            setDescriptorBufferPushDescriptors( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBufferPushDescriptors( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBufferPushDescriptors = descriptorBufferPushDescriptors_;
       return *this;
@@ -54824,7 +61330,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
-                            setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
       return *this;
@@ -54838,19 +61344,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
-                            setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
+      setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
     {
       runtimeDescriptorArray = runtimeDescriptorArray_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
     }
@@ -54977,6 +61483,7 @@
   {
     using Type = PhysicalDeviceDescriptorIndexingFeatures;
   };
+
   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
 
   struct PhysicalDeviceDescriptorIndexingProperties
@@ -55054,12 +61561,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties *>( this );
     }
@@ -55196,8 +61703,109 @@
   {
     using Type = PhysicalDeviceDescriptorIndexingProperties;
   };
+
   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
 
+  struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+  {
+    using NativeType = VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ = {},
+                                                                               void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , descriptorPoolOverallocation( descriptorPoolOverallocation_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( *reinterpret_cast<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDescriptorPoolOverallocationFeaturesNV &
+      operator=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & operator=( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV &
+      setDescriptorPoolOverallocation( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorPoolOverallocation = descriptorPoolOverallocation_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, descriptorPoolOverallocation );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorPoolOverallocation == rhs.descriptorPoolOverallocation );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                        = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+    void *                              pNext                        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        descriptorPoolOverallocation = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV>
+  {
+    using Type = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
+  };
+
   struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
   {
     using NativeType = VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
@@ -55239,7 +61847,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &
-                            setDescriptorSetHostMapping( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorSetHostMapping( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorSetHostMapping = descriptorSetHostMapping_;
       return *this;
@@ -55298,6 +61906,133 @@
     using Type = PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
   };
 
+  struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+  {
+    using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_              = {},
+                                                                                 VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_     = {},
+                                                                                 VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ = {},
+                                                                                 void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , deviceGeneratedCompute( deviceGeneratedCompute_ )
+      , deviceGeneratedComputePipelines( deviceGeneratedComputePipelines_ )
+      , deviceGeneratedComputeCaptureReplay( deviceGeneratedComputeCaptureReplay_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs )
+      VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
+      operator=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
+      operator=( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
+      setDeviceGeneratedCompute( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceGeneratedCompute = deviceGeneratedCompute_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
+      setDeviceGeneratedComputePipelines( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceGeneratedComputePipelines = deviceGeneratedComputePipelines_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
+      setDeviceGeneratedComputeCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceGeneratedComputeCaptureReplay = deviceGeneratedComputeCaptureReplay_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, deviceGeneratedCompute, deviceGeneratedComputePipelines, deviceGeneratedComputeCaptureReplay );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceGeneratedCompute == rhs.deviceGeneratedCompute ) &&
+             ( deviceGeneratedComputePipelines == rhs.deviceGeneratedComputePipelines ) &&
+             ( deviceGeneratedComputeCaptureReplay == rhs.deviceGeneratedComputeCaptureReplay );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                               = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+    void *                              pNext                               = {};
+    VULKAN_HPP_NAMESPACE::Bool32        deviceGeneratedCompute              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        deviceGeneratedComputePipelines     = {};
+    VULKAN_HPP_NAMESPACE::Bool32        deviceGeneratedComputeCaptureReplay = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>
+  {
+    using Type = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
+  };
+
   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
   {
     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
@@ -55338,19 +62073,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV &
-                            setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
+      setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
     {
       deviceGeneratedCommands = deviceGeneratedCommands_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
     }
@@ -55446,12 +62181,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
     }
@@ -55572,19 +62307,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT &
-                            setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
+      setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
     {
       deviceMemoryReport = deviceMemoryReport_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
     }
@@ -55670,19 +62405,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV &
-                            setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
+      setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
     {
       diagnosticsConfig = diagnosticsConfig_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
     }
@@ -55759,12 +62494,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
     }
@@ -55811,6 +62546,192 @@
     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceDisplacementMicromapFeaturesNV
+  {
+    using NativeType = VkPhysicalDeviceDisplacementMicromapFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ = {},
+                                                                       void *                       pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , displacementMicromap( displacementMicromap_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDisplacementMicromapFeaturesNV( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDisplacementMicromapFeaturesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV &
+      setDisplacementMicromap( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ ) VULKAN_HPP_NOEXCEPT
+    {
+      displacementMicromap = displacementMicromap_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDisplacementMicromapFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceDisplacementMicromapFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapFeaturesNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, displacementMicromap );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDisplacementMicromapFeaturesNV const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displacementMicromap == rhs.displacementMicromap );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
+    void *                              pNext                = {};
+    VULKAN_HPP_NAMESPACE::Bool32        displacementMicromap = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV>
+  {
+    using Type = PhysicalDeviceDisplacementMicromapFeaturesNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceDisplacementMicromapPropertiesNV
+  {
+    using NativeType = VkPhysicalDeviceDisplacementMicromapPropertiesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapPropertiesNV( uint32_t maxDisplacementMicromapSubdivisionLevel_ = {},
+                                                                         void *   pNext_                                   = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxDisplacementMicromapSubdivisionLevel( maxDisplacementMicromapSubdivisionLevel_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceDisplacementMicromapPropertiesNV( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDisplacementMicromapPropertiesNV( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDisplacementMicromapPropertiesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceDisplacementMicromapPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceDisplacementMicromapPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapPropertiesNV *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maxDisplacementMicromapSubdivisionLevel );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDisplacementMicromapPropertiesNV const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDisplacementMicromapSubdivisionLevel == rhs.maxDisplacementMicromapSubdivisionLevel );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                   = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
+    void *                              pNext                                   = {};
+    uint32_t                            maxDisplacementMicromapSubdivisionLevel = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV>
+  {
+    using Type = PhysicalDeviceDisplacementMicromapPropertiesNV;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct PhysicalDeviceDriverProperties
   {
     using NativeType = VkPhysicalDeviceDriverProperties;
@@ -55848,12 +62769,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDriverProperties *>( this );
     }
@@ -55908,6 +62829,7 @@
   {
     using Type = PhysicalDeviceDriverProperties;
   };
+
   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
 
   struct PhysicalDeviceDrmPropertiesEXT
@@ -55951,12 +62873,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceDrmPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDrmPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceDrmPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceDrmPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT *>( this );
     }
@@ -56113,8 +63035,111 @@
   {
     using Type = PhysicalDeviceDynamicRenderingFeatures;
   };
+
   using PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
 
+  struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ = {},
+                                                                                     void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , dynamicRenderingUnusedAttachments( dynamicRenderingUnusedAttachments_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs )
+      VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(
+          *reinterpret_cast<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
+      operator=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
+      operator=( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
+      setDynamicRenderingUnusedAttachments( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dynamicRenderingUnusedAttachments = dynamicRenderingUnusedAttachments_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, dynamicRenderingUnusedAttachments );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dynamicRenderingUnusedAttachments == rhs.dynamicRenderingUnusedAttachments );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                             = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+    void *                              pNext                             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        dynamicRenderingUnusedAttachments = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>
+  {
+    using Type = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
+  };
+
   struct PhysicalDeviceExclusiveScissorFeaturesNV
   {
     using NativeType = VkPhysicalDeviceExclusiveScissorFeaturesNV;
@@ -56160,12 +63185,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
     }
@@ -56256,14 +63281,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
-                            setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState2 = extendedDynamicState2_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
-                            setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState2LogicOp = extendedDynamicState2LogicOp_;
       return *this;
@@ -56277,12 +63302,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
     }
@@ -56445,14 +63470,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3DepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3DepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3DepthClampEnable = extendedDynamicState3DepthClampEnable_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3PolygonMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3PolygonMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3PolygonMode = extendedDynamicState3PolygonMode_;
       return *this;
@@ -56466,7 +63491,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3SampleMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3SampleMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3SampleMask = extendedDynamicState3SampleMask_;
       return *this;
@@ -56480,21 +63505,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3AlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3AlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3AlphaToOneEnable = extendedDynamicState3AlphaToOneEnable_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3LogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3LogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3LogicOpEnable = extendedDynamicState3LogicOpEnable_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3ColorBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3ColorBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3ColorBlendEnable = extendedDynamicState3ColorBlendEnable_;
       return *this;
@@ -56508,7 +63533,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3ColorWriteMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3ColorWriteMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3ColorWriteMask = extendedDynamicState3ColorWriteMask_;
       return *this;
@@ -56536,7 +63561,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3DepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3DepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3DepthClipEnable = extendedDynamicState3DepthClipEnable_;
       return *this;
@@ -56592,7 +63617,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
-                            setExtendedDynamicState3ViewportSwizzle( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState3ViewportSwizzle( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState3ViewportSwizzle = extendedDynamicState3ViewportSwizzle_;
       return *this;
@@ -56872,7 +63897,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3PropertiesEXT &
-                            setDynamicPrimitiveTopologyUnrestricted( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ ) VULKAN_HPP_NOEXCEPT
+      setDynamicPrimitiveTopologyUnrestricted( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ ) VULKAN_HPP_NOEXCEPT
     {
       dynamicPrimitiveTopologyUnrestricted = dynamicPrimitiveTopologyUnrestricted_;
       return *this;
@@ -56971,19 +63996,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT &
-                            setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
+      setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
     {
       extendedDynamicState = extendedDynamicState_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
     }
@@ -57030,6 +64055,202 @@
     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
   };
 
+  struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+  {
+    using NativeType = VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ = {},
+                                                                             void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , extendedSparseAddressSpace( extendedSparseAddressSpace_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &
+      operator=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &
+      setExtendedSparseAddressSpace( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ ) VULKAN_HPP_NOEXCEPT
+    {
+      extendedSparseAddressSpace = extendedSparseAddressSpace_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, extendedSparseAddressSpace );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedSparseAddressSpace == rhs.extendedSparseAddressSpace );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                      = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+    void *                              pNext                      = {};
+    VULKAN_HPP_NAMESPACE::Bool32        extendedSparseAddressSpace = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>
+  {
+    using Type = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
+  };
+
+  struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+  {
+    using NativeType = VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VULKAN_HPP_NAMESPACE::DeviceSize       extendedSparseAddressSpaceSize_ = {},
+                                                                               VULKAN_HPP_NAMESPACE::ImageUsageFlags  extendedSparseImageUsageFlags_  = {},
+                                                                               VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags_ = {},
+                                                                               void *                                 pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , extendedSparseAddressSpaceSize( extendedSparseAddressSpaceSize_ )
+      , extendedSparseImageUsageFlags( extendedSparseImageUsageFlags_ )
+      , extendedSparseBufferUsageFlags( extendedSparseBufferUsageFlags_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceExtendedSparseAddressSpacePropertiesNV &
+      operator=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *>( this );
+    }
+
+    operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
+               VULKAN_HPP_NAMESPACE::BufferUsageFlags const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, extendedSparseAddressSpaceSize, extendedSparseImageUsageFlags, extendedSparseBufferUsageFlags );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedSparseAddressSpaceSize == rhs.extendedSparseAddressSpaceSize ) &&
+             ( extendedSparseImageUsageFlags == rhs.extendedSparseImageUsageFlags ) && ( extendedSparseBufferUsageFlags == rhs.extendedSparseBufferUsageFlags );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType                          = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+    void *                                 pNext                          = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize       extendedSparseAddressSpaceSize = {};
+    VULKAN_HPP_NAMESPACE::ImageUsageFlags  extendedSparseImageUsageFlags  = {};
+    VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV>
+  {
+    using Type = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
+  };
+
   struct PhysicalDeviceExternalBufferInfo
   {
     using NativeType = VkPhysicalDeviceExternalBufferInfo;
@@ -57086,19 +64307,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo *>( this );
     }
@@ -57150,6 +64371,7 @@
   {
     using Type = PhysicalDeviceExternalBufferInfo;
   };
+
   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
 
   struct PhysicalDeviceExternalFenceInfo
@@ -57192,19 +64414,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo *>( this );
     }
@@ -57250,8 +64472,212 @@
   {
     using Type = PhysicalDeviceExternalFenceInfo;
   };
+
   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
 
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  struct PhysicalDeviceExternalFormatResolveFeaturesANDROID
+  {
+    using NativeType = VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {},
+                                                                             void *                       pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , externalFormatResolve( externalFormatResolve_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceExternalFormatResolveFeaturesANDROID( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceExternalFormatResolveFeaturesANDROID( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceExternalFormatResolveFeaturesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceExternalFormatResolveFeaturesANDROID &
+      operator=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID &
+      setExternalFormatResolve( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ ) VULKAN_HPP_NOEXCEPT
+    {
+      externalFormatResolve = externalFormatResolve_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( this );
+    }
+
+    operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, externalFormatResolve );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormatResolve == rhs.externalFormatResolve );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
+    void *                              pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Bool32        externalFormatResolve = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID>
+  {
+    using Type = PhysicalDeviceExternalFormatResolveFeaturesANDROID;
+  };
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+  struct PhysicalDeviceExternalFormatResolvePropertiesANDROID
+  {
+    using NativeType = VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID(
+      VULKAN_HPP_NAMESPACE::Bool32         nullColorAttachmentWithExternalFormatResolve_ = {},
+      VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
+      VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
+      void *                               pNext_                                        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ )
+      , externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ )
+      , externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceExternalFormatResolvePropertiesANDROID( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceExternalFormatResolvePropertiesANDROID( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceExternalFormatResolvePropertiesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceExternalFormatResolvePropertiesANDROID &
+      operator=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( this );
+    }
+
+    operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::ChromaLocation const &,
+               VULKAN_HPP_NAMESPACE::ChromaLocation const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+             ( nullColorAttachmentWithExternalFormatResolve == rhs.nullColorAttachmentWithExternalFormatResolve ) &&
+             ( externalFormatResolveChromaOffsetX == rhs.externalFormatResolveChromaOffsetX ) &&
+             ( externalFormatResolveChromaOffsetY == rhs.externalFormatResolveChromaOffsetY );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType  sType                                        = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
+    void *                               pNext                                        = {};
+    VULKAN_HPP_NAMESPACE::Bool32         nullColorAttachmentWithExternalFormatResolve = {};
+    VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+    VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID>
+  {
+    using Type = PhysicalDeviceExternalFormatResolvePropertiesANDROID;
+  };
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
   struct PhysicalDeviceExternalImageFormatInfo
   {
     using NativeType = VkPhysicalDeviceExternalImageFormatInfo;
@@ -57292,19 +64718,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo *>( this );
     }
@@ -57350,6 +64776,7 @@
   {
     using Type = PhysicalDeviceExternalImageFormatInfo;
   };
+
   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
 
   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
@@ -57384,12 +64811,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
     }
@@ -57475,7 +64902,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV &
-                            setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
+      setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
     {
       externalMemoryRDMA = externalMemoryRDMA_;
       return *this;
@@ -57534,6 +64961,108 @@
     using Type = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
   };
 
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+  {
+    using NativeType = VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ = {},
+                                                                              void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , screenBufferImport( screenBufferImport_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( *reinterpret_cast<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &
+      operator=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & operator=( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &
+      setScreenBufferImport( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ ) VULKAN_HPP_NOEXCEPT
+    {
+      screenBufferImport = screenBufferImport_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX *>( this );
+    }
+
+    operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, screenBufferImport );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( screenBufferImport == rhs.screenBufferImport );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        screenBufferImport = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>
+  {
+    using Type = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
+  };
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
   struct PhysicalDeviceExternalSemaphoreInfo
   {
     using NativeType = VkPhysicalDeviceExternalSemaphoreInfo;
@@ -57574,19 +65103,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( this );
     }
 
-    explicit operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo *>( this );
     }
@@ -57632,6 +65161,7 @@
   {
     using Type = PhysicalDeviceExternalSemaphoreInfo;
   };
+
   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
 
   struct PhysicalDeviceFaultFeaturesEXT
@@ -57681,7 +65211,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT &
-                            setDeviceFaultVendorBinary( VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ ) VULKAN_HPP_NOEXCEPT
+      setDeviceFaultVendorBinary( VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ ) VULKAN_HPP_NOEXCEPT
     {
       deviceFaultVendorBinary = deviceFaultVendorBinary_;
       return *this;
@@ -57786,12 +65316,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFeatures2 *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFeatures2 *>( this );
     }
@@ -57837,6 +65367,7 @@
   {
     using Type = PhysicalDeviceFeatures2;
   };
+
   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
 
   struct PhysicalDeviceFloatControlsProperties
@@ -57903,12 +65434,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties *>( this );
     }
@@ -58017,6 +65548,7 @@
   {
     using Type = PhysicalDeviceFloatControlsProperties;
   };
+
   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
 
   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
@@ -58058,19 +65590,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT &
-                            setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
     }
@@ -58155,12 +65687,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
     }
@@ -58260,33 +65792,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
-                            setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityMap = fragmentDensityMap_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
-                            setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
-                            setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
     }
@@ -58382,7 +65914,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &
-                            setFragmentDensityMapOffset( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityMapOffset( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityMapOffset = fragmentDensityMapOffset_;
       return *this;
@@ -58562,12 +66094,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
     }
@@ -58662,7 +66194,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR &
-                            setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentShaderBarycentric = fragmentShaderBarycentric_;
       return *this;
@@ -58720,6 +66252,7 @@
   {
     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
   };
+
   using PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
 
   struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
@@ -58853,33 +66386,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
-                            setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
-                            setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
-                            setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
     }
@@ -58978,33 +66511,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
-                            setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentShadingRateEnums = fragmentShadingRateEnums_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
-                            setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
+      setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
     {
       supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
-                            setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
+      setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
     {
       noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
     }
@@ -59108,12 +66641,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
     }
@@ -59203,33 +66736,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
-                            setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
-                            setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
+      setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
     {
       primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
-                            setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
+      setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
     {
       attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
     }
@@ -59316,12 +66849,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( this );
     }
@@ -59435,12 +66968,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
     }
@@ -59555,6 +67088,102 @@
     using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
   };
 
+  struct PhysicalDeviceFrameBoundaryFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceFrameBoundaryFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , frameBoundary( frameBoundary_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceFrameBoundaryFeaturesEXT( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceFrameBoundaryFeaturesEXT( *reinterpret_cast<PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setFrameBoundary( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ ) VULKAN_HPP_NOEXCEPT
+    {
+      frameBoundary = frameBoundary_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceFrameBoundaryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceFrameBoundaryFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceFrameBoundaryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceFrameBoundaryFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, frameBoundary );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceFrameBoundaryFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( frameBoundary == rhs.frameBoundary );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
+    void *                              pNext         = {};
+    VULKAN_HPP_NAMESPACE::Bool32        frameBoundary = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT>
+  {
+    using Type = PhysicalDeviceFrameBoundaryFeaturesEXT;
+  };
+
   struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR
   {
     using NativeType = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
@@ -59594,7 +67223,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR &
-                            setGlobalPriorityQuery( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ ) VULKAN_HPP_NOEXCEPT
+      setGlobalPriorityQuery( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ ) VULKAN_HPP_NOEXCEPT
     {
       globalPriorityQuery = globalPriorityQuery_;
       return *this;
@@ -59652,6 +67281,7 @@
   {
     using Type = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
   };
+
   using PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
 
   struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
@@ -59694,7 +67324,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &
-                            setGraphicsPipelineLibrary( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ ) VULKAN_HPP_NOEXCEPT
+      setGraphicsPipelineLibrary( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ ) VULKAN_HPP_NOEXCEPT
     {
       graphicsPipelineLibrary = graphicsPipelineLibrary_;
       return *this;
@@ -59797,7 +67427,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &
-                            setGraphicsPipelineLibraryFastLinking( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ ) VULKAN_HPP_NOEXCEPT
+      setGraphicsPipelineLibraryFastLinking( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ ) VULKAN_HPP_NOEXCEPT
     {
       graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking_;
       return *this;
@@ -59864,7 +67494,6 @@
   {
     using Type = PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
   };
-  using PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
 
   struct PhysicalDeviceGroupProperties
   {
@@ -59902,12 +67531,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceGroupProperties *>( this );
     }
@@ -59960,8 +67589,298 @@
   {
     using Type = PhysicalDeviceGroupProperties;
   };
+
   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
 
+  struct PhysicalDeviceHostImageCopyFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceHostImageCopyFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , hostImageCopy( hostImageCopy_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceHostImageCopyFeaturesEXT( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceHostImageCopyFeaturesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceHostImageCopyFeaturesEXT & operator=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceHostImageCopyFeaturesEXT & operator=( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setHostImageCopy( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ ) VULKAN_HPP_NOEXCEPT
+    {
+      hostImageCopy = hostImageCopy_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceHostImageCopyFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceHostImageCopyFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, hostImageCopy );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceHostImageCopyFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hostImageCopy == rhs.hostImageCopy );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
+    void *                              pNext         = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hostImageCopy = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT>
+  {
+    using Type = PhysicalDeviceHostImageCopyFeaturesEXT;
+  };
+
+  struct PhysicalDeviceHostImageCopyPropertiesEXT
+  {
+    using NativeType = VkPhysicalDeviceHostImageCopyPropertiesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT( uint32_t                                  copySrcLayoutCount_              = {},
+                                                                      VULKAN_HPP_NAMESPACE::ImageLayout *       pCopySrcLayouts_                 = {},
+                                                                      uint32_t                                  copyDstLayoutCount_              = {},
+                                                                      VULKAN_HPP_NAMESPACE::ImageLayout *       pCopyDstLayouts_                 = {},
+                                                                      std::array<uint8_t, VK_UUID_SIZE> const & optimalTilingLayoutUUID_         = {},
+                                                                      VULKAN_HPP_NAMESPACE::Bool32              identicalMemoryTypeRequirements_ = {},
+                                                                      void *                                    pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , copySrcLayoutCount( copySrcLayoutCount_ )
+      , pCopySrcLayouts( pCopySrcLayouts_ )
+      , copyDstLayoutCount( copyDstLayoutCount_ )
+      , pCopyDstLayouts( pCopyDstLayouts_ )
+      , optimalTilingLayoutUUID( optimalTilingLayoutUUID_ )
+      , identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceHostImageCopyPropertiesEXT( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceHostImageCopyPropertiesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PhysicalDeviceHostImageCopyPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_,
+                                              VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ = {},
+                                              std::array<uint8_t, VK_UUID_SIZE> const & optimalTilingLayoutUUID_                                       = {},
+                                              VULKAN_HPP_NAMESPACE::Bool32              identicalMemoryTypeRequirements_                               = {},
+                                              void *                                    pNext_ = nullptr )
+      : pNext( pNext_ )
+      , copySrcLayoutCount( static_cast<uint32_t>( copySrcLayouts_.size() ) )
+      , pCopySrcLayouts( copySrcLayouts_.data() )
+      , copyDstLayoutCount( static_cast<uint32_t>( copyDstLayouts_.size() ) )
+      , pCopyDstLayouts( copyDstLayouts_.data() )
+      , optimalTilingLayoutUUID( optimalTilingLayoutUUID_ )
+      , identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    PhysicalDeviceHostImageCopyPropertiesEXT & operator=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceHostImageCopyPropertiesEXT & operator=( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopySrcLayoutCount( uint32_t copySrcLayoutCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      copySrcLayoutCount = copySrcLayoutCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
+      setPCopySrcLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pCopySrcLayouts = pCopySrcLayouts_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PhysicalDeviceHostImageCopyPropertiesEXT &
+      setCopySrcLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      copySrcLayoutCount = static_cast<uint32_t>( copySrcLayouts_.size() );
+      pCopySrcLayouts    = copySrcLayouts_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopyDstLayoutCount( uint32_t copyDstLayoutCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      copyDstLayoutCount = copyDstLayoutCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
+      setPCopyDstLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pCopyDstLayouts = pCopyDstLayouts_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PhysicalDeviceHostImageCopyPropertiesEXT &
+      setCopyDstLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      copyDstLayoutCount = static_cast<uint32_t>( copyDstLayouts_.size() );
+      pCopyDstLayouts    = copyDstLayouts_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
+      setOptimalTilingLayoutUUID( std::array<uint8_t, VK_UUID_SIZE> optimalTilingLayoutUUID_ ) VULKAN_HPP_NOEXCEPT
+    {
+      optimalTilingLayoutUUID = optimalTilingLayoutUUID_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
+      setIdenticalMemoryTypeRequirements( VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ ) VULKAN_HPP_NOEXCEPT
+    {
+      identicalMemoryTypeRequirements = identicalMemoryTypeRequirements_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceHostImageCopyPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceHostImageCopyPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout * const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::ImageLayout * const &,
+               VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie(
+        sType, pNext, copySrcLayoutCount, pCopySrcLayouts, copyDstLayoutCount, pCopyDstLayouts, optimalTilingLayoutUUID, identicalMemoryTypeRequirements );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceHostImageCopyPropertiesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( copySrcLayoutCount == rhs.copySrcLayoutCount ) &&
+             ( pCopySrcLayouts == rhs.pCopySrcLayouts ) && ( copyDstLayoutCount == rhs.copyDstLayoutCount ) && ( pCopyDstLayouts == rhs.pCopyDstLayouts ) &&
+             ( optimalTilingLayoutUUID == rhs.optimalTilingLayoutUUID ) && ( identicalMemoryTypeRequirements == rhs.identicalMemoryTypeRequirements );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                         sType                           = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
+    void *                                                      pNext                           = {};
+    uint32_t                                                    copySrcLayoutCount              = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout *                         pCopySrcLayouts                 = {};
+    uint32_t                                                    copyDstLayoutCount              = {};
+    VULKAN_HPP_NAMESPACE::ImageLayout *                         pCopyDstLayouts                 = {};
+    VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> optimalTilingLayoutUUID         = {};
+    VULKAN_HPP_NAMESPACE::Bool32                                identicalMemoryTypeRequirements = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT>
+  {
+    using Type = PhysicalDeviceHostImageCopyPropertiesEXT;
+  };
+
   struct PhysicalDeviceHostQueryResetFeatures
   {
     using NativeType = VkPhysicalDeviceHostQueryResetFeatures;
@@ -60006,12 +67925,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures *>( this );
     }
@@ -60057,6 +67976,7 @@
   {
     using Type = PhysicalDeviceHostQueryResetFeatures;
   };
+
   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
 
   struct PhysicalDeviceIDProperties
@@ -60098,12 +68018,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceIDProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceIDProperties *>( this );
     }
@@ -60160,6 +68080,7 @@
   {
     using Type = PhysicalDeviceIDProperties;
   };
+
   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
 
   struct PhysicalDeviceImage2DViewOf3DFeaturesEXT
@@ -60209,7 +68130,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT &
-                            setSampler2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
+      setSampler2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
     {
       sampler2DViewOf3D = sampler2DViewOf3D_;
       return *this;
@@ -60309,7 +68230,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT &
-                            setImageCompressionControl( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ ) VULKAN_HPP_NOEXCEPT
+      setImageCompressionControl( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ ) VULKAN_HPP_NOEXCEPT
     {
       imageCompressionControl = imageCompressionControl_;
       return *this;
@@ -60411,7 +68332,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
-                            setImageCompressionControlSwapchain( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ ) VULKAN_HPP_NOEXCEPT
+      setImageCompressionControlSwapchain( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ ) VULKAN_HPP_NOEXCEPT
     {
       imageCompressionControlSwapchain = imageCompressionControlSwapchain_;
       return *this;
@@ -60564,12 +68485,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
     }
@@ -60702,12 +68623,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( this );
     }
 
-    explicit operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2 *>( this );
     }
@@ -60764,8 +68685,190 @@
   {
     using Type = PhysicalDeviceImageFormatInfo2;
   };
+
   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
 
+  struct PhysicalDeviceImageProcessing2FeaturesQCOM
+  {
+    using NativeType = VkPhysicalDeviceImageProcessing2FeaturesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ = {},
+                                                                     void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , textureBlockMatch2( textureBlockMatch2_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceImageProcessing2FeaturesQCOM( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceImageProcessing2FeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM &
+      setTextureBlockMatch2( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ ) VULKAN_HPP_NOEXCEPT
+    {
+      textureBlockMatch2 = textureBlockMatch2_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceImageProcessing2FeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2FeaturesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceImageProcessing2FeaturesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceImageProcessing2FeaturesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, textureBlockMatch2 );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceImageProcessing2FeaturesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureBlockMatch2 == rhs.textureBlockMatch2 );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        textureBlockMatch2 = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM>
+  {
+    using Type = PhysicalDeviceImageProcessing2FeaturesQCOM;
+  };
+
+  struct PhysicalDeviceImageProcessing2PropertiesQCOM
+  {
+    using NativeType = VkPhysicalDeviceImageProcessing2PropertiesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow_ = {},
+                                                                       void *                         pNext_               = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxBlockMatchWindow( maxBlockMatchWindow_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceImageProcessing2PropertiesQCOM( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceImageProcessing2PropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceImageProcessing2PropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2PropertiesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceImageProcessing2PropertiesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceImageProcessing2PropertiesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maxBlockMatchWindow );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceImageProcessing2PropertiesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxBlockMatchWindow == rhs.maxBlockMatchWindow );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType               = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
+    void *                              pNext               = {};
+    VULKAN_HPP_NAMESPACE::Extent2D      maxBlockMatchWindow = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM>
+  {
+    using Type = PhysicalDeviceImageProcessing2PropertiesQCOM;
+  };
+
   struct PhysicalDeviceImageProcessingFeaturesQCOM
   {
     using NativeType = VkPhysicalDeviceImageProcessingFeaturesQCOM;
@@ -60809,22 +68912,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
-                            setTextureSampleWeighted( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ ) VULKAN_HPP_NOEXCEPT
+      setTextureSampleWeighted( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ ) VULKAN_HPP_NOEXCEPT
     {
       textureSampleWeighted = textureSampleWeighted_;
       return *this;
     }
-#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
-                            setTextureBoxFilter( VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ ) VULKAN_HPP_NOEXCEPT
+      setTextureBoxFilter( VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ ) VULKAN_HPP_NOEXCEPT
     {
       textureBoxFilter = textureBoxFilter_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
-                            setTextureBlockMatch( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ ) VULKAN_HPP_NOEXCEPT
+      setTextureBlockMatch( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ ) VULKAN_HPP_NOEXCEPT
     {
       textureBlockMatch = textureBlockMatch_;
       return *this;
@@ -60857,18 +68959,6 @@
     }
 #endif
 
-#if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, robustImageAccess );
-    }
-#endif
-
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( PhysicalDeviceImageProcessingFeaturesQCOM const & ) const = default;
 #else
@@ -60901,7 +68991,6 @@
   {
     using Type = PhysicalDeviceImageProcessingFeaturesQCOM;
   };
-  using PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
 
   struct PhysicalDeviceImageProcessingPropertiesQCOM
   {
@@ -61098,8 +69187,107 @@
   {
     using Type = PhysicalDeviceImageRobustnessFeatures;
   };
+
   using PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
 
+  struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ = {},
+                                                                       void *                       pNext_               = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , imageSlicedViewOf3D( imageSlicedViewOf3D_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT &
+      setImageSlicedViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ ) VULKAN_HPP_NOEXCEPT
+    {
+      imageSlicedViewOf3D = imageSlicedViewOf3D_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, imageSlicedViewOf3D );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSlicedViewOf3D == rhs.imageSlicedViewOf3D );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType               = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+    void *                              pNext               = {};
+    VULKAN_HPP_NAMESPACE::Bool32        imageSlicedViewOf3D = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT>
+  {
+    using Type = PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
+  };
+
   struct PhysicalDeviceImageViewImageFormatInfoEXT
   {
     using NativeType = VkPhysicalDeviceImageViewImageFormatInfoEXT;
@@ -61140,19 +69328,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT &
-                            setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
+      setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
     {
       imageViewType = imageViewType_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
     }
@@ -61334,19 +69522,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures &
-                            setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
+      setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       imagelessFramebuffer = imagelessFramebuffer_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
     }
@@ -61392,6 +69580,7 @@
   {
     using Type = PhysicalDeviceImagelessFramebufferFeatures;
   };
+
   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
 
   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
@@ -61439,12 +69628,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
     }
@@ -61531,19 +69720,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV &
-                            setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
+      setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
     {
       inheritedViewportScissor2D = inheritedViewportScissor2D_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
     }
@@ -61631,7 +69820,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures &
-                            setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
+      setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
     {
       inlineUniformBlock = inlineUniformBlock_;
       return *this;
@@ -61698,6 +69887,7 @@
   {
     using Type = PhysicalDeviceInlineUniformBlockFeatures;
   };
+
   using PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
 
   struct PhysicalDeviceInlineUniformBlockProperties
@@ -61810,6 +70000,7 @@
   {
     using Type = PhysicalDeviceInlineUniformBlockProperties;
   };
+
   using PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
 
   struct PhysicalDeviceInvocationMaskFeaturesHUAWEI
@@ -61909,6 +70100,90 @@
     using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
   };
 
+  struct PhysicalDeviceLayeredDriverPropertiesMSFT
+  {
+    using NativeType = VkPhysicalDeviceLayeredDriverPropertiesMSFT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT(
+      VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI_ = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone,
+      void *                                               pNext_         = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , underlyingAPI( underlyingAPI_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceLayeredDriverPropertiesMSFT( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceLayeredDriverPropertiesMSFT( *reinterpret_cast<PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceLayeredDriverPropertiesMSFT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceLayeredDriverPropertiesMSFT *>( this );
+    }
+
+    operator VkPhysicalDeviceLayeredDriverPropertiesMSFT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceLayeredDriverPropertiesMSFT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, underlyingAPI );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceLayeredDriverPropertiesMSFT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( underlyingAPI == rhs.underlyingAPI );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                  sType         = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
+    void *                                               pNext         = {};
+    VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT>
+  {
+    using Type = PhysicalDeviceLayeredDriverPropertiesMSFT;
+  };
+
   struct PhysicalDeviceLegacyDitheringFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceLegacyDitheringFeaturesEXT;
@@ -62242,12 +70517,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceLimits *>( this );
     }
 
-    explicit operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceLimits *>( this );
     }
@@ -62711,7 +70986,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
-                            setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
+      setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
     {
       rectangularLines = rectangularLines_;
       return *this;
@@ -62730,33 +71005,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
-                            setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
+      setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
     {
       stippledRectangularLines = stippledRectangularLines_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
-                            setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
+      setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
     {
       stippledBresenhamLines = stippledBresenhamLines_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
-                            setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
+      setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
     {
       stippledSmoothLines = stippledSmoothLines_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
     }
@@ -62847,12 +71122,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
     }
@@ -62939,7 +71214,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV &
-                            setLinearColorAttachment( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ ) VULKAN_HPP_NOEXCEPT
+      setLinearColorAttachment( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ ) VULKAN_HPP_NOEXCEPT
     {
       linearColorAttachment = linearColorAttachment_;
       return *this;
@@ -63031,12 +71306,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties *>( this );
     }
@@ -63084,6 +71359,7 @@
   {
     using Type = PhysicalDeviceMaintenance3Properties;
   };
+
   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
 
   struct PhysicalDeviceMaintenance4Features
@@ -63181,6 +71457,7 @@
   {
     using Type = PhysicalDeviceMaintenance4Features;
   };
+
   using PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
 
   struct PhysicalDeviceMaintenance4Properties
@@ -63265,8 +71542,413 @@
   {
     using Type = PhysicalDeviceMaintenance4Properties;
   };
+
   using PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
 
+  struct PhysicalDeviceMaintenance5FeaturesKHR
+  {
+    using NativeType = VkPhysicalDeviceMaintenance5FeaturesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maintenance5( maintenance5_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceMaintenance5FeaturesKHR( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceMaintenance5FeaturesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceMaintenance5FeaturesKHR & operator=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceMaintenance5FeaturesKHR & operator=( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setMaintenance5( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maintenance5 = maintenance5_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceMaintenance5FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceMaintenance5FeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maintenance5 );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceMaintenance5FeaturesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maintenance5 == rhs.maintenance5 );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
+    void *                              pNext        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        maintenance5 = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5FeaturesKHR>
+  {
+    using Type = PhysicalDeviceMaintenance5FeaturesKHR;
+  };
+
+  struct PhysicalDeviceMaintenance5PropertiesKHR
+  {
+    using NativeType = VkPhysicalDeviceMaintenance5PropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentMultisampleCoverageAfterSampleCounting_ = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentSampleMaskTestBeforeSampleCounting_     = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 depthStencilSwizzleOneSupport_                       = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 polygonModePointSize_                                = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram_       = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram_                  = {},
+                                                                  void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , earlyFragmentMultisampleCoverageAfterSampleCounting( earlyFragmentMultisampleCoverageAfterSampleCounting_ )
+      , earlyFragmentSampleMaskTestBeforeSampleCounting( earlyFragmentSampleMaskTestBeforeSampleCounting_ )
+      , depthStencilSwizzleOneSupport( depthStencilSwizzleOneSupport_ )
+      , polygonModePointSize( polygonModePointSize_ )
+      , nonStrictSinglePixelWideLinesUseParallelogram( nonStrictSinglePixelWideLinesUseParallelogram_ )
+      , nonStrictWideLinesUseParallelogram( nonStrictWideLinesUseParallelogram_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceMaintenance5PropertiesKHR( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceMaintenance5PropertiesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceMaintenance5PropertiesKHR & operator=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceMaintenance5PropertiesKHR & operator=( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceMaintenance5PropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceMaintenance5PropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       earlyFragmentMultisampleCoverageAfterSampleCounting,
+                       earlyFragmentSampleMaskTestBeforeSampleCounting,
+                       depthStencilSwizzleOneSupport,
+                       polygonModePointSize,
+                       nonStrictSinglePixelWideLinesUseParallelogram,
+                       nonStrictWideLinesUseParallelogram );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceMaintenance5PropertiesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+             ( earlyFragmentMultisampleCoverageAfterSampleCounting == rhs.earlyFragmentMultisampleCoverageAfterSampleCounting ) &&
+             ( earlyFragmentSampleMaskTestBeforeSampleCounting == rhs.earlyFragmentSampleMaskTestBeforeSampleCounting ) &&
+             ( depthStencilSwizzleOneSupport == rhs.depthStencilSwizzleOneSupport ) && ( polygonModePointSize == rhs.polygonModePointSize ) &&
+             ( nonStrictSinglePixelWideLinesUseParallelogram == rhs.nonStrictSinglePixelWideLinesUseParallelogram ) &&
+             ( nonStrictWideLinesUseParallelogram == rhs.nonStrictWideLinesUseParallelogram );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                               = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
+    void *                              pNext                                               = {};
+    VULKAN_HPP_NAMESPACE::Bool32        earlyFragmentMultisampleCoverageAfterSampleCounting = {};
+    VULKAN_HPP_NAMESPACE::Bool32        earlyFragmentSampleMaskTestBeforeSampleCounting     = {};
+    VULKAN_HPP_NAMESPACE::Bool32        depthStencilSwizzleOneSupport                       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        polygonModePointSize                                = {};
+    VULKAN_HPP_NAMESPACE::Bool32        nonStrictSinglePixelWideLinesUseParallelogram       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        nonStrictWideLinesUseParallelogram                  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5PropertiesKHR>
+  {
+    using Type = PhysicalDeviceMaintenance5PropertiesKHR;
+  };
+
+  struct PhysicalDeviceMaintenance6FeaturesKHR
+  {
+    using NativeType = VkPhysicalDeviceMaintenance6FeaturesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceMaintenance6FeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance6FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 maintenance6_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maintenance6( maintenance6_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance6FeaturesKHR( PhysicalDeviceMaintenance6FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceMaintenance6FeaturesKHR( VkPhysicalDeviceMaintenance6FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceMaintenance6FeaturesKHR( *reinterpret_cast<PhysicalDeviceMaintenance6FeaturesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceMaintenance6FeaturesKHR & operator=( PhysicalDeviceMaintenance6FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceMaintenance6FeaturesKHR & operator=( VkPhysicalDeviceMaintenance6FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance6FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance6FeaturesKHR & setMaintenance6( VULKAN_HPP_NAMESPACE::Bool32 maintenance6_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maintenance6 = maintenance6_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceMaintenance6FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceMaintenance6FeaturesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceMaintenance6FeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceMaintenance6FeaturesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maintenance6 );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceMaintenance6FeaturesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceMaintenance6FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maintenance6 == rhs.maintenance6 );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceMaintenance6FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::ePhysicalDeviceMaintenance6FeaturesKHR;
+    void *                              pNext        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        maintenance6 = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance6FeaturesKHR>
+  {
+    using Type = PhysicalDeviceMaintenance6FeaturesKHR;
+  };
+
+  struct PhysicalDeviceMaintenance6PropertiesKHR
+  {
+    using NativeType = VkPhysicalDeviceMaintenance6PropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceMaintenance6PropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance6PropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 blockTexelViewCompatibleMultipleLayers_ = {},
+                                                                  uint32_t                     maxCombinedImageSamplerDescriptorCount_ = {},
+                                                                  VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateClampCombinerInputs_ = {},
+                                                                  void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , blockTexelViewCompatibleMultipleLayers( blockTexelViewCompatibleMultipleLayers_ )
+      , maxCombinedImageSamplerDescriptorCount( maxCombinedImageSamplerDescriptorCount_ )
+      , fragmentShadingRateClampCombinerInputs( fragmentShadingRateClampCombinerInputs_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance6PropertiesKHR( PhysicalDeviceMaintenance6PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceMaintenance6PropertiesKHR( VkPhysicalDeviceMaintenance6PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceMaintenance6PropertiesKHR( *reinterpret_cast<PhysicalDeviceMaintenance6PropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceMaintenance6PropertiesKHR & operator=( PhysicalDeviceMaintenance6PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceMaintenance6PropertiesKHR & operator=( VkPhysicalDeviceMaintenance6PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceMaintenance6PropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceMaintenance6PropertiesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceMaintenance6PropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceMaintenance6PropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, blockTexelViewCompatibleMultipleLayers, maxCombinedImageSamplerDescriptorCount, fragmentShadingRateClampCombinerInputs );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceMaintenance6PropertiesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceMaintenance6PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( blockTexelViewCompatibleMultipleLayers == rhs.blockTexelViewCompatibleMultipleLayers ) &&
+             ( maxCombinedImageSamplerDescriptorCount == rhs.maxCombinedImageSamplerDescriptorCount ) &&
+             ( fragmentShadingRateClampCombinerInputs == rhs.fragmentShadingRateClampCombinerInputs );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceMaintenance6PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                  = StructureType::ePhysicalDeviceMaintenance6PropertiesKHR;
+    void *                              pNext                                  = {};
+    VULKAN_HPP_NAMESPACE::Bool32        blockTexelViewCompatibleMultipleLayers = {};
+    uint32_t                            maxCombinedImageSamplerDescriptorCount = {};
+    VULKAN_HPP_NAMESPACE::Bool32        fragmentShadingRateClampCombinerInputs = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance6PropertiesKHR>
+  {
+    using Type = PhysicalDeviceMaintenance6PropertiesKHR;
+  };
+
   struct PhysicalDeviceMemoryBudgetPropertiesEXT
   {
     using NativeType = VkPhysicalDeviceMemoryBudgetPropertiesEXT;
@@ -63300,12 +71982,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
     }
@@ -63395,7 +72077,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryDecompressionFeaturesNV &
-                            setMemoryDecompression( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ ) VULKAN_HPP_NOEXCEPT
+      setMemoryDecompression( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ ) VULKAN_HPP_NOEXCEPT
     {
       memoryDecompression = memoryDecompression_;
       return *this;
@@ -63587,12 +72269,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
     }
@@ -63672,12 +72354,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( this );
     }
@@ -63754,12 +72436,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2 *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( this );
     }
@@ -63805,6 +72487,7 @@
   {
     using Type = PhysicalDeviceMemoryProperties2;
   };
+
   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
 
   struct PhysicalDeviceMeshShaderFeaturesEXT
@@ -63864,10 +72547,9 @@
       meshShader = meshShader_;
       return *this;
     }
-#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT &
-                            setMultiviewMeshShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewMeshShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewMeshShader = multiviewMeshShader_;
       return *this;
@@ -64009,7 +72691,7 @@
       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
     }
@@ -64350,12 +73032,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
     }
@@ -64493,12 +73175,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMultiDrawFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiDrawFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
     }
@@ -64575,12 +73257,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMultiDrawPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiDrawPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMultiDrawPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiDrawPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
     }
@@ -64670,7 +73352,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
-                            setMultisampledRenderToSingleSampled( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ ) VULKAN_HPP_NOEXCEPT
+      setMultisampledRenderToSingleSampled( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ ) VULKAN_HPP_NOEXCEPT
     {
       multisampledRenderToSingleSampled = multisampledRenderToSingleSampled_;
       return *this;
@@ -64778,26 +73460,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
-                            setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewGeometryShader = multiviewGeometryShader_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
-                            setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewTessellationShader = multiviewTessellationShader_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures *>( this );
     }
@@ -64850,6 +73532,7 @@
   {
     using Type = PhysicalDeviceMultiviewFeatures;
   };
+
   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
 
   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
@@ -64885,12 +73568,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
     }
@@ -64937,6 +73620,106 @@
     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
   };
 
+  struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
+  {
+    using NativeType = VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ = {},
+                                                                                void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , multiviewPerViewRenderAreas( multiviewPerViewRenderAreas_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( *reinterpret_cast<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &
+      operator=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & operator=( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &
+      setMultiviewPerViewRenderAreas( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
+    {
+      multiviewPerViewRenderAreas = multiviewPerViewRenderAreas_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, multiviewPerViewRenderAreas );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiviewPerViewRenderAreas == rhs.multiviewPerViewRenderAreas );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                       = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+    void *                              pNext                       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        multiviewPerViewRenderAreas = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>
+  {
+    using Type = PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
+  };
+
   struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
   {
     using NativeType = VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
@@ -64978,7 +73761,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM &
-                            setMultiviewPerViewViewports( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewPerViewViewports( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewPerViewViewports = multiviewPerViewViewports_;
       return *this;
@@ -65070,12 +73853,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties *>( this );
     }
@@ -65123,6 +73906,7 @@
   {
     using Type = PhysicalDeviceMultiviewProperties;
   };
+
   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
 
   struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT
@@ -65165,7 +73949,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesEXT &
-                            setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
+      setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
     {
       mutableDescriptorType = mutableDescriptorType_;
       return *this;
@@ -65223,8 +74007,232 @@
   {
     using Type = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
   };
+
   using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
 
+  struct PhysicalDeviceNestedCommandBufferFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_                = {},
+                                                                       VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_       = {},
+                                                                       VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ = {},
+                                                                       void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , nestedCommandBuffer( nestedCommandBuffer_ )
+      , nestedCommandBufferRendering( nestedCommandBufferRendering_ )
+      , nestedCommandBufferSimultaneousUse( nestedCommandBufferSimultaneousUse_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceNestedCommandBufferFeaturesEXT( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceNestedCommandBufferFeaturesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
+      setNestedCommandBuffer( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      nestedCommandBuffer = nestedCommandBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
+      setNestedCommandBufferRendering( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ ) VULKAN_HPP_NOEXCEPT
+    {
+      nestedCommandBufferRendering = nestedCommandBufferRendering_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
+      setNestedCommandBufferSimultaneousUse( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ ) VULKAN_HPP_NOEXCEPT
+    {
+      nestedCommandBufferSimultaneousUse = nestedCommandBufferSimultaneousUse_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, nestedCommandBuffer, nestedCommandBufferRendering, nestedCommandBufferSimultaneousUse );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceNestedCommandBufferFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( nestedCommandBuffer == rhs.nestedCommandBuffer ) &&
+             ( nestedCommandBufferRendering == rhs.nestedCommandBufferRendering ) &&
+             ( nestedCommandBufferSimultaneousUse == rhs.nestedCommandBufferSimultaneousUse );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                              = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
+    void *                              pNext                              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        nestedCommandBuffer                = {};
+    VULKAN_HPP_NAMESPACE::Bool32        nestedCommandBufferRendering       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        nestedCommandBufferSimultaneousUse = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT>
+  {
+    using Type = PhysicalDeviceNestedCommandBufferFeaturesEXT;
+  };
+
+  struct PhysicalDeviceNestedCommandBufferPropertiesEXT
+  {
+    using NativeType = VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT( uint32_t maxCommandBufferNestingLevel_ = {},
+                                                                         void *   pNext_                        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxCommandBufferNestingLevel( maxCommandBufferNestingLevel_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceNestedCommandBufferPropertiesEXT( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceNestedCommandBufferPropertiesEXT( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceNestedCommandBufferPropertiesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT &
+      setMaxCommandBufferNestingLevel( uint32_t maxCommandBufferNestingLevel_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxCommandBufferNestingLevel = maxCommandBufferNestingLevel_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferPropertiesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferPropertiesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maxCommandBufferNestingLevel );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceNestedCommandBufferPropertiesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxCommandBufferNestingLevel == rhs.maxCommandBufferNestingLevel );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                        = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
+    void *                              pNext                        = {};
+    uint32_t                            maxCommandBufferNestingLevel = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT>
+  {
+    using Type = PhysicalDeviceNestedCommandBufferPropertiesEXT;
+  };
+
   struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
@@ -65264,7 +74272,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT &
-                            setNonSeamlessCubeMap( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ ) VULKAN_HPP_NOEXCEPT
+      setNonSeamlessCubeMap( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ ) VULKAN_HPP_NOEXCEPT
     {
       nonSeamlessCubeMap = nonSeamlessCubeMap_;
       return *this;
@@ -65372,14 +74380,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT &
-                            setMicromapCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setMicromapCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       micromapCaptureReplay = micromapCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT &
-                            setMicromapHostCommands( VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ ) VULKAN_HPP_NOEXCEPT
+      setMicromapHostCommands( VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ ) VULKAN_HPP_NOEXCEPT
     {
       micromapHostCommands = micromapHostCommands_;
       return *this;
@@ -65803,12 +74811,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
     }
@@ -65900,7 +74908,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &
-                            setPageableDeviceLocalMemory( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ ) VULKAN_HPP_NOEXCEPT
+      setPageableDeviceLocalMemory( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ ) VULKAN_HPP_NOEXCEPT
     {
       pageableDeviceLocalMemory = pageableDeviceLocalMemory_;
       return *this;
@@ -65959,6 +74967,116 @@
     using Type = PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
   };
 
+  struct PhysicalDevicePerStageDescriptorSetFeaturesNV
+  {
+    using NativeType = VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDevicePerStageDescriptorSetFeaturesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDevicePerStageDescriptorSetFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 perStageDescriptorSet_ = {},
+                                                                        VULKAN_HPP_NAMESPACE::Bool32 dynamicPipelineLayout_ = {},
+                                                                        void *                       pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , perStageDescriptorSet( perStageDescriptorSet_ )
+      , dynamicPipelineLayout( dynamicPipelineLayout_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDevicePerStageDescriptorSetFeaturesNV( PhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDevicePerStageDescriptorSetFeaturesNV( VkPhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDevicePerStageDescriptorSetFeaturesNV( *reinterpret_cast<PhysicalDevicePerStageDescriptorSetFeaturesNV const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDevicePerStageDescriptorSetFeaturesNV & operator=( PhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDevicePerStageDescriptorSetFeaturesNV & operator=( VkPhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerStageDescriptorSetFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerStageDescriptorSetFeaturesNV &
+      setPerStageDescriptorSet( VULKAN_HPP_NAMESPACE::Bool32 perStageDescriptorSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      perStageDescriptorSet = perStageDescriptorSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerStageDescriptorSetFeaturesNV &
+      setDynamicPipelineLayout( VULKAN_HPP_NAMESPACE::Bool32 dynamicPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dynamicPipelineLayout = dynamicPipelineLayout_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDevicePerStageDescriptorSetFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDevicePerStageDescriptorSetFeaturesNV *>( this );
+    }
+
+    operator VkPhysicalDevicePerStageDescriptorSetFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDevicePerStageDescriptorSetFeaturesNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, perStageDescriptorSet, dynamicPipelineLayout );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDevicePerStageDescriptorSetFeaturesNV const & ) const = default;
+#else
+    bool operator==( PhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perStageDescriptorSet == rhs.perStageDescriptorSet ) &&
+             ( dynamicPipelineLayout == rhs.dynamicPipelineLayout );
+#  endif
+    }
+
+    bool operator!=( PhysicalDevicePerStageDescriptorSetFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::ePhysicalDevicePerStageDescriptorSetFeaturesNV;
+    void *                              pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Bool32        perStageDescriptorSet = {};
+    VULKAN_HPP_NAMESPACE::Bool32        dynamicPipelineLayout = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDevicePerStageDescriptorSetFeaturesNV>
+  {
+    using Type = PhysicalDevicePerStageDescriptorSetFeaturesNV;
+  };
+
   struct PhysicalDevicePerformanceQueryFeaturesKHR
   {
     using NativeType = VkPhysicalDevicePerformanceQueryFeaturesKHR;
@@ -66000,26 +75118,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
-                            setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
+      setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
     {
       performanceCounterQueryPools = performanceCounterQueryPools_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
-                            setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
+      setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
     {
       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
     }
@@ -66099,12 +75217,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
     }
@@ -66192,7 +75310,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures &
-                            setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineCreationCacheControl = pipelineCreationCacheControl_;
       return *this;
@@ -66250,6 +75368,7 @@
   {
     using Type = PhysicalDevicePipelineCreationCacheControlFeatures;
   };
+
   using PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
 
   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
@@ -66293,19 +75412,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR &
-                            setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineExecutableInfo = pipelineExecutableInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
     }
@@ -66352,6 +75471,106 @@
     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
   };
 
+  struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
+  {
+    using NativeType = VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ = {},
+                                                                               void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pipelineLibraryGroupHandles( pipelineLibraryGroupHandles_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &
+      operator=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & operator=( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &
+      setPipelineLibraryGroupHandles( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipelineLibraryGroupHandles = pipelineLibraryGroupHandles_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pipelineLibraryGroupHandles );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineLibraryGroupHandles == rhs.pipelineLibraryGroupHandles );
+#  endif
+    }
+
+    bool operator!=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                       = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+    void *                              pNext                       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        pipelineLibraryGroupHandles = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>
+  {
+    using Type = PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
+  };
+
   struct PhysicalDevicePipelinePropertiesFeaturesEXT
   {
     using NativeType = VkPhysicalDevicePipelinePropertiesFeaturesEXT;
@@ -66391,7 +75610,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT &
-                            setPipelinePropertiesIdentifier( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ ) VULKAN_HPP_NOEXCEPT
+      setPipelinePropertiesIdentifier( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelinePropertiesIdentifier = pipelinePropertiesIdentifier_;
       return *this;
@@ -66490,7 +75709,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineProtectedAccessFeaturesEXT &
-                            setPipelineProtectedAccess( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineProtectedAccess( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineProtectedAccess = pipelineProtectedAccess_;
       return *this;
@@ -66588,7 +75807,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT &
-                            setPipelineRobustness( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineRobustness( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineRobustness = pipelineRobustness_;
       return *this;
@@ -66787,12 +76006,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties *>( this );
     }
 
-    explicit operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties *>( this );
     }
@@ -66838,6 +76057,7 @@
   {
     using Type = PhysicalDevicePointClippingProperties;
   };
+
   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
 
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
@@ -66908,7 +76128,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
+      setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
     {
       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
       return *this;
@@ -66921,35 +76141,35 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
+      setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
     {
       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
+      setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
     {
       imageViewFormatSwizzle = imageViewFormatSwizzle_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
+      setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
     {
       imageView2DOn3DImage = imageView2DOn3DImage_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
+      setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
     {
       multisampleArrayImage = multisampleArrayImage_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
+      setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
     {
       mutableComparisonSamplers = mutableComparisonSamplers_;
       return *this;
@@ -66962,14 +76182,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
+      setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
     {
       samplerMipLodBias = samplerMipLodBias_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
+      setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
     {
       separateStencilMaskRef = separateStencilMaskRef_;
       return *this;
@@ -66983,14 +76203,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
+      setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
     {
       tessellationIsolines = tessellationIsolines_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
+      setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
     {
       tessellationPointMode = tessellationPointMode_;
       return *this;
@@ -67003,19 +76223,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
-                            setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
+      setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
     }
@@ -67157,19 +76377,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR &
-                            setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
+      setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
     {
       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
     }
@@ -67549,14 +76769,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
-                            setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
+      setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
     {
       primitiveTopologyListRestart = primitiveTopologyListRestart_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
-                            setPrimitiveTopologyPatchListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
+      setPrimitiveTopologyPatchListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
     {
       primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart_;
       return *this;
@@ -67662,7 +76882,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
-                            setPrimitivesGeneratedQuery( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ ) VULKAN_HPP_NOEXCEPT
+      setPrimitivesGeneratedQuery( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ ) VULKAN_HPP_NOEXCEPT
     {
       primitivesGeneratedQuery = primitivesGeneratedQuery_;
       return *this;
@@ -67838,6 +77058,7 @@
   {
     using Type = PhysicalDevicePrivateDataFeatures;
   };
+
   using PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
 
   struct PhysicalDeviceSparseProperties
@@ -67874,12 +77095,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSparseProperties *>( this );
     }
@@ -67975,12 +77196,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProperties *>( this );
     }
@@ -68068,12 +77289,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProperties2 *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProperties2 *>( this );
     }
@@ -68119,6 +77340,7 @@
   {
     using Type = PhysicalDeviceProperties2;
   };
+
   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
 
   struct PhysicalDeviceProtectedMemoryFeatures
@@ -68166,12 +77388,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures *>( this );
     }
@@ -68249,12 +77471,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties *>( this );
     }
@@ -68342,7 +77564,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT &
-                            setProvokingVertexLast( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ ) VULKAN_HPP_NOEXCEPT
+      setProvokingVertexLast( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ ) VULKAN_HPP_NOEXCEPT
     {
       provokingVertexLast = provokingVertexLast_;
       return *this;
@@ -68356,12 +77578,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProvokingVertexFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProvokingVertexFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
     }
@@ -68443,12 +77665,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceProvokingVertexPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProvokingVertexPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceProvokingVertexPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceProvokingVertexPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
     }
@@ -68527,12 +77749,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
     }
@@ -68618,7 +77840,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT &
-                            setFormatRgba10x6WithoutYCbCrSampler( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ ) VULKAN_HPP_NOEXCEPT
+      setFormatRgba10x6WithoutYCbCrSampler( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ ) VULKAN_HPP_NOEXCEPT
     {
       formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler_;
       return *this;
@@ -68806,6 +78028,7 @@
   {
     using Type = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
   };
+
   using PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
 
   struct PhysicalDeviceRayQueryFeaturesKHR
@@ -68852,12 +78075,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
     }
@@ -68945,7 +78168,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingInvocationReorderFeaturesNV &
-                            setRayTracingInvocationReorder( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingInvocationReorder( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingInvocationReorder = rayTracingInvocationReorder_;
       return *this;
@@ -69134,14 +78357,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
-                            setRayTracingMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingMaintenance1 = rayTracingMaintenance1_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
-                            setRayTracingPipelineTraceRaysIndirect2( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingPipelineTraceRaysIndirect2( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2_;
       return *this;
@@ -69243,7 +78466,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV &
-                            setRayTracingMotionBlur( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingMotionBlur( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingMotionBlur = rayTracingMotionBlur_;
       return *this;
@@ -69257,12 +78480,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
     }
@@ -69358,7 +78581,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
-                            setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingPipeline = rayTracingPipeline_;
       return *this;
@@ -69379,26 +78602,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
-                            setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
+      setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
-                            setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
+      setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
     {
       rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
     }
@@ -69511,12 +78734,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
     }
@@ -69592,6 +78815,105 @@
     using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR;
   };
 
+  struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+  {
+    using NativeType = VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ = {},
+                                                                           void *                       pNext_                   = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , rayTracingPositionFetch( rayTracingPositionFetch_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceRayTracingPositionFetchFeaturesKHR( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceRayTracingPositionFetchFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR &
+      setRayTracingPositionFetch( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ ) VULKAN_HPP_NOEXCEPT
+    {
+      rayTracingPositionFetch = rayTracingPositionFetch_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, rayTracingPositionFetch );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingPositionFetch == rhs.rayTracingPositionFetch );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                   = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+    void *                              pNext                   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        rayTracingPositionFetch = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR>
+  {
+    using Type = PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
+  };
+
   struct PhysicalDeviceRayTracingPropertiesNV
   {
     using NativeType = VkPhysicalDeviceRayTracingPropertiesNV;
@@ -69637,12 +78959,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV *>( this );
     }
@@ -69718,6 +79040,291 @@
     using Type = PhysicalDeviceRayTracingPropertiesNV;
   };
 
+  struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMG
+  {
+    using NativeType = VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRelaxedLineRasterizationFeaturesIMG( VULKAN_HPP_NAMESPACE::Bool32 relaxedLineRasterization_ = {},
+                                                                            void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , relaxedLineRasterization( relaxedLineRasterization_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceRelaxedLineRasterizationFeaturesIMG( PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceRelaxedLineRasterizationFeaturesIMG( VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceRelaxedLineRasterizationFeaturesIMG( *reinterpret_cast<PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceRelaxedLineRasterizationFeaturesIMG &
+      operator=( PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceRelaxedLineRasterizationFeaturesIMG & operator=( VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRelaxedLineRasterizationFeaturesIMG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRelaxedLineRasterizationFeaturesIMG &
+      setRelaxedLineRasterization( VULKAN_HPP_NAMESPACE::Bool32 relaxedLineRasterization_ ) VULKAN_HPP_NOEXCEPT
+    {
+      relaxedLineRasterization = relaxedLineRasterization_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG *>( this );
+    }
+
+    operator VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, relaxedLineRasterization );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( relaxedLineRasterization == rhs.relaxedLineRasterization );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                    = StructureType::ePhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+    void *                              pNext                    = {};
+    VULKAN_HPP_NAMESPACE::Bool32        relaxedLineRasterization = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceRelaxedLineRasterizationFeaturesIMG>
+  {
+    using Type = PhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
+  };
+
+  struct PhysicalDeviceRenderPassStripedFeaturesARM
+  {
+    using NativeType = VkPhysicalDeviceRenderPassStripedFeaturesARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceRenderPassStripedFeaturesARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 renderPassStriped_ = {},
+                                                                     void *                       pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , renderPassStriped( renderPassStriped_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedFeaturesARM( PhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceRenderPassStripedFeaturesARM( VkPhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceRenderPassStripedFeaturesARM( *reinterpret_cast<PhysicalDeviceRenderPassStripedFeaturesARM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceRenderPassStripedFeaturesARM & operator=( PhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceRenderPassStripedFeaturesARM & operator=( VkPhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRenderPassStripedFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRenderPassStripedFeaturesARM &
+      setRenderPassStriped( VULKAN_HPP_NAMESPACE::Bool32 renderPassStriped_ ) VULKAN_HPP_NOEXCEPT
+    {
+      renderPassStriped = renderPassStriped_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceRenderPassStripedFeaturesARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceRenderPassStripedFeaturesARM *>( this );
+    }
+
+    operator VkPhysicalDeviceRenderPassStripedFeaturesARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceRenderPassStripedFeaturesARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, renderPassStriped );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceRenderPassStripedFeaturesARM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPassStriped == rhs.renderPassStriped );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceRenderPassStripedFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::ePhysicalDeviceRenderPassStripedFeaturesARM;
+    void *                              pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        renderPassStriped = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceRenderPassStripedFeaturesARM>
+  {
+    using Type = PhysicalDeviceRenderPassStripedFeaturesARM;
+  };
+
+  struct PhysicalDeviceRenderPassStripedPropertiesARM
+  {
+    using NativeType = VkPhysicalDeviceRenderPassStripedPropertiesARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceRenderPassStripedPropertiesARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedPropertiesARM( VULKAN_HPP_NAMESPACE::Extent2D renderPassStripeGranularity_ = {},
+                                                                       uint32_t                       maxRenderPassStripes_        = {},
+                                                                       void *                         pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , renderPassStripeGranularity( renderPassStripeGranularity_ )
+      , maxRenderPassStripes( maxRenderPassStripes_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedPropertiesARM( PhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceRenderPassStripedPropertiesARM( VkPhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceRenderPassStripedPropertiesARM( *reinterpret_cast<PhysicalDeviceRenderPassStripedPropertiesARM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceRenderPassStripedPropertiesARM & operator=( PhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceRenderPassStripedPropertiesARM & operator=( VkPhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceRenderPassStripedPropertiesARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceRenderPassStripedPropertiesARM *>( this );
+    }
+
+    operator VkPhysicalDeviceRenderPassStripedPropertiesARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceRenderPassStripedPropertiesARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, renderPassStripeGranularity, maxRenderPassStripes );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceRenderPassStripedPropertiesARM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPassStripeGranularity == rhs.renderPassStripeGranularity ) &&
+             ( maxRenderPassStripes == rhs.maxRenderPassStripes );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceRenderPassStripedPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                       = StructureType::ePhysicalDeviceRenderPassStripedPropertiesARM;
+    void *                              pNext                       = {};
+    VULKAN_HPP_NAMESPACE::Extent2D      renderPassStripeGranularity = {};
+    uint32_t                            maxRenderPassStripes        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceRenderPassStripedPropertiesARM>
+  {
+    using Type = PhysicalDeviceRenderPassStripedPropertiesARM;
+  };
+
   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
   {
     using NativeType = VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
@@ -69759,19 +79366,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV &
-                            setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
+      setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
     {
       representativeFragmentTest = representativeFragmentTest_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
     }
@@ -69861,7 +79468,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT &
-                            setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
+      setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
     {
       robustBufferAccess2 = robustBufferAccess2_;
       return *this;
@@ -69880,12 +79487,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
     }
@@ -69972,12 +79579,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
     }
@@ -70065,12 +79672,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
     }
@@ -70168,12 +79775,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
     }
@@ -70221,6 +79828,7 @@
   {
     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
   };
+
   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
 
   struct PhysicalDeviceSamplerYcbcrConversionFeatures
@@ -70262,19 +79870,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures &
-                            setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
+      setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
     {
       samplerYcbcrConversion = samplerYcbcrConversion_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
     }
@@ -70320,6 +79928,7 @@
   {
     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
   };
+
   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
 
   struct PhysicalDeviceScalarBlockLayoutFeatures
@@ -70361,19 +79970,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures &
-                            setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
+      setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       scalarBlockLayout = scalarBlockLayout_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
     }
@@ -70419,8 +80028,207 @@
   {
     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
   };
+
   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
 
+  struct PhysicalDeviceSchedulingControlsFeaturesARM
+  {
+    using NativeType = VkPhysicalDeviceSchedulingControlsFeaturesARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceSchedulingControlsFeaturesARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceSchedulingControlsFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 schedulingControls_ = {},
+                                                                      void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , schedulingControls( schedulingControls_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceSchedulingControlsFeaturesARM( PhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceSchedulingControlsFeaturesARM( VkPhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceSchedulingControlsFeaturesARM( *reinterpret_cast<PhysicalDeviceSchedulingControlsFeaturesARM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceSchedulingControlsFeaturesARM & operator=( PhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceSchedulingControlsFeaturesARM & operator=( VkPhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSchedulingControlsFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSchedulingControlsFeaturesARM &
+      setSchedulingControls( VULKAN_HPP_NAMESPACE::Bool32 schedulingControls_ ) VULKAN_HPP_NOEXCEPT
+    {
+      schedulingControls = schedulingControls_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceSchedulingControlsFeaturesARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceSchedulingControlsFeaturesARM *>( this );
+    }
+
+    operator VkPhysicalDeviceSchedulingControlsFeaturesARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceSchedulingControlsFeaturesARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, schedulingControls );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceSchedulingControlsFeaturesARM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( schedulingControls == rhs.schedulingControls );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceSchedulingControlsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::ePhysicalDeviceSchedulingControlsFeaturesARM;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        schedulingControls = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceSchedulingControlsFeaturesARM>
+  {
+    using Type = PhysicalDeviceSchedulingControlsFeaturesARM;
+  };
+
+  struct PhysicalDeviceSchedulingControlsPropertiesARM
+  {
+    using NativeType = VkPhysicalDeviceSchedulingControlsPropertiesARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceSchedulingControlsPropertiesARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceSchedulingControlsPropertiesARM( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags_ = {},
+                                                     void *                                                         pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , schedulingControlsFlags( schedulingControlsFlags_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceSchedulingControlsPropertiesARM( PhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceSchedulingControlsPropertiesARM( VkPhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceSchedulingControlsPropertiesARM( *reinterpret_cast<PhysicalDeviceSchedulingControlsPropertiesARM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceSchedulingControlsPropertiesARM & operator=( PhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceSchedulingControlsPropertiesARM & operator=( VkPhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSchedulingControlsPropertiesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSchedulingControlsPropertiesARM &
+      setSchedulingControlsFlags( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      schedulingControlsFlags = schedulingControlsFlags_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceSchedulingControlsPropertiesARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceSchedulingControlsPropertiesARM *>( this );
+    }
+
+    operator VkPhysicalDeviceSchedulingControlsPropertiesARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceSchedulingControlsPropertiesARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, schedulingControlsFlags );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceSchedulingControlsPropertiesARM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( schedulingControlsFlags == rhs.schedulingControlsFlags );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceSchedulingControlsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                            sType                   = StructureType::ePhysicalDeviceSchedulingControlsPropertiesARM;
+    void *                                                         pNext                   = {};
+    VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceSchedulingControlsPropertiesARM>
+  {
+    using Type = PhysicalDeviceSchedulingControlsPropertiesARM;
+  };
+
   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
   {
     using NativeType = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
@@ -70462,19 +80270,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures &
-                            setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
+      setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
     {
       separateDepthStencilLayouts = separateDepthStencilLayouts_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
     }
@@ -70520,6 +80328,7 @@
   {
     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
   };
+
   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
 
   struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT
@@ -70583,84 +80392,84 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat16Atomics = shaderBufferFloat16Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderBufferFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderBufferFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderBufferFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat16Atomics = shaderSharedFloat16Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderSharedFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderSharedFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderSharedFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setShaderImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setShaderImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
-                            setSparseImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+      setSparseImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
     {
       sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax_;
       return *this;
@@ -70827,96 +80636,96 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
-                            setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+      setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
     {
       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
     }
@@ -71047,26 +80856,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
-                            setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
-                            setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features *>( this );
     }
@@ -71114,6 +80923,7 @@
   {
     using Type = PhysicalDeviceShaderAtomicInt64Features;
   };
+
   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
 
   struct PhysicalDeviceShaderClockFeaturesKHR
@@ -71157,7 +80967,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR &
-                            setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSubgroupClock = shaderSubgroupClock_;
       return *this;
@@ -71170,12 +80980,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
     }
@@ -71263,7 +81073,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreBuiltinsFeaturesARM &
-                            setShaderCoreBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ ) VULKAN_HPP_NOEXCEPT
+      setShaderCoreBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderCoreBuiltins = shaderCoreBuiltins_;
       return *this;
@@ -71446,12 +81256,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
     }
@@ -71557,12 +81367,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
     }
@@ -71658,6 +81468,95 @@
     using Type = PhysicalDeviceShaderCorePropertiesAMD;
   };
 
+  struct PhysicalDeviceShaderCorePropertiesARM
+  {
+    using NativeType = VkPhysicalDeviceShaderCorePropertiesARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM( uint32_t pixelRate_ = {},
+                                                                uint32_t texelRate_ = {},
+                                                                uint32_t fmaRate_   = {},
+                                                                void *   pNext_     = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pixelRate( pixelRate_ )
+      , texelRate( texelRate_ )
+      , fmaRate( fmaRate_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderCorePropertiesARM( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderCorePropertiesARM( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesARM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderCorePropertiesARM & operator=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderCorePropertiesARM & operator=( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceShaderCorePropertiesARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderCorePropertiesARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pixelRate, texelRate, fmaRate );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderCorePropertiesARM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pixelRate == rhs.pixelRate ) && ( texelRate == rhs.texelRate ) && ( fmaRate == rhs.fmaRate );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType     = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
+    void *                              pNext     = {};
+    uint32_t                            pixelRate = {};
+    uint32_t                            texelRate = {};
+    uint32_t                            fmaRate   = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesARM>
+  {
+    using Type = PhysicalDeviceShaderCorePropertiesARM;
+  };
+
   struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures
   {
     using NativeType = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
@@ -71699,7 +81598,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures &
-                            setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
+      setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
       return *this;
@@ -71757,6 +81656,7 @@
   {
     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
   };
+
   using PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
 
   struct PhysicalDeviceShaderDrawParametersFeatures
@@ -71798,19 +81698,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures &
-                            setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
+      setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderDrawParameters = shaderDrawParameters_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
     }
@@ -71856,6 +81756,7 @@
   {
     using Type = PhysicalDeviceShaderDrawParametersFeatures;
   };
+
   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
 
   struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
@@ -71900,7 +81801,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
-                            setShaderEarlyAndLateFragmentTests( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ ) VULKAN_HPP_NOEXCEPT
+      setShaderEarlyAndLateFragmentTests( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests_;
       return *this;
@@ -71959,6 +81860,260 @@
     using Type = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
   };
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceShaderEnqueueFeaturesAMDX
+  {
+    using NativeType = VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ = {},
+                                                                  void *                       pNext_         = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderEnqueue( shaderEnqueue_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderEnqueueFeaturesAMDX( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderEnqueueFeaturesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setShaderEnqueue( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderEnqueue = shaderEnqueue_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueueFeaturesAMDX *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderEnqueueFeaturesAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderEnqueue );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderEnqueueFeaturesAMDX const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEnqueue == rhs.shaderEnqueue );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
+    void *                              pNext         = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderEnqueue = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX>
+  {
+    using Type = PhysicalDeviceShaderEnqueueFeaturesAMDX;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PhysicalDeviceShaderEnqueuePropertiesAMDX
+  {
+    using NativeType = VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX( uint32_t maxExecutionGraphDepth_                 = {},
+                                                                    uint32_t maxExecutionGraphShaderOutputNodes_     = {},
+                                                                    uint32_t maxExecutionGraphShaderPayloadSize_     = {},
+                                                                    uint32_t maxExecutionGraphShaderPayloadCount_    = {},
+                                                                    uint32_t executionGraphDispatchAddressAlignment_ = {},
+                                                                    void *   pNext_                                  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxExecutionGraphDepth( maxExecutionGraphDepth_ )
+      , maxExecutionGraphShaderOutputNodes( maxExecutionGraphShaderOutputNodes_ )
+      , maxExecutionGraphShaderPayloadSize( maxExecutionGraphShaderPayloadSize_ )
+      , maxExecutionGraphShaderPayloadCount( maxExecutionGraphShaderPayloadCount_ )
+      , executionGraphDispatchAddressAlignment( executionGraphDispatchAddressAlignment_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderEnqueuePropertiesAMDX( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderEnqueuePropertiesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphDepth( uint32_t maxExecutionGraphDepth_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxExecutionGraphDepth = maxExecutionGraphDepth_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
+      setMaxExecutionGraphShaderOutputNodes( uint32_t maxExecutionGraphShaderOutputNodes_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxExecutionGraphShaderOutputNodes = maxExecutionGraphShaderOutputNodes_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
+      setMaxExecutionGraphShaderPayloadSize( uint32_t maxExecutionGraphShaderPayloadSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxExecutionGraphShaderPayloadSize = maxExecutionGraphShaderPayloadSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
+      setMaxExecutionGraphShaderPayloadCount( uint32_t maxExecutionGraphShaderPayloadCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxExecutionGraphShaderPayloadCount = maxExecutionGraphShaderPayloadCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
+      setExecutionGraphDispatchAddressAlignment( uint32_t executionGraphDispatchAddressAlignment_ ) VULKAN_HPP_NOEXCEPT
+    {
+      executionGraphDispatchAddressAlignment = executionGraphDispatchAddressAlignment_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueuePropertiesAMDX *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderEnqueuePropertiesAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       maxExecutionGraphDepth,
+                       maxExecutionGraphShaderOutputNodes,
+                       maxExecutionGraphShaderPayloadSize,
+                       maxExecutionGraphShaderPayloadCount,
+                       executionGraphDispatchAddressAlignment );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderEnqueuePropertiesAMDX const & ) const = default;
+#  else
+    bool operator==( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxExecutionGraphDepth == rhs.maxExecutionGraphDepth ) &&
+             ( maxExecutionGraphShaderOutputNodes == rhs.maxExecutionGraphShaderOutputNodes ) &&
+             ( maxExecutionGraphShaderPayloadSize == rhs.maxExecutionGraphShaderPayloadSize ) &&
+             ( maxExecutionGraphShaderPayloadCount == rhs.maxExecutionGraphShaderPayloadCount ) &&
+             ( executionGraphDispatchAddressAlignment == rhs.executionGraphDispatchAddressAlignment );
+#    endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                  = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
+    void *                              pNext                                  = {};
+    uint32_t                            maxExecutionGraphDepth                 = {};
+    uint32_t                            maxExecutionGraphShaderOutputNodes     = {};
+    uint32_t                            maxExecutionGraphShaderPayloadSize     = {};
+    uint32_t                            maxExecutionGraphShaderPayloadCount    = {};
+    uint32_t                            executionGraphDispatchAddressAlignment = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX>
+  {
+    using Type = PhysicalDeviceShaderEnqueuePropertiesAMDX;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
   struct PhysicalDeviceShaderFloat16Int8Features
   {
     using NativeType = VkPhysicalDeviceShaderFloat16Int8Features;
@@ -72012,12 +82167,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features *>( this );
     }
@@ -72064,6 +82219,7 @@
   {
     using Type = PhysicalDeviceShaderFloat16Int8Features;
   };
+
   using PhysicalDeviceFloat16Int8FeaturesKHR       = PhysicalDeviceShaderFloat16Int8Features;
   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
 
@@ -72109,26 +82265,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
-                            setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderImageInt64Atomics = shaderImageInt64Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
-                            setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       sparseImageInt64Atomics = sparseImageInt64Atomics_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
     }
@@ -72222,12 +82378,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
     }
@@ -72314,7 +82470,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures &
-                            setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
+      setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderIntegerDotProduct = shaderIntegerDotProduct_;
       return *this;
@@ -72372,6 +82528,7 @@
   {
     using Type = PhysicalDeviceShaderIntegerDotProductFeatures;
   };
+
   using PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
 
   struct PhysicalDeviceShaderIntegerDotProductProperties
@@ -72644,6 +82801,7 @@
   {
     using Type = PhysicalDeviceShaderIntegerDotProductProperties;
   };
+
   using PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
 
   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
@@ -72687,19 +82845,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &
-                            setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
+      setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
     }
@@ -72786,7 +82944,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT &
-                            setShaderModuleIdentifier( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ ) VULKAN_HPP_NOEXCEPT
+      setShaderModuleIdentifier( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderModuleIdentifier = shaderModuleIdentifier_;
       return *this;
@@ -72931,6 +83089,190 @@
     using Type = PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
   };
 
+  struct PhysicalDeviceShaderObjectFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceShaderObjectFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderObject( shaderObject_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderObjectFeaturesEXT( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderObjectFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderObjectFeaturesEXT & operator=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderObjectFeaturesEXT & operator=( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setShaderObject( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderObject = shaderObject_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceShaderObjectFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderObjectFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderObjectFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderObject );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderObjectFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderObject == rhs.shaderObject );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
+    void *                              pNext        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderObject = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectFeaturesEXT>
+  {
+    using Type = PhysicalDeviceShaderObjectFeaturesEXT;
+  };
+
+  struct PhysicalDeviceShaderObjectPropertiesEXT
+  {
+    using NativeType = VkPhysicalDeviceShaderObjectPropertiesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderBinaryUUID_    = {},
+                                                                     uint32_t                                  shaderBinaryVersion_ = {},
+                                                                     void *                                    pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderBinaryUUID( shaderBinaryUUID_ )
+      , shaderBinaryVersion( shaderBinaryVersion_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderObjectPropertiesEXT( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderObjectPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderObjectPropertiesEXT & operator=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderObjectPropertiesEXT & operator=( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceShaderObjectPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderObjectPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderObjectPropertiesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::
+      tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderBinaryUUID, shaderBinaryVersion );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderObjectPropertiesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBinaryUUID == rhs.shaderBinaryUUID ) &&
+             ( shaderBinaryVersion == rhs.shaderBinaryVersion );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                         sType               = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
+    void *                                                      pNext               = {};
+    VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderBinaryUUID    = {};
+    uint32_t                                                    shaderBinaryVersion = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectPropertiesEXT>
+  {
+    using Type = PhysicalDeviceShaderObjectPropertiesEXT;
+  };
+
   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
   {
     using NativeType = VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
@@ -72976,12 +83318,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
     }
@@ -73060,12 +83402,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
     }
@@ -73154,19 +83496,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures &
-                            setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
     }
@@ -73212,6 +83554,7 @@
   {
     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
   };
+
   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
 
   struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
@@ -73257,19 +83600,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
-                            setShaderSubgroupUniformControlFlow( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSubgroupUniformControlFlow( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( this );
     }
@@ -73356,7 +83699,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures &
-                            setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
+      setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderTerminateInvocation = shaderTerminateInvocation_;
       return *this;
@@ -73414,8 +83757,229 @@
   {
     using Type = PhysicalDeviceShaderTerminateInvocationFeatures;
   };
+
   using PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
 
+  struct PhysicalDeviceShaderTileImageFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceShaderTileImageFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_   = {},
+                                                                   VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_   = {},
+                                                                   VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ = {},
+                                                                   void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderTileImageColorReadAccess( shaderTileImageColorReadAccess_ )
+      , shaderTileImageDepthReadAccess( shaderTileImageDepthReadAccess_ )
+      , shaderTileImageStencilReadAccess( shaderTileImageStencilReadAccess_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderTileImageFeaturesEXT( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderTileImageFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderTileImageFeaturesEXT & operator=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderTileImageFeaturesEXT & operator=( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
+      setShaderTileImageColorReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderTileImageColorReadAccess = shaderTileImageColorReadAccess_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
+      setShaderTileImageDepthReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderTileImageDepthReadAccess = shaderTileImageDepthReadAccess_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
+      setShaderTileImageStencilReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderTileImageStencilReadAccess = shaderTileImageStencilReadAccess_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceShaderTileImageFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderTileImageFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderTileImageFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTileImageColorReadAccess == rhs.shaderTileImageColorReadAccess ) &&
+             ( shaderTileImageDepthReadAccess == rhs.shaderTileImageDepthReadAccess ) &&
+             ( shaderTileImageStencilReadAccess == rhs.shaderTileImageStencilReadAccess );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                            = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
+    void *                              pNext                            = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageColorReadAccess   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageDepthReadAccess   = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageStencilReadAccess = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT>
+  {
+    using Type = PhysicalDeviceShaderTileImageFeaturesEXT;
+  };
+
+  struct PhysicalDeviceShaderTileImagePropertiesEXT
+  {
+    using NativeType = VkPhysicalDeviceShaderTileImagePropertiesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageCoherentReadAccelerated_           = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation_ = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation_          = {},
+                                                                     void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , shaderTileImageCoherentReadAccelerated( shaderTileImageCoherentReadAccelerated_ )
+      , shaderTileImageReadSampleFromPixelRateInvocation( shaderTileImageReadSampleFromPixelRateInvocation_ )
+      , shaderTileImageReadFromHelperInvocation( shaderTileImageReadFromHelperInvocation_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceShaderTileImagePropertiesEXT( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceShaderTileImagePropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceShaderTileImagePropertiesEXT & operator=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceShaderTileImagePropertiesEXT & operator=( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceShaderTileImagePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceShaderTileImagePropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceShaderTileImagePropertiesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie(
+        sType, pNext, shaderTileImageCoherentReadAccelerated, shaderTileImageReadSampleFromPixelRateInvocation, shaderTileImageReadFromHelperInvocation );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceShaderTileImagePropertiesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTileImageCoherentReadAccelerated == rhs.shaderTileImageCoherentReadAccelerated ) &&
+             ( shaderTileImageReadSampleFromPixelRateInvocation == rhs.shaderTileImageReadSampleFromPixelRateInvocation ) &&
+             ( shaderTileImageReadFromHelperInvocation == rhs.shaderTileImageReadFromHelperInvocation );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                                            = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
+    void *                              pNext                                            = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageCoherentReadAccelerated           = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageReadSampleFromPixelRateInvocation = {};
+    VULKAN_HPP_NAMESPACE::Bool32        shaderTileImageReadFromHelperInvocation          = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT>
+  {
+    using Type = PhysicalDeviceShaderTileImagePropertiesEXT;
+  };
+
   struct PhysicalDeviceShadingRateImageFeaturesNV
   {
     using NativeType = VkPhysicalDeviceShadingRateImageFeaturesNV;
@@ -73463,19 +84027,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV &
-                            setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
     }
@@ -73559,12 +84123,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
     }
 
-    explicit operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
     }
@@ -73692,12 +84256,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
     }
@@ -73754,6 +84318,7 @@
   {
     using Type = PhysicalDeviceSparseImageFormatInfo2;
   };
+
   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
 
   struct PhysicalDeviceSubgroupProperties
@@ -73793,12 +84358,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties *>( this );
     }
@@ -73895,14 +84460,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
-                            setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
+      setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
     {
       subgroupSizeControl = subgroupSizeControl_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
-                            setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
+      setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
     {
       computeFullSubgroups = computeFullSubgroups_;
       return *this;
@@ -73962,6 +84527,7 @@
   {
     using Type = PhysicalDeviceSubgroupSizeControlFeatures;
   };
+
   using PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
 
   struct PhysicalDeviceSubgroupSizeControlProperties
@@ -74061,6 +84627,7 @@
   {
     using Type = PhysicalDeviceSubgroupSizeControlProperties;
   };
+
   using PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
 
   struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
@@ -74103,7 +84670,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT &
-                            setSubpassMergeFeedback( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ ) VULKAN_HPP_NOEXCEPT
+      setSubpassMergeFeedback( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ ) VULKAN_HPP_NOEXCEPT
     {
       subpassMergeFeedback = subpassMergeFeedback_;
       return *this;
@@ -74207,12 +84774,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
     }
@@ -74290,12 +84857,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
     }
@@ -74386,12 +84953,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR *>( this );
     }
@@ -74478,7 +85045,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSwapchainMaintenance1FeaturesEXT &
-                            setSwapchainMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ ) VULKAN_HPP_NOEXCEPT
+      setSwapchainMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ ) VULKAN_HPP_NOEXCEPT
     {
       swapchainMaintenance1 = swapchainMaintenance1_;
       return *this;
@@ -74633,6 +85200,7 @@
   {
     using Type = PhysicalDeviceSynchronization2Features;
   };
+
   using PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
 
   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
@@ -74675,19 +85243,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT &
-                            setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
+      setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
     {
       texelBufferAlignment = texelBufferAlignment_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
     }
@@ -74838,6 +85406,7 @@
   {
     using Type = PhysicalDeviceTexelBufferAlignmentProperties;
   };
+
   using PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
 
   struct PhysicalDeviceTextureCompressionASTCHDRFeatures
@@ -74880,7 +85449,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures &
-                            setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
+      setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
     {
       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
       return *this;
@@ -74938,6 +85507,7 @@
   {
     using Type = PhysicalDeviceTextureCompressionASTCHDRFeatures;
   };
+
   using PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
 
   struct PhysicalDeviceTilePropertiesFeaturesQCOM
@@ -75076,19 +85646,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures &
-                            setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
+      setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
     {
       timelineSemaphore = timelineSemaphore_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
     }
@@ -75134,6 +85704,7 @@
   {
     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
   };
+
   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
 
   struct PhysicalDeviceTimelineSemaphoreProperties
@@ -75167,12 +85738,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
     }
@@ -75218,6 +85789,7 @@
   {
     using Type = PhysicalDeviceTimelineSemaphoreProperties;
   };
+
   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
 
   struct PhysicalDeviceToolProperties
@@ -75321,6 +85893,7 @@
   {
     using Type = PhysicalDeviceToolProperties;
   };
+
   using PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
 
   struct PhysicalDeviceTransformFeedbackFeaturesEXT
@@ -75364,7 +85937,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT &
-                            setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
+      setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
     {
       transformFeedback = transformFeedback_;
       return *this;
@@ -75377,12 +85950,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
     }
@@ -75479,12 +86052,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
     }
@@ -75611,19 +86184,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures &
-                            setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
+      setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformBufferStandardLayout = uniformBufferStandardLayout_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
     }
@@ -75669,6 +86242,7 @@
   {
     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
   };
+
   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
 
   struct PhysicalDeviceVariablePointersFeatures
@@ -75712,7 +86286,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures &
-                            setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       variablePointersStorageBuffer = variablePointersStorageBuffer_;
       return *this;
@@ -75725,12 +86299,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures *>( this );
     }
@@ -75778,19 +86352,20 @@
   {
     using Type = PhysicalDeviceVariablePointersFeatures;
   };
+
   using PhysicalDeviceVariablePointerFeatures     = PhysicalDeviceVariablePointersFeatures;
   using PhysicalDeviceVariablePointerFeaturesKHR  = PhysicalDeviceVariablePointersFeatures;
   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
 
-  struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
+  struct PhysicalDeviceVertexAttributeDivisorFeaturesKHR
   {
-    using NativeType = VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+    using NativeType = VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesKHR;
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_     = {},
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_     = {},
                                                                           VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {},
                                                                           void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -75800,37 +86375,37 @@
     }
 
     VULKAN_HPP_CONSTEXPR
-      PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+      PhysicalDeviceVertexAttributeDivisorFeaturesKHR( PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs ) )
+    PhysicalDeviceVertexAttributeDivisorFeaturesKHR( VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceVertexAttributeDivisorFeaturesKHR( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesKHR const *>( &rhs ) )
     {
     }
 
-    PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    PhysicalDeviceVertexAttributeDivisorFeaturesKHR & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    PhysicalDeviceVertexAttributeDivisorFeaturesKHR & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR const *>( &rhs );
       return *this;
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
-                            setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesKHR &
+      setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesKHR &
       setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
@@ -75838,14 +86413,14 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
+      return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
+      return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR *>( this );
     }
 
 #if defined( VULKAN_HPP_USE_REFLECT )
@@ -75861,9 +86436,9 @@
 #endif
 
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & ) const = default;
+    auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & ) const = default;
 #else
-    bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -75873,25 +86448,27 @@
 #  endif
     }
 
-    bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 #endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType                                  = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType                                  = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesKHR;
     void *                              pNext                                  = {};
     VULKAN_HPP_NAMESPACE::Bool32        vertexAttributeInstanceRateDivisor     = {};
     VULKAN_HPP_NAMESPACE::Bool32        vertexAttributeInstanceRateZeroDivisor = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesKHR>
   {
-    using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+    using Type = PhysicalDeviceVertexAttributeDivisorFeaturesKHR;
   };
 
+  using PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesKHR;
+
   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
   {
     using NativeType = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
@@ -75924,12 +86501,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
     }
@@ -75976,6 +86553,95 @@
     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
   };
 
+  struct PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+  {
+    using NativeType = VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesKHR( uint32_t                     maxVertexAttribDivisor_       = {},
+                                                                            VULKAN_HPP_NAMESPACE::Bool32 supportsNonZeroFirstInstance_ = {},
+                                                                            void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , maxVertexAttribDivisor( maxVertexAttribDivisor_ )
+      , supportsNonZeroFirstInstance( supportsNonZeroFirstInstance_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceVertexAttributeDivisorPropertiesKHR( PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceVertexAttributeDivisorPropertiesKHR( VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceVertexAttributeDivisorPropertiesKHR( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceVertexAttributeDivisorPropertiesKHR &
+      operator=( PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceVertexAttributeDivisorPropertiesKHR & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, maxVertexAttribDivisor, supportsNonZeroFirstInstance );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor ) &&
+             ( supportsNonZeroFirstInstance == rhs.supportsNonZeroFirstInstance );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                        = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+    void *                              pNext                        = {};
+    uint32_t                            maxVertexAttribDivisor       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        supportsNonZeroFirstInstance = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesKHR>
+  {
+    using Type = PhysicalDeviceVertexAttributeDivisorPropertiesKHR;
+  };
+
   struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
@@ -76016,19 +86682,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT &
-                            setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT
+      setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexInputDynamicState = vertexInputDynamicState_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
     }
@@ -76075,7 +86741,245 @@
     using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
   };
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct VideoProfileInfoKHR
+  {
+    using NativeType = VkVideoProfileInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoProfileInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR(
+      VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone,
+      VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_   = {},
+      VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_        = {},
+      VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_      = {},
+      const void *                                         pNext_               = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , videoCodecOperation( videoCodecOperation_ )
+      , chromaSubsampling( chromaSubsampling_ )
+      , lumaBitDepth( lumaBitDepth_ )
+      , chromaBitDepth( chromaBitDepth_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoProfileInfoKHR( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoProfileInfoKHR( *reinterpret_cast<VideoProfileInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoProfileInfoKHR & operator=( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoProfileInfoKHR & operator=( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
+      setVideoCodecOperation( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT
+    {
+      videoCodecOperation = videoCodecOperation_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
+      setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) VULKAN_HPP_NOEXCEPT
+    {
+      chromaSubsampling = chromaSubsampling_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT
+    {
+      lumaBitDepth = lumaBitDepth_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT
+    {
+      chromaBitDepth = chromaBitDepth_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoProfileInfoKHR *>( this );
+    }
+
+    operator VkVideoProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoProfileInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR const &,
+               VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR const &,
+               VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &,
+               VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoProfileInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperation == rhs.videoCodecOperation ) &&
+             ( chromaSubsampling == rhs.chromaSubsampling ) && ( lumaBitDepth == rhs.lumaBitDepth ) && ( chromaBitDepth == rhs.chromaBitDepth );
+#  endif
+    }
+
+    bool operator!=( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                  sType               = StructureType::eVideoProfileInfoKHR;
+    const void *                                         pNext               = {};
+    VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone;
+    VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling   = {};
+    VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth        = {};
+    VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth      = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoProfileInfoKHR>
+  {
+    using Type = VideoProfileInfoKHR;
+  };
+
+  struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR
+  {
+    using NativeType = VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {},
+                                                                       uint32_t                                          qualityLevel_  = {},
+                                                                       const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pVideoProfile( pVideoProfile_ )
+      , qualityLevel( qualityLevel_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceVideoEncodeQualityLevelInfoKHR( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceVideoEncodeQualityLevelInfoKHR( *reinterpret_cast<PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR &
+      setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pVideoProfile = pVideoProfile_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
+    {
+      qualityLevel = qualityLevel_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pVideoProfile, qualityLevel );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVideoProfile == rhs.pVideoProfile ) && ( qualityLevel == rhs.qualityLevel );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType         = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+    const void *                                      pNext         = {};
+    const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
+    uint32_t                                          qualityLevel  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR>
+  {
+    using Type = PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
+  };
+
   struct PhysicalDeviceVideoFormatInfoKHR
   {
     using NativeType = VkPhysicalDeviceVideoFormatInfoKHR;
@@ -76083,7 +86987,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
                                                            const void *                          pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -76099,7 +87003,7 @@
     }
 
     PhysicalDeviceVideoFormatInfoKHR & operator=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     PhysicalDeviceVideoFormatInfoKHR & operator=( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -76107,7 +87011,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -76119,47 +87023,47 @@
       imageUsage = imageUsage_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkPhysicalDeviceVideoFormatInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVideoFormatInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, imageUsage );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( PhysicalDeviceVideoFormatInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageUsage == rhs.imageUsage );
-#    endif
+#  endif
     }
 
     bool operator!=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType   sType      = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
@@ -76172,7 +87076,104 @@
   {
     using Type = PhysicalDeviceVideoFormatInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  struct PhysicalDeviceVideoMaintenance1FeaturesKHR
+  {
+    using NativeType = VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceVideoMaintenance1FeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoMaintenance1FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 videoMaintenance1_ = {},
+                                                                     void *                       pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , videoMaintenance1( videoMaintenance1_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoMaintenance1FeaturesKHR( PhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceVideoMaintenance1FeaturesKHR( VkPhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceVideoMaintenance1FeaturesKHR( *reinterpret_cast<PhysicalDeviceVideoMaintenance1FeaturesKHR const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceVideoMaintenance1FeaturesKHR & operator=( PhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceVideoMaintenance1FeaturesKHR & operator=( VkPhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoMaintenance1FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoMaintenance1FeaturesKHR &
+      setVideoMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 videoMaintenance1_ ) VULKAN_HPP_NOEXCEPT
+    {
+      videoMaintenance1 = videoMaintenance1_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceVideoMaintenance1FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceVideoMaintenance1FeaturesKHR *>( this );
+    }
+
+    operator VkPhysicalDeviceVideoMaintenance1FeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceVideoMaintenance1FeaturesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, videoMaintenance1 );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceVideoMaintenance1FeaturesKHR const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoMaintenance1 == rhs.videoMaintenance1 );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceVideoMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::ePhysicalDeviceVideoMaintenance1FeaturesKHR;
+    void *                              pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        videoMaintenance1 = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceVideoMaintenance1FeaturesKHR>
+  {
+    using Type = PhysicalDeviceVideoMaintenance1FeaturesKHR;
+  };
 
   struct PhysicalDeviceVulkan11Features
   {
@@ -76235,14 +87236,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       storageBuffer16BitAccess = storageBuffer16BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
       return *this;
@@ -76267,21 +87268,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewGeometryShader = multiviewGeometryShader_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
+      setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
     {
       multiviewTessellationShader = multiviewTessellationShader_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
+      setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
       variablePointersStorageBuffer = variablePointersStorageBuffer_;
       return *this;
@@ -76300,7 +87301,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
-                            setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
+      setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
     {
       samplerYcbcrConversion = samplerYcbcrConversion_;
       return *this;
@@ -76313,12 +87314,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features *>( this );
     }
@@ -76468,12 +87469,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties *>( this );
     }
@@ -76704,7 +87705,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
+      setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
     {
       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
       return *this;
@@ -76717,14 +87718,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       storageBuffer8BitAccess = storageBuffer8BitAccess_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
+      setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
       return *this;
@@ -76737,14 +87738,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
       return *this;
@@ -76888,7 +87889,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
+      setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
     {
       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
       return *this;
@@ -76902,7 +87903,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
+      setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
     {
       runtimeDescriptorArray = runtimeDescriptorArray_;
       return *this;
@@ -76927,21 +87928,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
+      setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformBufferStandardLayout = uniformBufferStandardLayout_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
+      setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
+      setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
     {
       separateDepthStencilLayouts = separateDepthStencilLayouts_;
       return *this;
@@ -76966,14 +87967,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
+      setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
     {
       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
       return *this;
@@ -76986,7 +87987,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
+      setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
     {
       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
       return *this;
@@ -77000,7 +88001,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
+      setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderOutputViewportIndex = shaderOutputViewportIndex_;
       return *this;
@@ -77013,19 +88014,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
-                            setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
+      setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
     {
       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features *>( this );
     }
@@ -77382,12 +88383,12 @@
       return *this;
     }
 
-    explicit operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties *>( this );
     }
@@ -77717,7 +88718,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineCreationCacheControl = pipelineCreationCacheControl_;
       return *this;
@@ -77730,14 +88731,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
+      setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
+      setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderTerminateInvocation = shaderTerminateInvocation_;
       return *this;
@@ -77762,14 +88763,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
+      setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
     {
       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
+      setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
       return *this;
@@ -77782,7 +88783,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
-                            setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
+      setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderIntegerDotProduct = shaderIntegerDotProduct_;
       return *this;
@@ -78301,14 +89302,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
-                            setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
+      setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
     {
       vulkanMemoryModel = vulkanMemoryModel_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
-                            setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
+      setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
     {
       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
       return *this;
@@ -78322,12 +89323,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
     }
 
-    explicit operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
     }
@@ -78381,6 +89382,7 @@
   {
     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
   };
+
   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
 
   struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
@@ -78432,7 +89434,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
-                            setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
+      setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_;
       return *this;
@@ -78460,12 +89462,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
     }
 
-    explicit operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
     }
@@ -78568,19 +89570,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &
-                            setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT
+      setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT
     {
       ycbcr2plane444Formats = ycbcr2plane444Formats_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
     }
@@ -78627,6 +89629,102 @@
     using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
   };
 
+  struct PhysicalDeviceYcbcrDegammaFeaturesQCOM
+  {
+    using NativeType = VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , ycbcrDegamma( ycbcrDegamma_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceYcbcrDegammaFeaturesQCOM( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceYcbcrDegammaFeaturesQCOM( *reinterpret_cast<PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setYcbcrDegamma( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ ) VULKAN_HPP_NOEXCEPT
+    {
+      ycbcrDegamma = ycbcrDegamma_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *>( this );
+    }
+
+    operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, ycbcrDegamma );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcrDegamma == rhs.ycbcrDegamma );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
+    void *                              pNext        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        ycbcrDegamma = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM>
+  {
+    using Type = PhysicalDeviceYcbcrDegammaFeaturesQCOM;
+  };
+
   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
@@ -78666,19 +89764,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT &
-                            setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
+      setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
     {
       ycbcrImageArrays = ycbcrImageArrays_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
     }
 
-    explicit operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
     }
@@ -78766,7 +89864,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &
-                            setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
+      setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
     {
       shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
       return *this;
@@ -78824,6 +89922,7 @@
   {
     using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
   };
+
   using PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
 
   struct PipelineCacheCreateInfo
@@ -78907,12 +90006,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineCacheCreateInfo *>( this );
     }
 
-    explicit operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineCacheCreateInfo *>( this );
     }
@@ -79009,7 +90108,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne &
-                            setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
+      setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
     {
       headerVersion = headerVersion_;
       return *this;
@@ -79131,33 +90230,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
-                            setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
+      setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
     {
       srcPremultiplied = srcPremultiplied_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
-                            setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
+      setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
     {
       dstPremultiplied = dstPremultiplied_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
-                            setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
+      setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
     {
       blendOverlap = blendOverlap_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
     }
@@ -79266,7 +90365,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT &
-                            setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
+      setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorWriteEnables = pColorWriteEnables_;
       return *this;
@@ -79283,12 +90382,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineColorWriteCreateInfoEXT *>( this );
     }
@@ -79375,19 +90474,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD &
-                            setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
+      setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
     {
       compilerControlFlags = compilerControlFlags_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD *>( this );
     }
 
-    explicit operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD *>( this );
     }
@@ -79498,35 +90597,35 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
-                            setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageModulationMode = coverageModulationMode_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
-                            setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageModulationTableEnable = coverageModulationTableEnable_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
-                            setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageModulationTableCount = coverageModulationTableCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
-                            setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
+      setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
     {
       pCoverageModulationTable = pCoverageModulationTable_;
       return *this;
@@ -79543,12 +90642,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV *>( this );
     }
@@ -79649,26 +90748,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
-                            setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageReductionMode = coverageReductionMode_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV *>( this );
     }
@@ -79762,14 +90861,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
-                            setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
+      setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       coverageToColorEnable = coverageToColorEnable_;
       return *this;
@@ -79782,12 +90881,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV *>( this );
     }
@@ -79841,6 +90940,103 @@
     using Type = PipelineCoverageToColorStateCreateInfoNV;
   };
 
+  struct PipelineCreateFlags2CreateInfoKHR
+  {
+    using NativeType = VkPipelineCreateFlags2CreateInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineCreateFlags2CreateInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ = {},
+                                                            const void *                                  pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PipelineCreateFlags2CreateInfoKHR( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineCreateFlags2CreateInfoKHR( *reinterpret_cast<PipelineCreateFlags2CreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    PipelineCreateFlags2CreateInfoKHR & operator=( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PipelineCreateFlags2CreateInfoKHR & operator=( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPipelineCreateFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR *>( this );
+    }
+
+    operator VkPipelineCreateFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PipelineCreateFlags2CreateInfoKHR const & ) const = default;
+#else
+    bool operator==( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
+#  endif
+    }
+
+    bool operator!=( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType           sType = StructureType::ePipelineCreateFlags2CreateInfoKHR;
+    const void *                                  pNext = {};
+    VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePipelineCreateFlags2CreateInfoKHR>
+  {
+    using Type = PipelineCreateFlags2CreateInfoKHR;
+  };
+
   struct PipelineCreationFeedback
   {
     using NativeType = VkPipelineCreationFeedback;
@@ -79913,6 +91109,7 @@
     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags    = {};
     uint64_t                                            duration = {};
   };
+
   using PipelineCreationFeedbackEXT = PipelineCreationFeedback;
 
   struct PipelineCreationFeedbackCreateInfo
@@ -79971,14 +91168,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
-                            setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
+      setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
     {
       pPipelineCreationFeedback = pPipelineCreationFeedback_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
-                            setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
       return *this;
@@ -80062,6 +91259,7 @@
   {
     using Type = PipelineCreationFeedbackCreateInfo;
   };
+
   using PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
 
   struct PipelineDiscardRectangleStateCreateInfoEXT
@@ -80124,14 +91322,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
-                            setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
+      setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
     {
       discardRectangleMode = discardRectangleMode_;
       return *this;
@@ -80144,7 +91342,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
-                            setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
+      setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
     {
       pDiscardRectangles = pDiscardRectangles_;
       return *this;
@@ -80161,12 +91359,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
     }
@@ -80275,12 +91473,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineExecutableInfoKHR *>( this );
     }
 
-    explicit operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineExecutableInfoKHR *>( this );
     }
@@ -80380,12 +91578,12 @@
       return *this;
     }
 
-    explicit operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR *>( this );
     }
 
-    explicit operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( this );
     }
@@ -80480,12 +91678,12 @@
       return *this;
     }
 
-    explicit operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR *>( this );
     }
 
-    explicit operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( this );
     }
@@ -80642,12 +91840,12 @@
       return *this;
     }
 
-    explicit operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR *>( this );
     }
 
-    explicit operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineExecutableStatisticKHR *>( this );
     }
@@ -80730,33 +91928,33 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
-                            setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRateType = shadingRateType_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
-                            setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRate = shadingRate_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
-                            setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
+      setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
     {
       combinerOps = combinerOps_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
     }
@@ -80854,26 +92052,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
-                            setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentSize = fragmentSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
-                            setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
+      setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
     {
       combinerOps = combinerOps_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
     }
 
-    explicit operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
     }
@@ -80924,6 +92122,117 @@
     using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
   };
 
+  struct PipelineIndirectDeviceAddressInfoNV
+  {
+    using NativeType = VkPipelineIndirectDeviceAddressInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineIndirectDeviceAddressInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      PipelineIndirectDeviceAddressInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
+                                           VULKAN_HPP_NAMESPACE::Pipeline          pipeline_          = {},
+                                           const void *                            pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pipelineBindPoint( pipelineBindPoint_ )
+      , pipeline( pipeline_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PipelineIndirectDeviceAddressInfoNV( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PipelineIndirectDeviceAddressInfoNV( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineIndirectDeviceAddressInfoNV( *reinterpret_cast<PipelineIndirectDeviceAddressInfoNV const *>( &rhs ) )
+    {
+    }
+
+    PipelineIndirectDeviceAddressInfoNV & operator=( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PipelineIndirectDeviceAddressInfoNV & operator=( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV &
+      setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipelineBindPoint = pipelineBindPoint_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipeline = pipeline_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPipelineIndirectDeviceAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( this );
+    }
+
+    operator VkPipelineIndirectDeviceAddressInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPipelineIndirectDeviceAddressInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
+               VULKAN_HPP_NAMESPACE::Pipeline const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pipelineBindPoint, pipeline );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PipelineIndirectDeviceAddressInfoNV const & ) const = default;
+#else
+    bool operator==( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline );
+#  endif
+    }
+
+    bool operator!=( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::ePipelineIndirectDeviceAddressInfoNV;
+    const void *                            pNext             = {};
+    VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
+    VULKAN_HPP_NAMESPACE::Pipeline          pipeline          = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePipelineIndirectDeviceAddressInfoNV>
+  {
+    using Type = PipelineIndirectDeviceAddressInfoNV;
+  };
+
   struct PipelineInfoKHR
   {
     using NativeType = VkPipelineInfoKHR;
@@ -80965,12 +92274,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineInfoKHR *>( this );
     }
 
-    explicit operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineInfoKHR *>( this );
     }
@@ -81016,6 +92325,7 @@
   {
     using Type = PipelineInfoKHR;
   };
+
   using PipelineInfoEXT = PipelineInfoKHR;
 
   struct PushConstantRange
@@ -81064,12 +92374,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPushConstantRange *>( this );
     }
 
-    explicit operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
+    operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPushConstantRange *>( this );
     }
@@ -81206,7 +92516,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo &
-                            setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
+      setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
     {
       pPushConstantRanges = pPushConstantRanges_;
       return *this;
@@ -81223,12 +92533,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineLayoutCreateInfo *>( this );
     }
 
-    explicit operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineLayoutCreateInfo *>( this );
     }
@@ -81287,130 +92597,6 @@
     using Type = PipelineLayoutCreateInfo;
   };
 
-  struct PipelineLibraryCreateInfoKHR
-  {
-    using NativeType = VkPipelineLibraryCreateInfoKHR;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineLibraryCreateInfoKHR;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t                               libraryCount_ = {},
-                                                       const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_   = {},
-                                                       const void *                           pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , libraryCount( libraryCount_ )
-      , pLibraries( pLibraries_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
-      : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
-    {
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_,
-                                  const void *                                                                                pNext_ = nullptr )
-      : pNext( pNext_ ), libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
-    {
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      libraryCount = libraryCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pLibraries = pLibraries_;
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    PipelineLibraryCreateInfoKHR &
-      setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      libraryCount = static_cast<uint32_t>( libraries_.size() );
-      pLibraries   = libraries_.data();
-      return *this;
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR *>( this );
-    }
-
-    explicit operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR *>( this );
-    }
-
-#if defined( VULKAN_HPP_USE_REFLECT )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, libraryCount, pLibraries );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default;
-#else
-    bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( libraryCount == rhs.libraryCount ) && ( pLibraries == rhs.pLibraries );
-#  endif
-    }
-
-    bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType    sType        = StructureType::ePipelineLibraryCreateInfoKHR;
-    const void *                           pNext        = {};
-    uint32_t                               libraryCount = {};
-    const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries   = {};
-  };
-
-  template <>
-  struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
-  {
-    using Type = PipelineLibraryCreateInfoKHR;
-  };
-
   struct PipelinePropertiesIdentifierEXT
   {
     using NativeType = VkPipelinePropertiesIdentifierEXT;
@@ -81554,7 +92740,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -81568,19 +92754,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
-                            setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
+      setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
     {
       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
     }
@@ -81677,26 +92863,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
-                            setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
+      setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       depthClipEnable = depthClipEnable_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
     }
@@ -81793,14 +92979,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
-                            setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
+      setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
     {
       lineRasterizationMode = lineRasterizationMode_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
-                            setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
+      setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       stippledLineEnable = stippledLineEnable_;
       return *this;
@@ -81819,12 +93005,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
     }
@@ -81924,19 +93110,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT &
-                            setProvokingVertexMode( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
+      setProvokingVertexMode( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
     {
       provokingVertexMode = provokingVertexMode_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
     }
@@ -82024,19 +93210,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD &
-                            setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
+      setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
     {
       rasterizationOrder = rasterizationOrder_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
     }
 
-    explicit operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
     }
@@ -82125,7 +93311,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -82138,12 +93324,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
     }
@@ -82269,7 +93455,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
-                            setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
+      setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorAttachmentFormats = pColorAttachmentFormats_;
       return *this;
@@ -82292,7 +93478,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
-                            setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
+      setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
     {
       stencilAttachmentFormat = stencilAttachmentFormat_;
       return *this;
@@ -82362,6 +93548,7 @@
   {
     using Type = PipelineRenderingCreateInfo;
   };
+
   using PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
 
   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
@@ -82405,19 +93592,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV &
-                            setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
+      setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       representativeFragmentTestEnable = representativeFragmentTestEnable_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
     }
@@ -82510,21 +93697,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
-                            setStorageBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ ) VULKAN_HPP_NOEXCEPT
+      setStorageBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ ) VULKAN_HPP_NOEXCEPT
     {
       storageBuffers = storageBuffers_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
-                            setUniformBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ ) VULKAN_HPP_NOEXCEPT
+      setUniformBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ ) VULKAN_HPP_NOEXCEPT
     {
       uniformBuffers = uniformBuffers_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
-                            setVertexInputs( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ ) VULKAN_HPP_NOEXCEPT
+      setVertexInputs( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexInputs = vertexInputs_;
       return *this;
@@ -82639,26 +93826,26 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
-                            setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationsEnable = sampleLocationsEnable_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
-                            setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationsInfo = sampleLocationsInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
     }
 
-    explicit operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
     }
@@ -82834,7 +94021,122 @@
   {
     using Type = PipelineShaderStageModuleIdentifierCreateInfoEXT;
   };
-  using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct PipelineShaderStageNodeCreateInfoAMDX
+  {
+    using NativeType = VkPipelineShaderStageNodeCreateInfoAMDX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      PipelineShaderStageNodeCreateInfoAMDX( const char * pName_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pName( pName_ )
+      , index( index_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PipelineShaderStageNodeCreateInfoAMDX( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PipelineShaderStageNodeCreateInfoAMDX( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineShaderStageNodeCreateInfoAMDX( *reinterpret_cast<PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs ) )
+    {
+    }
+
+    PipelineShaderStageNodeCreateInfoAMDX & operator=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PipelineShaderStageNodeCreateInfoAMDX & operator=( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs );
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pName = pName_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
+    {
+      index = index_;
+      return *this;
+    }
+#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPipelineShaderStageNodeCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( this );
+    }
+
+    operator VkPipelineShaderStageNodeCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPipelineShaderStageNodeCreateInfoAMDX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, uint32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pName, index );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( pName != rhs.pName )
+        if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
+          return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( auto cmp = index <=> rhs.index; cmp != 0 )
+        return cmp;
+
+      return std::strong_ordering::equivalent;
+    }
+#  endif
+
+    bool operator==( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( index == rhs.index );
+    }
+
+    bool operator!=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
+    const void *                        pNext = {};
+    const char *                        pName = {};
+    uint32_t                            index = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePipelineShaderStageNodeCreateInfoAMDX>
+  {
+    using Type = PipelineShaderStageNodeCreateInfoAMDX;
+  };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   struct PipelineShaderStageRequiredSubgroupSizeCreateInfo
   {
@@ -82919,7 +94221,9 @@
   {
     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
   };
+
   using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
+  using ShaderRequiredSubgroupSizeCreateInfoEXT              = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
 
   struct PipelineTessellationDomainOriginStateCreateInfo
   {
@@ -82962,19 +94266,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo &
-                            setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
+      setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
     {
       domainOrigin = domainOrigin_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
     }
 
-    explicit operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
     }
@@ -83020,57 +94324,58 @@
   {
     using Type = PipelineTessellationDomainOriginStateCreateInfo;
   };
+
   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
 
-  struct VertexInputBindingDivisorDescriptionEXT
+  struct VertexInputBindingDivisorDescriptionKHR
   {
-    using NativeType = VkVertexInputBindingDivisorDescriptionEXT;
+    using NativeType = VkVertexInputBindingDivisorDescriptionKHR;
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {}, uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionKHR( uint32_t binding_ = {}, uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
       : binding( binding_ )
       , divisor( divisor_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionKHR( VertexInputBindingDivisorDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast<VertexInputBindingDivisorDescriptionEXT const *>( &rhs ) )
+    VertexInputBindingDivisorDescriptionKHR( VkVertexInputBindingDivisorDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VertexInputBindingDivisorDescriptionKHR( *reinterpret_cast<VertexInputBindingDivisorDescriptionKHR const *>( &rhs ) )
     {
     }
 
-    VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VertexInputBindingDivisorDescriptionKHR & operator=( VertexInputBindingDivisorDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VertexInputBindingDivisorDescriptionKHR & operator=( VkVertexInputBindingDivisorDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR const *>( &rhs );
       return *this;
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionKHR & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
     {
       binding = binding_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionKHR & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
     {
       divisor = divisor_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputBindingDivisorDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT *>( this );
+      return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionKHR *>( this );
     }
 
-    explicit operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputBindingDivisorDescriptionKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT *>( this );
+      return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionKHR *>( this );
     }
 
 #if defined( VULKAN_HPP_USE_REFLECT )
@@ -83086,9 +94391,9 @@
 #endif
 
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VertexInputBindingDivisorDescriptionEXT const & ) const = default;
+    auto operator<=>( VertexInputBindingDivisorDescriptionKHR const & ) const = default;
 #else
-    bool operator==( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VertexInputBindingDivisorDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -83097,7 +94402,7 @@
 #  endif
     }
 
-    bool operator!=( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VertexInputBindingDivisorDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
@@ -83108,17 +94413,19 @@
     uint32_t divisor = {};
   };
 
-  struct PipelineVertexInputDivisorStateCreateInfoEXT
+  using VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionKHR;
+
+  struct PipelineVertexInputDivisorStateCreateInfoKHR
   {
-    using NativeType = VkPipelineVertexInputDivisorStateCreateInfoEXT;
+    using NativeType = VkPipelineVertexInputDivisorStateCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineVertexInputDivisorStateCreateInfoKHR;
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
-      PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t                                                              vertexBindingDivisorCount_ = {},
-                                                    const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_    = {},
+      PipelineVertexInputDivisorStateCreateInfoKHR( uint32_t                                                              vertexBindingDivisorCount_ = {},
+                                                    const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR * pVertexBindingDivisors_    = {},
                                                     const void *                                                          pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , vertexBindingDivisorCount( vertexBindingDivisorCount_ )
@@ -83126,16 +94433,16 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoKHR( PipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs ) )
+    PipelineVertexInputDivisorStateCreateInfoKHR( VkPipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineVertexInputDivisorStateCreateInfoKHR( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoKHR const *>( &rhs ) )
     {
     }
 
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    PipelineVertexInputDivisorStateCreateInfoEXT(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_,
+    PipelineVertexInputDivisorStateCreateInfoKHR(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR> const & vertexBindingDivisors_,
       const void *                                                                                                               pNext_ = nullptr )
       : pNext( pNext_ )
       , vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) )
@@ -83144,39 +94451,39 @@
     }
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    PipelineVertexInputDivisorStateCreateInfoKHR & operator=( PipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    PipelineVertexInputDivisorStateCreateInfoKHR & operator=( VkPipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR const *>( &rhs );
       return *this;
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
-                            setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoKHR &
+      setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
     {
       vertexBindingDivisorCount = vertexBindingDivisorCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
-      setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoKHR &
+      setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR * pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
     {
       pVertexBindingDivisors = pVertexBindingDivisors_;
       return *this;
     }
 
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
+    PipelineVertexInputDivisorStateCreateInfoKHR & setVertexBindingDivisors(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR> const & vertexBindingDivisors_ )
       VULKAN_HPP_NOEXCEPT
     {
       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
@@ -83186,14 +94493,14 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineVertexInputDivisorStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
+      return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoKHR *>( this );
     }
 
-    explicit operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineVertexInputDivisorStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
+      return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoKHR *>( this );
     }
 
 #if defined( VULKAN_HPP_USE_REFLECT )
@@ -83203,7 +94510,7 @@
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * const &>
+               const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR * const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -83212,9 +94519,9 @@
 #endif
 
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const & ) const = default;
+    auto operator<=>( PipelineVertexInputDivisorStateCreateInfoKHR const & ) const = default;
 #else
-    bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( PipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -83224,25 +94531,27 @@
 #  endif
     }
 
-    bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( PipelineVertexInputDivisorStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 #endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                   sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                                   sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoKHR;
     const void *                                                          pNext = {};
     uint32_t                                                              vertexBindingDivisorCount = {};
-    const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors    = {};
+    const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR * pVertexBindingDivisors    = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
+  struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoKHR>
   {
-    using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
+    using Type = PipelineVertexInputDivisorStateCreateInfoKHR;
   };
 
+  using PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoKHR;
+
   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
   {
     using NativeType = VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
@@ -83302,21 +94611,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
-                            setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
+      setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleOrderType = sampleOrderType_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
-                            setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
+      setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
     {
       customSampleOrderCount = customSampleOrderCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
-                            setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
+      setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
     {
       pCustomSampleOrders = pCustomSampleOrders_;
       return *this;
@@ -83333,12 +94642,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
     }
@@ -83432,7 +94741,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT &
-                            setNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
+      setNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
     {
       negativeOneToOne = negativeOneToOne_;
       return *this;
@@ -83548,7 +94857,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV &
-                            setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
+      setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
     {
       pExclusiveScissors = pExclusiveScissors_;
       return *this;
@@ -83565,12 +94874,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
     }
@@ -83682,12 +94991,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkShadingRatePaletteNV *>( this );
     }
 
-    explicit operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
+    operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkShadingRatePaletteNV *>( this );
     }
@@ -83785,7 +95094,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
-                            setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRateImageEnable = shadingRateImageEnable_;
       return *this;
@@ -83798,7 +95107,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
-                            setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
+      setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
     {
       pShadingRatePalettes = pShadingRatePalettes_;
       return *this;
@@ -83815,12 +95124,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
     }
@@ -83930,12 +95239,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkViewportSwizzleNV *>( this );
     }
 
-    explicit operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
+    operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkViewportSwizzleNV *>( this );
     }
@@ -84033,7 +95342,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
-                            setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -84046,7 +95355,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
-                            setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
+      setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
     {
       pViewportSwizzles = pViewportSwizzles_;
       return *this;
@@ -84063,12 +95372,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
     }
@@ -84160,12 +95469,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkViewportWScalingNV *>( this );
     }
 
-    explicit operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
+    operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkViewportWScalingNV *>( this );
     }
@@ -84261,7 +95570,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
-                            setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
+      setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       viewportWScalingEnable = viewportWScalingEnable_;
       return *this;
@@ -84274,7 +95583,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
-                            setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
+      setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
     {
       pViewportWScalings = pViewportWScalings_;
       return *this;
@@ -84291,12 +95600,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV *>( this );
     }
 
-    explicit operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV *>( this );
     }
@@ -84395,12 +95704,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentFrameTokenGGP *>( this );
     }
 
-    explicit operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentFrameTokenGGP *>( this );
     }
@@ -84726,12 +96035,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentInfoKHR *>( this );
     }
 
-    explicit operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentInfoKHR *>( this );
     }
@@ -84840,12 +96149,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRectLayerKHR *>( this );
     }
 
-    explicit operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRectLayerKHR *>( this );
     }
@@ -84941,12 +96250,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentRegionKHR *>( this );
     }
 
-    explicit operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentRegionKHR *>( this );
     }
@@ -85054,12 +96363,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentRegionsKHR *>( this );
     }
 
-    explicit operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentRegionsKHR *>( this );
     }
@@ -85145,12 +96454,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentTimeGOOGLE *>( this );
     }
 
-    explicit operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentTimeGOOGLE *>( this );
     }
@@ -85261,12 +96570,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
+    operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE *>( this );
     }
 
-    explicit operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
+    operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkPresentTimesInfoGOOGLE *>( this );
     }
@@ -85410,6 +96719,7 @@
   {
     using Type = PrivateDataSlotCreateInfo;
   };
+
   using PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
 
   struct ProtectedSubmitInfo
@@ -85455,12 +96765,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkProtectedSubmitInfo *>( this );
     }
 
-    explicit operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkProtectedSubmitInfo *>( this );
     }
@@ -85507,6 +96817,798 @@
     using Type = ProtectedSubmitInfo;
   };
 
+  struct PushConstantsInfoKHR
+  {
+    using NativeType = VkPushConstantsInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePushConstantsInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PushConstantsInfoKHR( VULKAN_HPP_NAMESPACE::PipelineLayout   layout_     = {},
+                                               VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
+                                               uint32_t                               offset_     = {},
+                                               uint32_t                               size_       = {},
+                                               const void *                           pValues_    = {},
+                                               const void *                           pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , layout( layout_ )
+      , stageFlags( stageFlags_ )
+      , offset( offset_ )
+      , size( size_ )
+      , pValues( pValues_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PushConstantsInfoKHR( PushConstantsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PushConstantsInfoKHR( VkPushConstantsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PushConstantsInfoKHR( *reinterpret_cast<PushConstantsInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    PushConstantsInfoKHR( VULKAN_HPP_NAMESPACE::PipelineLayout                           layout_,
+                          VULKAN_HPP_NAMESPACE::ShaderStageFlags                         stageFlags_,
+                          uint32_t                                                       offset_,
+                          VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & values_,
+                          const void *                                                   pNext_ = nullptr )
+      : pNext( pNext_ )
+      , layout( layout_ )
+      , stageFlags( stageFlags_ )
+      , offset( offset_ )
+      , size( static_cast<uint32_t>( values_.size() * sizeof( T ) ) )
+      , pValues( values_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    PushConstantsInfoKHR & operator=( PushConstantsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PushConstantsInfoKHR & operator=( VkPushConstantsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      offset = offset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantsInfoKHR & setPValues( const void * pValues_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pValues = pValues_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    PushConstantsInfoKHR & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & values_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size    = static_cast<uint32_t>( values_.size() * sizeof( T ) );
+      pValues = values_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPushConstantsInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPushConstantsInfoKHR *>( this );
+    }
+
+    operator VkPushConstantsInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPushConstantsInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               uint32_t const &,
+               uint32_t const &,
+               const void * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, layout, stageFlags, offset, size, pValues );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PushConstantsInfoKHR const & ) const = default;
+#else
+    bool operator==( PushConstantsInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( layout == rhs.layout ) && ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) &&
+             ( size == rhs.size ) && ( pValues == rhs.pValues );
+#  endif
+    }
+
+    bool operator!=( PushConstantsInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType    sType      = StructureType::ePushConstantsInfoKHR;
+    const void *                           pNext      = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout   layout     = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
+    uint32_t                               offset     = {};
+    uint32_t                               size       = {};
+    const void *                           pValues    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePushConstantsInfoKHR>
+  {
+    using Type = PushConstantsInfoKHR;
+  };
+
+  struct WriteDescriptorSet
+  {
+    using NativeType = VkWriteDescriptorSet;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eWriteDescriptorSet;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet               dstSet_          = {},
+                                             uint32_t                                          dstBinding_      = {},
+                                             uint32_t                                          dstArrayElement_ = {},
+                                             uint32_t                                          descriptorCount_ = {},
+                                             VULKAN_HPP_NAMESPACE::DescriptorType              descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
+                                             const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_     = {},
+                                             const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_   = {},
+                                             const VULKAN_HPP_NAMESPACE::BufferView *           pTexelBufferView_ = {},
+                                             const void *                                       pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , dstSet( dstSet_ )
+      , dstBinding( dstBinding_ )
+      , dstArrayElement( dstArrayElement_ )
+      , descriptorCount( descriptorCount_ )
+      , descriptorType( descriptorType_ )
+      , pImageInfo( pImageInfo_ )
+      , pBufferInfo( pBufferInfo_ )
+      , pTexelBufferView( pTexelBufferView_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) ) {}
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet                                                                     dstSet_,
+                        uint32_t                                                                                                dstBinding_,
+                        uint32_t                                                                                                dstArrayElement_,
+                        VULKAN_HPP_NAMESPACE::DescriptorType                                                                    descriptorType_,
+                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const &  imageInfo_,
+                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_      = {},
+                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const &           texelBufferView_ = {},
+                        const void *                                                                                            pNext_           = nullptr )
+      : pNext( pNext_ )
+      , dstSet( dstSet_ )
+      , dstBinding( dstBinding_ )
+      , dstArrayElement( dstArrayElement_ )
+      , descriptorCount( static_cast<uint32_t>( !imageInfo_.empty()    ? imageInfo_.size()
+                                                : !bufferInfo_.empty() ? bufferInfo_.size()
+                                                                       : texelBufferView_.size() ) )
+      , descriptorType( descriptorType_ )
+      , pImageInfo( imageInfo_.data() )
+      , pBufferInfo( bufferInfo_.data() )
+      , pTexelBufferView( texelBufferView_.data() )
+    {
+#    ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) <= 1 );
+#    else
+      if ( 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) )
+      {
+        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
+                          "::WriteDescriptorSet::WriteDescriptorSet: 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() )" );
+      }
+#    endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstSet = dstSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstBinding = dstBinding_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dstArrayElement = dstArrayElement_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorCount = descriptorCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorType = descriptorType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pImageInfo = pImageInfo_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    WriteDescriptorSet &
+      setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
+      pImageInfo      = imageInfo_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pBufferInfo = pBufferInfo_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    WriteDescriptorSet &
+      setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
+      pBufferInfo     = bufferInfo_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pTexelBufferView = pTexelBufferView_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    WriteDescriptorSet &
+      setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorCount  = static_cast<uint32_t>( texelBufferView_.size() );
+      pTexelBufferView = texelBufferView_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkWriteDescriptorSet *>( this );
+    }
+
+    operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkWriteDescriptorSet *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::DescriptorSet const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::DescriptorType const &,
+               const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * const &,
+               const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * const &,
+               const VULKAN_HPP_NAMESPACE::BufferView * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, dstSet, dstBinding, dstArrayElement, descriptorCount, descriptorType, pImageInfo, pBufferInfo, pTexelBufferView );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( WriteDescriptorSet const & ) const = default;
+#else
+    bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
+             ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) &&
+             ( pImageInfo == rhs.pImageInfo ) && ( pBufferInfo == rhs.pBufferInfo ) && ( pTexelBufferView == rhs.pTexelBufferView );
+#  endif
+    }
+
+    bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                sType            = StructureType::eWriteDescriptorSet;
+    const void *                                       pNext            = {};
+    VULKAN_HPP_NAMESPACE::DescriptorSet                dstSet           = {};
+    uint32_t                                           dstBinding       = {};
+    uint32_t                                           dstArrayElement  = {};
+    uint32_t                                           descriptorCount  = {};
+    VULKAN_HPP_NAMESPACE::DescriptorType               descriptorType   = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
+    const VULKAN_HPP_NAMESPACE::DescriptorImageInfo *  pImageInfo       = {};
+    const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo      = {};
+    const VULKAN_HPP_NAMESPACE::BufferView *           pTexelBufferView = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eWriteDescriptorSet>
+  {
+    using Type = WriteDescriptorSet;
+  };
+
+  struct PushDescriptorSetInfoKHR
+  {
+    using NativeType = VkPushDescriptorSetInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePushDescriptorSetInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PushDescriptorSetInfoKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags           stageFlags_           = {},
+                                                   VULKAN_HPP_NAMESPACE::PipelineLayout             layout_               = {},
+                                                   uint32_t                                         set_                  = {},
+                                                   uint32_t                                         descriptorWriteCount_ = {},
+                                                   const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites_    = {},
+                                                   const void *                                     pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , set( set_ )
+      , descriptorWriteCount( descriptorWriteCount_ )
+      , pDescriptorWrites( pDescriptorWrites_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PushDescriptorSetInfoKHR( PushDescriptorSetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PushDescriptorSetInfoKHR( VkPushDescriptorSetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PushDescriptorSetInfoKHR( *reinterpret_cast<PushDescriptorSetInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PushDescriptorSetInfoKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags                                                                stageFlags_,
+                              VULKAN_HPP_NAMESPACE::PipelineLayout                                                                  layout_,
+                              uint32_t                                                                                              set_,
+                              VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites_,
+                              const void *                                                                                          pNext_ = nullptr )
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , set( set_ )
+      , descriptorWriteCount( static_cast<uint32_t>( descriptorWrites_.size() ) )
+      , pDescriptorWrites( descriptorWrites_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    PushDescriptorSetInfoKHR & operator=( PushDescriptorSetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PushDescriptorSetInfoKHR & operator=( VkPushDescriptorSetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
+    {
+      set = set_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR & setDescriptorWriteCount( uint32_t descriptorWriteCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorWriteCount = descriptorWriteCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetInfoKHR &
+      setPDescriptorWrites( const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pDescriptorWrites = pDescriptorWrites_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    PushDescriptorSetInfoKHR & setDescriptorWrites(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorWriteCount = static_cast<uint32_t>( descriptorWrites_.size() );
+      pDescriptorWrites    = descriptorWrites_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPushDescriptorSetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPushDescriptorSetInfoKHR *>( this );
+    }
+
+    operator VkPushDescriptorSetInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPushDescriptorSetInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stageFlags, layout, set, descriptorWriteCount, pDescriptorWrites );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PushDescriptorSetInfoKHR const & ) const = default;
+#else
+    bool operator==( PushDescriptorSetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageFlags == rhs.stageFlags ) && ( layout == rhs.layout ) && ( set == rhs.set ) &&
+             ( descriptorWriteCount == rhs.descriptorWriteCount ) && ( pDescriptorWrites == rhs.pDescriptorWrites );
+#  endif
+    }
+
+    bool operator!=( PushDescriptorSetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType              sType                = StructureType::ePushDescriptorSetInfoKHR;
+    const void *                                     pNext                = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags           stageFlags           = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout             layout               = {};
+    uint32_t                                         set                  = {};
+    uint32_t                                         descriptorWriteCount = {};
+    const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePushDescriptorSetInfoKHR>
+  {
+    using Type = PushDescriptorSetInfoKHR;
+  };
+
+  struct PushDescriptorSetWithTemplateInfoKHR
+  {
+    using NativeType = VkPushDescriptorSetWithTemplateInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePushDescriptorSetWithTemplateInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PushDescriptorSetWithTemplateInfoKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate_ = {},
+                                                               VULKAN_HPP_NAMESPACE::PipelineLayout           layout_                   = {},
+                                                               uint32_t                                       set_                      = {},
+                                                               const void *                                   pData_                    = {},
+                                                               const void *                                   pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , descriptorUpdateTemplate( descriptorUpdateTemplate_ )
+      , layout( layout_ )
+      , set( set_ )
+      , pData( pData_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PushDescriptorSetWithTemplateInfoKHR( PushDescriptorSetWithTemplateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PushDescriptorSetWithTemplateInfoKHR( VkPushDescriptorSetWithTemplateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PushDescriptorSetWithTemplateInfoKHR( *reinterpret_cast<PushDescriptorSetWithTemplateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    PushDescriptorSetWithTemplateInfoKHR & operator=( PushDescriptorSetWithTemplateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PushDescriptorSetWithTemplateInfoKHR & operator=( VkPushDescriptorSetWithTemplateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetWithTemplateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetWithTemplateInfoKHR &
+      setDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate_ ) VULKAN_HPP_NOEXCEPT
+    {
+      descriptorUpdateTemplate = descriptorUpdateTemplate_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetWithTemplateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetWithTemplateInfoKHR & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
+    {
+      set = set_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushDescriptorSetWithTemplateInfoKHR & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pData = pData_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPushDescriptorSetWithTemplateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPushDescriptorSetWithTemplateInfoKHR *>( this );
+    }
+
+    operator VkPushDescriptorSetWithTemplateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPushDescriptorSetWithTemplateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &,
+               const void * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, descriptorUpdateTemplate, layout, set, pData );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PushDescriptorSetWithTemplateInfoKHR const & ) const = default;
+#else
+    bool operator==( PushDescriptorSetWithTemplateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorUpdateTemplate == rhs.descriptorUpdateTemplate ) && ( layout == rhs.layout ) &&
+             ( set == rhs.set ) && ( pData == rhs.pData );
+#  endif
+    }
+
+    bool operator!=( PushDescriptorSetWithTemplateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType            sType                    = StructureType::ePushDescriptorSetWithTemplateInfoKHR;
+    const void *                                   pNext                    = {};
+    VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout           layout                   = {};
+    uint32_t                                       set                      = {};
+    const void *                                   pData                    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePushDescriptorSetWithTemplateInfoKHR>
+  {
+    using Type = PushDescriptorSetWithTemplateInfoKHR;
+  };
+
+  struct QueryLowLatencySupportNV
+  {
+    using NativeType = VkQueryLowLatencySupportNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eQueryLowLatencySupportNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( void * pQueriedLowLatencyData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , pQueriedLowLatencyData( pQueriedLowLatencyData_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    QueryLowLatencySupportNV( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : QueryLowLatencySupportNV( *reinterpret_cast<QueryLowLatencySupportNV const *>( &rhs ) )
+    {
+    }
+
+    QueryLowLatencySupportNV & operator=( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    QueryLowLatencySupportNV & operator=( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPQueriedLowLatencyData( void * pQueriedLowLatencyData_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pQueriedLowLatencyData = pQueriedLowLatencyData_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkQueryLowLatencySupportNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkQueryLowLatencySupportNV *>( this );
+    }
+
+    operator VkQueryLowLatencySupportNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkQueryLowLatencySupportNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pQueriedLowLatencyData );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( QueryLowLatencySupportNV const & ) const = default;
+#else
+    bool operator==( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pQueriedLowLatencyData == rhs.pQueriedLowLatencyData );
+#  endif
+    }
+
+    bool operator!=( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                  = StructureType::eQueryLowLatencySupportNV;
+    const void *                        pNext                  = {};
+    void *                              pQueriedLowLatencyData = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eQueryLowLatencySupportNV>
+  {
+    using Type = QueryLowLatencySupportNV;
+  };
+
   struct QueryPoolCreateInfo
   {
     using NativeType = VkQueryPoolCreateInfo;
@@ -85569,19 +97671,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo &
-                            setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
+      setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
     {
       pipelineStatistics = pipelineStatistics_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueryPoolCreateInfo *>( this );
     }
 
-    explicit operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueryPoolCreateInfo *>( this );
     }
@@ -85720,12 +97822,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR *>( this );
     }
@@ -85815,19 +97917,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL &
-                            setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
+      setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
     {
       performanceCountersSampling = performanceCountersSampling_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
     }
 
-    explicit operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
+    operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
     }
@@ -85873,8 +97975,107 @@
   {
     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
   };
+
   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
 
+  struct QueryPoolVideoEncodeFeedbackCreateInfoKHR
+  {
+    using NativeType = VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ = {},
+                                                                    const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , encodeFeedbackFlags( encodeFeedbackFlags_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    QueryPoolVideoEncodeFeedbackCreateInfoKHR( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : QueryPoolVideoEncodeFeedbackCreateInfoKHR( *reinterpret_cast<QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR &
+      setEncodeFeedbackFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      encodeFeedbackFlags = encodeFeedbackFlags_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR *>( this );
+    }
+
+    operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkQueryPoolVideoEncodeFeedbackCreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, encodeFeedbackFlags );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( encodeFeedbackFlags == rhs.encodeFeedbackFlags );
+#  endif
+    }
+
+    bool operator!=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType               = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
+    const void *                                      pNext               = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR>
+  {
+    using Type = QueryPoolVideoEncodeFeedbackCreateInfoKHR;
+  };
+
   struct QueueFamilyCheckpointProperties2NV
   {
     using NativeType = VkQueueFamilyCheckpointProperties2NV;
@@ -85906,12 +98107,12 @@
       return *this;
     }
 
-    explicit operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV *>( this );
     }
 
-    explicit operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueueFamilyCheckpointProperties2NV *>( this );
     }
@@ -85989,12 +98190,12 @@
       return *this;
     }
 
-    explicit operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV *>( this );
     }
 
-    explicit operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV *>( this );
     }
@@ -86053,21 +98254,21 @@
       QueueFamilyGlobalPriorityPropertiesKHR( uint32_t priorityCount_ = {},
                                               std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &
                                                      priorities_ = { { VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
-                                                                  VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } },
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
+                                                                       VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } },
                                               void * pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , priorityCount( priorityCount_ )
@@ -86167,6 +98368,7 @@
   {
     using Type = QueueFamilyGlobalPriorityPropertiesKHR;
   };
+
   using QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
 
   struct QueueFamilyProperties
@@ -86201,12 +98403,12 @@
       return *this;
     }
 
-    explicit operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueueFamilyProperties *>( this );
     }
 
-    explicit operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueueFamilyProperties *>( this );
     }
@@ -86280,12 +98482,12 @@
       return *this;
     }
 
-    explicit operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkQueueFamilyProperties2 *>( this );
     }
 
-    explicit operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
+    operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkQueueFamilyProperties2 *>( this );
     }
@@ -86331,9 +98533,9 @@
   {
     using Type = QueueFamilyProperties2;
   };
+
   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct QueueFamilyQueryResultStatusPropertiesKHR
   {
     using NativeType = VkQueueFamilyQueryResultStatusPropertiesKHR;
@@ -86341,7 +98543,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ = {},
                                                                     void *                       pNext_                    = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -86357,7 +98559,7 @@
     }
 
     QueueFamilyQueryResultStatusPropertiesKHR & operator=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     QueueFamilyQueryResultStatusPropertiesKHR & operator=( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -86375,35 +98577,35 @@
       return *reinterpret_cast<VkQueueFamilyQueryResultStatusPropertiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, queryResultStatusSupport );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( QueueFamilyQueryResultStatusPropertiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queryResultStatusSupport == rhs.queryResultStatusSupport );
-#    endif
+#  endif
     }
 
     bool operator!=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType                    = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
@@ -86416,9 +98618,7 @@
   {
     using Type = QueueFamilyQueryResultStatusPropertiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct QueueFamilyVideoPropertiesKHR
   {
     using NativeType = VkQueueFamilyVideoPropertiesKHR;
@@ -86426,7 +98626,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eQueueFamilyVideoPropertiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {},
                                                         void *                                            pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -86442,7 +98642,7 @@
     }
 
     QueueFamilyVideoPropertiesKHR & operator=( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     QueueFamilyVideoPropertiesKHR & operator=( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -86460,35 +98660,35 @@
       return *reinterpret_cast<VkQueueFamilyVideoPropertiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, videoCodecOperations );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( QueueFamilyVideoPropertiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperations == rhs.videoCodecOperations );
-#    endif
+#  endif
     }
 
     bool operator!=( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType               sType                = StructureType::eQueueFamilyVideoPropertiesKHR;
@@ -86501,7 +98701,6 @@
   {
     using Type = QueueFamilyVideoPropertiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   struct RayTracingShaderGroupCreateInfoKHR
   {
@@ -86513,10 +98712,10 @@
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(
       VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_                            = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
-      uint32_t                                           generalShader_                   = {},
-      uint32_t                                           closestHitShader_                = {},
-      uint32_t                                           anyHitShader_                    = {},
-      uint32_t                                           intersectionShader_              = {},
+      uint32_t                                           generalShader_                   = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
+      uint32_t                                           closestHitShader_                = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
+      uint32_t                                           anyHitShader_                    = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
+      uint32_t                                           intersectionShader_              = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
       const void *                                       pShaderGroupCaptureReplayHandle_ = {},
       const void *                                       pNext_                           = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -86583,19 +98782,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR &
-                            setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
+      setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
     {
       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR *>( this );
     }
 
-    explicit operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR *>( this );
     }
@@ -86643,10 +98842,10 @@
     VULKAN_HPP_NAMESPACE::StructureType                sType                           = StructureType::eRayTracingShaderGroupCreateInfoKHR;
     const void *                                       pNext                           = {};
     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type                            = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
-    uint32_t                                           generalShader                   = {};
-    uint32_t                                           closestHitShader                = {};
-    uint32_t                                           anyHitShader                    = {};
-    uint32_t                                           intersectionShader              = {};
+    uint32_t                                           generalShader                   = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
+    uint32_t                                           closestHitShader                = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
+    uint32_t                                           anyHitShader                    = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
+    uint32_t                                           intersectionShader              = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
     const void *                                       pShaderGroupCaptureReplayHandle = {};
   };
 
@@ -86703,19 +98902,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR &
-                            setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
+      setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
     {
       maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
     }
@@ -86867,7 +99066,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
-                            setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
+      setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
     {
       pStages = pStages_;
       return *this;
@@ -86890,7 +99089,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
-                            setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT
+      setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT
     {
       pGroups = pGroups_;
       return *this;
@@ -86913,7 +99112,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
-                            setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
+      setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pLibraryInfo = pLibraryInfo_;
       return *this;
@@ -86927,7 +99126,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
-                            setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
+      setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
     {
       pDynamicState = pDynamicState_;
       return *this;
@@ -86952,12 +99151,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( this );
     }
 
-    explicit operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR *>( this );
     }
@@ -87054,10 +99253,10 @@
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(
       VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_               = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
-      uint32_t                                           generalShader_      = {},
-      uint32_t                                           closestHitShader_   = {},
-      uint32_t                                           anyHitShader_       = {},
-      uint32_t                                           intersectionShader_ = {},
+      uint32_t                                           generalShader_      = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
+      uint32_t                                           closestHitShader_   = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
+      uint32_t                                           anyHitShader_       = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
+      uint32_t                                           intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
       const void *                                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , type( type_ )
@@ -87122,12 +99321,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV *>( this );
     }
 
-    explicit operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV *>( this );
     }
@@ -87173,10 +99372,10 @@
     VULKAN_HPP_NAMESPACE::StructureType                sType              = StructureType::eRayTracingShaderGroupCreateInfoNV;
     const void *                                       pNext              = {};
     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type               = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
-    uint32_t                                           generalShader      = {};
-    uint32_t                                           closestHitShader   = {};
-    uint32_t                                           anyHitShader       = {};
-    uint32_t                                           intersectionShader = {};
+    uint32_t                                           generalShader      = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
+    uint32_t                                           closestHitShader   = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
+    uint32_t                                           anyHitShader       = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
+    uint32_t                                           intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
   };
 
   template <>
@@ -87276,7 +99475,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
-                            setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
+      setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
     {
       pStages = pStages_;
       return *this;
@@ -87299,7 +99498,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
-                            setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
+      setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
     {
       pGroups = pGroups_;
       return *this;
@@ -87340,12 +99539,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( this );
     }
 
-    explicit operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV *>( this );
     }
@@ -87435,12 +99634,12 @@
       return *this;
     }
 
-    explicit operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE *>( this );
     }
 
-    explicit operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
+    operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( this );
     }
@@ -87688,12 +99887,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo *>( this );
     }
 
-    explicit operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo *>( this );
     }
@@ -87740,6 +99939,7 @@
   {
     using Type = RenderPassAttachmentBeginInfo;
   };
+
   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
 
   struct RenderPassBeginInfo
@@ -87844,12 +100044,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassBeginInfo *>( this );
     }
 
-    explicit operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassBeginInfo *>( this );
     }
@@ -88000,7 +100200,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
-                            setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pInputAttachments = pInputAttachments_;
       return *this;
@@ -88023,7 +100223,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
-                            setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorAttachments = pColorAttachments_;
       return *this;
@@ -88040,7 +100240,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
-                            setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pResolveAttachments = pResolveAttachments_;
       return *this;
@@ -88057,7 +100257,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
-                            setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
+      setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
     {
       pDepthStencilAttachment = pDepthStencilAttachment_;
       return *this;
@@ -88086,12 +100286,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassDescription *>( this );
     }
 
-    explicit operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassDescription *>( this );
     }
@@ -88240,12 +100440,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassDependency *>( this );
     }
 
-    explicit operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassDependency *>( this );
     }
@@ -88439,12 +100639,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassCreateInfo *>( this );
     }
 
-    explicit operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassCreateInfo *>( this );
     }
@@ -88625,7 +100825,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
-                            setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pInputAttachments = pInputAttachments_;
       return *this;
@@ -88648,7 +100848,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
-                            setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pColorAttachments = pColorAttachments_;
       return *this;
@@ -88665,7 +100865,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
-                            setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
+      setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
     {
       pResolveAttachments = pResolveAttachments_;
       return *this;
@@ -88682,7 +100882,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
-                            setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
+      setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
     {
       pDepthStencilAttachment = pDepthStencilAttachment_;
       return *this;
@@ -88711,12 +100911,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassDescription2 *>( this );
     }
 
-    explicit operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassDescription2 *>( this );
     }
@@ -88800,6 +101000,7 @@
   {
     using Type = SubpassDescription2;
   };
+
   using SubpassDescription2KHR = SubpassDescription2;
 
   struct SubpassDependency2
@@ -88900,12 +101101,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassDependency2 *>( this );
     }
 
-    explicit operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassDependency2 *>( this );
     }
@@ -88969,6 +101170,7 @@
   {
     using Type = SubpassDependency2;
   };
+
   using SubpassDependency2KHR = SubpassDependency2;
 
   struct RenderPassCreateInfo2
@@ -89141,12 +101343,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassCreateInfo2 *>( this );
     }
 
-    explicit operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassCreateInfo2 *>( this );
     }
@@ -89223,6 +101425,7 @@
   {
     using Type = RenderPassCreateInfo2;
   };
+
   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
 
   struct RenderPassCreationControlEXT
@@ -89430,7 +101633,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT &
-                            setPRenderPassFeedback( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ ) VULKAN_HPP_NOEXCEPT
+      setPRenderPassFeedback( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ ) VULKAN_HPP_NOEXCEPT
     {
       pRenderPassFeedback = pRenderPassFeedback_;
       return *this;
@@ -89535,12 +101738,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
     }
 
-    explicit operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
     }
@@ -89643,7 +101846,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo &
-                            setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
+      setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
     {
       pAspectReferences = pAspectReferences_;
       return *this;
@@ -89660,12 +101863,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo *>( this );
     }
 
-    explicit operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo *>( this );
     }
@@ -89716,6 +101919,7 @@
   {
     using Type = RenderPassInputAttachmentAspectCreateInfo;
   };
+
   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
 
   struct RenderPassMultiviewCreateInfo
@@ -89847,12 +102051,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo *>( this );
     }
 
-    explicit operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo *>( this );
     }
@@ -89912,6 +102116,7 @@
   {
     using Type = RenderPassMultiviewCreateInfo;
   };
+
   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
 
   struct SubpassSampleLocationsEXT
@@ -89950,19 +102155,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT &
-                            setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
+      setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       sampleLocationsInfo = sampleLocationsInfo_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassSampleLocationsEXT *>( this );
     }
 
-    explicit operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassSampleLocationsEXT *>( this );
     }
@@ -90062,7 +102267,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
-                            setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
+      setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
     {
       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
       return *this;
@@ -90087,7 +102292,7 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
-                            setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
+      setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
     {
       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
       return *this;
@@ -90112,12 +102317,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT *>( this );
     }
 
-    explicit operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT *>( this );
     }
@@ -90175,6 +102380,487 @@
     using Type = RenderPassSampleLocationsBeginInfoEXT;
   };
 
+  struct RenderPassStripeInfoARM
+  {
+    using NativeType = VkRenderPassStripeInfoARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eRenderPassStripeInfoARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR RenderPassStripeInfoARM( VULKAN_HPP_NAMESPACE::Rect2D stripeArea_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stripeArea( stripeArea_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR RenderPassStripeInfoARM( RenderPassStripeInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    RenderPassStripeInfoARM( VkRenderPassStripeInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : RenderPassStripeInfoARM( *reinterpret_cast<RenderPassStripeInfoARM const *>( &rhs ) )
+    {
+    }
+
+    RenderPassStripeInfoARM & operator=( RenderPassStripeInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    RenderPassStripeInfoARM & operator=( VkRenderPassStripeInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeInfoARM & setStripeArea( VULKAN_HPP_NAMESPACE::Rect2D const & stripeArea_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stripeArea = stripeArea_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkRenderPassStripeInfoARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkRenderPassStripeInfoARM *>( this );
+    }
+
+    operator VkRenderPassStripeInfoARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkRenderPassStripeInfoARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Rect2D const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stripeArea );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( RenderPassStripeInfoARM const & ) const = default;
+#else
+    bool operator==( RenderPassStripeInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stripeArea == rhs.stripeArea );
+#  endif
+    }
+
+    bool operator!=( RenderPassStripeInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType      = StructureType::eRenderPassStripeInfoARM;
+    const void *                        pNext      = {};
+    VULKAN_HPP_NAMESPACE::Rect2D        stripeArea = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eRenderPassStripeInfoARM>
+  {
+    using Type = RenderPassStripeInfoARM;
+  };
+
+  struct RenderPassStripeBeginInfoARM
+  {
+    using NativeType = VkRenderPassStripeBeginInfoARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eRenderPassStripeBeginInfoARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR RenderPassStripeBeginInfoARM( uint32_t                                              stripeInfoCount_ = {},
+                                                       const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM * pStripeInfos_    = {},
+                                                       const void *                                          pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stripeInfoCount( stripeInfoCount_ )
+      , pStripeInfos( pStripeInfos_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR RenderPassStripeBeginInfoARM( RenderPassStripeBeginInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    RenderPassStripeBeginInfoARM( VkRenderPassStripeBeginInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : RenderPassStripeBeginInfoARM( *reinterpret_cast<RenderPassStripeBeginInfoARM const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderPassStripeBeginInfoARM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM> const & stripeInfos_,
+                                  const void *                                                                                               pNext_ = nullptr )
+      : pNext( pNext_ ), stripeInfoCount( static_cast<uint32_t>( stripeInfos_.size() ) ), pStripeInfos( stripeInfos_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    RenderPassStripeBeginInfoARM & operator=( RenderPassStripeBeginInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    RenderPassStripeBeginInfoARM & operator=( VkRenderPassStripeBeginInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeBeginInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeBeginInfoARM & setStripeInfoCount( uint32_t stripeInfoCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stripeInfoCount = stripeInfoCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeBeginInfoARM &
+      setPStripeInfos( const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM * pStripeInfos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pStripeInfos = pStripeInfos_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderPassStripeBeginInfoARM & setStripeInfos(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM> const & stripeInfos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stripeInfoCount = static_cast<uint32_t>( stripeInfos_.size() );
+      pStripeInfos    = stripeInfos_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkRenderPassStripeBeginInfoARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkRenderPassStripeBeginInfoARM *>( this );
+    }
+
+    operator VkRenderPassStripeBeginInfoARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkRenderPassStripeBeginInfoARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::
+      tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stripeInfoCount, pStripeInfos );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( RenderPassStripeBeginInfoARM const & ) const = default;
+#else
+    bool operator==( RenderPassStripeBeginInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stripeInfoCount == rhs.stripeInfoCount ) && ( pStripeInfos == rhs.pStripeInfos );
+#  endif
+    }
+
+    bool operator!=( RenderPassStripeBeginInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                   sType           = StructureType::eRenderPassStripeBeginInfoARM;
+    const void *                                          pNext           = {};
+    uint32_t                                              stripeInfoCount = {};
+    const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM * pStripeInfos    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eRenderPassStripeBeginInfoARM>
+  {
+    using Type = RenderPassStripeBeginInfoARM;
+  };
+
+  struct SemaphoreSubmitInfo
+  {
+    using NativeType = VkSemaphoreSubmitInfo;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSemaphoreSubmitInfo;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::Semaphore           semaphore_   = {},
+                                              uint64_t                                  value_       = {},
+                                              VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_   = {},
+                                              uint32_t                                  deviceIndex_ = {},
+                                              const void *                              pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , semaphore( semaphore_ )
+      , value( value_ )
+      , stageMask( stageMask_ )
+      , deviceIndex( deviceIndex_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SemaphoreSubmitInfo( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSubmitInfo( *reinterpret_cast<SemaphoreSubmitInfo const *>( &rhs ) )
+    {
+    }
+
+    SemaphoreSubmitInfo & operator=( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SemaphoreSubmitInfo & operator=( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
+    {
+      semaphore = semaphore_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
+    {
+      value = value_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageMask = stageMask_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceIndex = deviceIndex_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSemaphoreSubmitInfo *>( this );
+    }
+
+    operator VkSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSemaphoreSubmitInfo *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::Semaphore const &,
+               uint64_t const &,
+               VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, semaphore, value, stageMask, deviceIndex );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SemaphoreSubmitInfo const & ) const = default;
+#else
+    bool operator==( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value ) && ( stageMask == rhs.stageMask ) &&
+             ( deviceIndex == rhs.deviceIndex );
+#  endif
+    }
+
+    bool operator!=( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType       sType       = StructureType::eSemaphoreSubmitInfo;
+    const void *                              pNext       = {};
+    VULKAN_HPP_NAMESPACE::Semaphore           semaphore   = {};
+    uint64_t                                  value       = {};
+    VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask   = {};
+    uint32_t                                  deviceIndex = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSemaphoreSubmitInfo>
+  {
+    using Type = SemaphoreSubmitInfo;
+  };
+
+  using SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
+
+  struct RenderPassStripeSubmitInfoARM
+  {
+    using NativeType = VkRenderPassStripeSubmitInfoARM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eRenderPassStripeSubmitInfoARM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR RenderPassStripeSubmitInfoARM( uint32_t                                          stripeSemaphoreInfoCount_ = {},
+                                                        const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pStripeSemaphoreInfos_    = {},
+                                                        const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stripeSemaphoreInfoCount( stripeSemaphoreInfoCount_ )
+      , pStripeSemaphoreInfos( pStripeSemaphoreInfos_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR RenderPassStripeSubmitInfoARM( RenderPassStripeSubmitInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    RenderPassStripeSubmitInfoARM( VkRenderPassStripeSubmitInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : RenderPassStripeSubmitInfoARM( *reinterpret_cast<RenderPassStripeSubmitInfoARM const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderPassStripeSubmitInfoARM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & stripeSemaphoreInfos_,
+                                   const void *                                                                                           pNext_ = nullptr )
+      : pNext( pNext_ )
+      , stripeSemaphoreInfoCount( static_cast<uint32_t>( stripeSemaphoreInfos_.size() ) )
+      , pStripeSemaphoreInfos( stripeSemaphoreInfos_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    RenderPassStripeSubmitInfoARM & operator=( RenderPassStripeSubmitInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    RenderPassStripeSubmitInfoARM & operator=( VkRenderPassStripeSubmitInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeSubmitInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeSubmitInfoARM & setStripeSemaphoreInfoCount( uint32_t stripeSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stripeSemaphoreInfoCount = stripeSemaphoreInfoCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderPassStripeSubmitInfoARM &
+      setPStripeSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pStripeSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pStripeSemaphoreInfos = pStripeSemaphoreInfos_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderPassStripeSubmitInfoARM & setStripeSemaphoreInfos(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & stripeSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stripeSemaphoreInfoCount = static_cast<uint32_t>( stripeSemaphoreInfos_.size() );
+      pStripeSemaphoreInfos    = stripeSemaphoreInfos_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkRenderPassStripeSubmitInfoARM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkRenderPassStripeSubmitInfoARM *>( this );
+    }
+
+    operator VkRenderPassStripeSubmitInfoARM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkRenderPassStripeSubmitInfoARM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stripeSemaphoreInfoCount, pStripeSemaphoreInfos );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( RenderPassStripeSubmitInfoARM const & ) const = default;
+#else
+    bool operator==( RenderPassStripeSubmitInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stripeSemaphoreInfoCount == rhs.stripeSemaphoreInfoCount ) &&
+             ( pStripeSemaphoreInfos == rhs.pStripeSemaphoreInfos );
+#  endif
+    }
+
+    bool operator!=( RenderPassStripeSubmitInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType                    = StructureType::eRenderPassStripeSubmitInfoARM;
+    const void *                                      pNext                    = {};
+    uint32_t                                          stripeSemaphoreInfoCount = {};
+    const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pStripeSemaphoreInfos    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eRenderPassStripeSubmitInfoARM>
+  {
+    using Type = RenderPassStripeSubmitInfoARM;
+  };
+
   struct RenderPassSubpassFeedbackInfoEXT
   {
     using NativeType = VkRenderPassSubpassFeedbackInfoEXT;
@@ -90292,7 +102978,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT &
-                            setPSubpassFeedback( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ ) VULKAN_HPP_NOEXCEPT
+      setPSubpassFeedback( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ ) VULKAN_HPP_NOEXCEPT
     {
       pSubpassFeedback = pSubpassFeedback_;
       return *this;
@@ -90397,12 +103083,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM *>( this );
     }
 
-    explicit operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM *>( this );
     }
@@ -90449,6 +103135,174 @@
     using Type = RenderPassTransformBeginInfoQCOM;
   };
 
+  struct RenderingAreaInfoKHR
+  {
+    using NativeType = VkRenderingAreaInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eRenderingAreaInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR( uint32_t                             viewMask_                = {},
+                                               uint32_t                             colorAttachmentCount_    = {},
+                                               const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
+                                               VULKAN_HPP_NAMESPACE::Format         depthAttachmentFormat_   = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+                                               VULKAN_HPP_NAMESPACE::Format         stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+                                               const void *                         pNext_                   = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , viewMask( viewMask_ )
+      , colorAttachmentCount( colorAttachmentCount_ )
+      , pColorAttachmentFormats( pColorAttachmentFormats_ )
+      , depthAttachmentFormat( depthAttachmentFormat_ )
+      , stencilAttachmentFormat( stencilAttachmentFormat_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    RenderingAreaInfoKHR( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : RenderingAreaInfoKHR( *reinterpret_cast<RenderingAreaInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderingAreaInfoKHR( uint32_t                                                                                  viewMask_,
+                          VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
+                          VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_   = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+                          VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+                          const void *                 pNext_                   = nullptr )
+      : pNext( pNext_ )
+      , viewMask( viewMask_ )
+      , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
+      , pColorAttachmentFormats( colorAttachmentFormats_.data() )
+      , depthAttachmentFormat( depthAttachmentFormat_ )
+      , stencilAttachmentFormat( stencilAttachmentFormat_ )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    RenderingAreaInfoKHR & operator=( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    RenderingAreaInfoKHR & operator=( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
+    {
+      viewMask = viewMask_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      colorAttachmentCount = colorAttachmentCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR &
+      setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pColorAttachmentFormats = pColorAttachmentFormats_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    RenderingAreaInfoKHR & setColorAttachmentFormats(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
+    {
+      colorAttachmentCount    = static_cast<uint32_t>( colorAttachmentFormats_.size() );
+      pColorAttachmentFormats = colorAttachmentFormats_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthAttachmentFormat = depthAttachmentFormat_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stencilAttachmentFormat = stencilAttachmentFormat_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkRenderingAreaInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkRenderingAreaInfoKHR *>( this );
+    }
+
+    operator VkRenderingAreaInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkRenderingAreaInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::Format * const &,
+               VULKAN_HPP_NAMESPACE::Format const &,
+               VULKAN_HPP_NAMESPACE::Format const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( RenderingAreaInfoKHR const & ) const = default;
+#else
+    bool operator==( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
+             ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) && ( depthAttachmentFormat == rhs.depthAttachmentFormat ) &&
+             ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
+#  endif
+    }
+
+    bool operator!=( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType  sType                   = StructureType::eRenderingAreaInfoKHR;
+    const void *                         pNext                   = {};
+    uint32_t                             viewMask                = {};
+    uint32_t                             colorAttachmentCount    = {};
+    const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
+    VULKAN_HPP_NAMESPACE::Format         depthAttachmentFormat   = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+    VULKAN_HPP_NAMESPACE::Format         stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eRenderingAreaInfoKHR>
+  {
+    using Type = RenderingAreaInfoKHR;
+  };
+
   struct RenderingAttachmentInfo
   {
     using NativeType = VkRenderingAttachmentInfo;
@@ -90599,6 +103453,7 @@
   {
     using Type = RenderingAttachmentInfo;
   };
+
   using RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
 
   struct RenderingFragmentDensityMapAttachmentInfoEXT
@@ -90768,7 +103623,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR &
-                            setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
+      setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
     {
       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
       return *this;
@@ -90958,7 +103813,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 RenderingInfo &
-                            setPStencilAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
+      setPStencilAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
     {
       pStencilAttachment = pStencilAttachment_;
       return *this;
@@ -91034,6 +103889,7 @@
   {
     using Type = RenderingInfo;
   };
+
   using RenderingInfoKHR = RenderingInfo;
 
   struct ResolveImageInfo2
@@ -91210,8 +104066,120 @@
   {
     using Type = ResolveImageInfo2;
   };
+
   using ResolveImageInfo2KHR = ResolveImageInfo2;
 
+  struct SamplerBlockMatchWindowCreateInfoQCOM
+  {
+    using NativeType = VkSamplerBlockMatchWindowCreateInfoQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM(
+      VULKAN_HPP_NAMESPACE::Extent2D                        windowExtent_      = {},
+      VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin,
+      const void *                                          pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , windowExtent( windowExtent_ )
+      , windowCompareMode( windowCompareMode_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SamplerBlockMatchWindowCreateInfoQCOM( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SamplerBlockMatchWindowCreateInfoQCOM( *reinterpret_cast<SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs ) )
+    {
+    }
+
+    SamplerBlockMatchWindowCreateInfoQCOM & operator=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SamplerBlockMatchWindowCreateInfoQCOM & operator=( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setWindowExtent( VULKAN_HPP_NAMESPACE::Extent2D const & windowExtent_ ) VULKAN_HPP_NOEXCEPT
+    {
+      windowExtent = windowExtent_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM &
+      setWindowCompareMode( VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ ) VULKAN_HPP_NOEXCEPT
+    {
+      windowCompareMode = windowCompareMode_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSamplerBlockMatchWindowCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSamplerBlockMatchWindowCreateInfoQCOM *>( this );
+    }
+
+    operator VkSamplerBlockMatchWindowCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSamplerBlockMatchWindowCreateInfoQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::Extent2D const &,
+               VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, windowExtent, windowCompareMode );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SamplerBlockMatchWindowCreateInfoQCOM const & ) const = default;
+#else
+    bool operator==( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( windowExtent == rhs.windowExtent ) && ( windowCompareMode == rhs.windowCompareMode );
+#  endif
+    }
+
+    bool operator!=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                   sType             = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
+    const void *                                          pNext             = {};
+    VULKAN_HPP_NAMESPACE::Extent2D                        windowExtent      = {};
+    VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSamplerBlockMatchWindowCreateInfoQCOM>
+  {
+    using Type = SamplerBlockMatchWindowCreateInfoQCOM;
+  };
+
   struct SamplerBorderColorComponentMappingCreateInfoEXT
   {
     using NativeType = VkSamplerBorderColorComponentMappingCreateInfoEXT;
@@ -91254,7 +104222,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT &
-                            setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
+      setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
     {
       components = components_;
       return *this;
@@ -91581,12 +104549,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerCreateInfo *>( this );
     }
 
-    explicit operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerCreateInfo *>( this );
     }
@@ -91686,6 +104654,105 @@
     using Type = SamplerCreateInfo;
   };
 
+  struct SamplerCubicWeightsCreateInfoQCOM
+  {
+    using NativeType = VkSamplerCubicWeightsCreateInfoQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      SamplerCubicWeightsCreateInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
+                                         const void *                                 pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , cubicWeights( cubicWeights_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SamplerCubicWeightsCreateInfoQCOM( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SamplerCubicWeightsCreateInfoQCOM( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SamplerCubicWeightsCreateInfoQCOM( *reinterpret_cast<SamplerCubicWeightsCreateInfoQCOM const *>( &rhs ) )
+    {
+    }
+
+    SamplerCubicWeightsCreateInfoQCOM & operator=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SamplerCubicWeightsCreateInfoQCOM & operator=( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM &
+      setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
+    {
+      cubicWeights = cubicWeights_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSamplerCubicWeightsCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSamplerCubicWeightsCreateInfoQCOM *>( this );
+    }
+
+    operator VkSamplerCubicWeightsCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSamplerCubicWeightsCreateInfoQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, cubicWeights );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SamplerCubicWeightsCreateInfoQCOM const & ) const = default;
+#else
+    bool operator==( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicWeights == rhs.cubicWeights );
+#  endif
+    }
+
+    bool operator!=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType          sType        = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
+    const void *                                 pNext        = {};
+    VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSamplerCubicWeightsCreateInfoQCOM>
+  {
+    using Type = SamplerCubicWeightsCreateInfoQCOM;
+  };
+
   struct SamplerCustomBorderColorCreateInfoEXT
   {
     using NativeType = VkSamplerCustomBorderColorCreateInfoEXT;
@@ -91727,7 +104794,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT &
-                            setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
+      setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
     {
       customBorderColor = customBorderColor_;
       return *this;
@@ -91740,12 +104807,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT *>( this );
     }
 
-    explicit operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT *>( this );
     }
@@ -91824,12 +104891,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo *>( this );
     }
 
-    explicit operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerReductionModeCreateInfo *>( this );
     }
@@ -91875,6 +104942,7 @@
   {
     using Type = SamplerReductionModeCreateInfo;
   };
+
   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
 
   struct SamplerYcbcrConversionCreateInfo
@@ -91937,7 +105005,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
-                            setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
+      setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
     {
       ycbcrModel = ycbcrModel_;
       return *this;
@@ -91974,19 +105042,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
-                            setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
+      setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
     {
       forceExplicitReconstruction = forceExplicitReconstruction_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( this );
     }
 
-    explicit operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo *>( this );
     }
@@ -92051,6 +105119,7 @@
   {
     using Type = SamplerYcbcrConversionCreateInfo;
   };
+
   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
 
   struct SamplerYcbcrConversionImageFormatProperties
@@ -92084,12 +105153,12 @@
       return *this;
     }
 
-    explicit operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties *>( this );
     }
 
-    explicit operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties *>( this );
     }
@@ -92135,6 +105204,7 @@
   {
     using Type = SamplerYcbcrConversionImageFormatProperties;
   };
+
   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
 
   struct SamplerYcbcrConversionInfo
@@ -92182,12 +105252,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo *>( this );
     }
 
-    explicit operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSamplerYcbcrConversionInfo *>( this );
     }
@@ -92233,8 +105303,340 @@
   {
     using Type = SamplerYcbcrConversionInfo;
   };
+
   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
 
+  struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+  {
+    using NativeType = VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_    = {},
+                                                                           VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ = {},
+                                                                           void *                       pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , enableYDegamma( enableYDegamma_ )
+      , enableCbCrDegamma( enableCbCrDegamma_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( *reinterpret_cast<SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs ) )
+    {
+    }
+
+    SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &
+      setEnableYDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ ) VULKAN_HPP_NOEXCEPT
+    {
+      enableYDegamma = enableYDegamma_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &
+      setEnableCbCrDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ ) VULKAN_HPP_NOEXCEPT
+    {
+      enableCbCrDegamma = enableCbCrDegamma_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM *>( this );
+    }
+
+    operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, enableYDegamma, enableCbCrDegamma );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & ) const = default;
+#else
+    bool operator==( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( enableYDegamma == rhs.enableYDegamma ) && ( enableCbCrDegamma == rhs.enableCbCrDegamma );
+#  endif
+    }
+
+    bool operator!=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+    void *                              pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        enableYDegamma    = {};
+    VULKAN_HPP_NAMESPACE::Bool32        enableCbCrDegamma = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>
+  {
+    using Type = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
+  };
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  struct ScreenBufferFormatPropertiesQNX
+  {
+    using NativeType = VkScreenBufferFormatPropertiesQNX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eScreenBufferFormatPropertiesQNX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX(
+      VULKAN_HPP_NAMESPACE::Format                      format_                           = VULKAN_HPP_NAMESPACE::Format::eUndefined,
+      uint64_t                                          externalFormat_                   = {},
+      uint64_t                                          screenUsage_                      = {},
+      VULKAN_HPP_NAMESPACE::FormatFeatureFlags          formatFeatures_                   = {},
+      VULKAN_HPP_NAMESPACE::ComponentMapping            samplerYcbcrConversionComponents_ = {},
+      VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_              = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
+      VULKAN_HPP_NAMESPACE::SamplerYcbcrRange           suggestedYcbcrRange_              = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
+      VULKAN_HPP_NAMESPACE::ChromaLocation              suggestedXChromaOffset_           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
+      VULKAN_HPP_NAMESPACE::ChromaLocation              suggestedYChromaOffset_           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
+      void *                                            pNext_                            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , format( format_ )
+      , externalFormat( externalFormat_ )
+      , screenUsage( screenUsage_ )
+      , formatFeatures( formatFeatures_ )
+      , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
+      , suggestedYcbcrModel( suggestedYcbcrModel_ )
+      , suggestedYcbcrRange( suggestedYcbcrRange_ )
+      , suggestedXChromaOffset( suggestedXChromaOffset_ )
+      , suggestedYChromaOffset( suggestedYChromaOffset_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ScreenBufferFormatPropertiesQNX( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ScreenBufferFormatPropertiesQNX( *reinterpret_cast<ScreenBufferFormatPropertiesQNX const *>( &rhs ) )
+    {
+    }
+
+    ScreenBufferFormatPropertiesQNX & operator=( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ScreenBufferFormatPropertiesQNX & operator=( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX const *>( &rhs );
+      return *this;
+    }
+
+    operator VkScreenBufferFormatPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkScreenBufferFormatPropertiesQNX *>( this );
+    }
+
+    operator VkScreenBufferFormatPropertiesQNX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkScreenBufferFormatPropertiesQNX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Format const &,
+               uint64_t const &,
+               uint64_t const &,
+               VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
+               VULKAN_HPP_NAMESPACE::ComponentMapping const &,
+               VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
+               VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
+               VULKAN_HPP_NAMESPACE::ChromaLocation const &,
+               VULKAN_HPP_NAMESPACE::ChromaLocation const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       format,
+                       externalFormat,
+                       screenUsage,
+                       formatFeatures,
+                       samplerYcbcrConversionComponents,
+                       suggestedYcbcrModel,
+                       suggestedYcbcrRange,
+                       suggestedXChromaOffset,
+                       suggestedYChromaOffset );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ScreenBufferFormatPropertiesQNX const & ) const = default;
+#  else
+    bool operator==( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
+             ( screenUsage == rhs.screenUsage ) && ( formatFeatures == rhs.formatFeatures ) &&
+             ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) &&
+             ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) &&
+             ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
+#    endif
+    }
+
+    bool operator!=( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType                            = StructureType::eScreenBufferFormatPropertiesQNX;
+    void *                                            pNext                            = {};
+    VULKAN_HPP_NAMESPACE::Format                      format                           = VULKAN_HPP_NAMESPACE::Format::eUndefined;
+    uint64_t                                          externalFormat                   = {};
+    uint64_t                                          screenUsage                      = {};
+    VULKAN_HPP_NAMESPACE::FormatFeatureFlags          formatFeatures                   = {};
+    VULKAN_HPP_NAMESPACE::ComponentMapping            samplerYcbcrConversionComponents = {};
+    VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel              = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
+    VULKAN_HPP_NAMESPACE::SamplerYcbcrRange           suggestedYcbcrRange              = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
+    VULKAN_HPP_NAMESPACE::ChromaLocation              suggestedXChromaOffset           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+    VULKAN_HPP_NAMESPACE::ChromaLocation              suggestedYChromaOffset           = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eScreenBufferFormatPropertiesQNX>
+  {
+    using Type = ScreenBufferFormatPropertiesQNX;
+  };
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+  struct ScreenBufferPropertiesQNX
+  {
+    using NativeType = VkScreenBufferPropertiesQNX;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eScreenBufferPropertiesQNX;
+
+#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
+                                                    uint32_t                         memoryTypeBits_ = {},
+                                                    void *                           pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , allocationSize( allocationSize_ )
+      , memoryTypeBits( memoryTypeBits_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ScreenBufferPropertiesQNX( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+      : ScreenBufferPropertiesQNX( *reinterpret_cast<ScreenBufferPropertiesQNX const *>( &rhs ) )
+    {
+    }
+
+    ScreenBufferPropertiesQNX & operator=( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ScreenBufferPropertiesQNX & operator=( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX const *>( &rhs );
+      return *this;
+    }
+
+    operator VkScreenBufferPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkScreenBufferPropertiesQNX *>( this );
+    }
+
+    operator VkScreenBufferPropertiesQNX &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkScreenBufferPropertiesQNX *>( this );
+    }
+
+#  if defined( VULKAN_HPP_USE_REFLECT )
+#    if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#    else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
+#    endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, allocationSize, memoryTypeBits );
+    }
+#  endif
+
+#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( ScreenBufferPropertiesQNX const & ) const = default;
+#  else
+    bool operator==( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#    if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#    else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeBits == rhs.memoryTypeBits );
+#    endif
+    }
+
+    bool operator!=( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#  endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eScreenBufferPropertiesQNX;
+    void *                              pNext          = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize    allocationSize = {};
+    uint32_t                            memoryTypeBits = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eScreenBufferPropertiesQNX>
+  {
+    using Type = ScreenBufferPropertiesQNX;
+  };
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
   struct ScreenSurfaceCreateInfoQNX
   {
@@ -92297,12 +105699,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
+    operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( this );
     }
 
-    explicit operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
+    operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkScreenSurfaceCreateInfoQNX *>( this );
     }
@@ -92399,12 +105801,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreCreateInfo *>( this );
     }
 
-    explicit operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreCreateInfo *>( this );
     }
@@ -92505,12 +105907,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( this );
     }
 
-    explicit operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR *>( this );
     }
@@ -92610,19 +106012,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( this );
     }
 
-    explicit operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR *>( this );
     }
@@ -92723,19 +106125,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA &
-                            setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+      setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
     {
       handleType = handleType_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
     }
 
-    explicit operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
     }
@@ -92838,12 +106240,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreSignalInfo *>( this );
     }
 
-    explicit operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreSignalInfo *>( this );
     }
@@ -92890,138 +106292,9 @@
   {
     using Type = SemaphoreSignalInfo;
   };
+
   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
 
-  struct SemaphoreSubmitInfo
-  {
-    using NativeType = VkSemaphoreSubmitInfo;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSemaphoreSubmitInfo;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::Semaphore           semaphore_   = {},
-                                              uint64_t                                  value_       = {},
-                                              VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_   = {},
-                                              uint32_t                                  deviceIndex_ = {},
-                                              const void *                              pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , semaphore( semaphore_ )
-      , value( value_ )
-      , stageMask( stageMask_ )
-      , deviceIndex( deviceIndex_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    SemaphoreSubmitInfo( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSubmitInfo( *reinterpret_cast<SemaphoreSubmitInfo const *>( &rhs ) )
-    {
-    }
-
-    SemaphoreSubmitInfo & operator=( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    SemaphoreSubmitInfo & operator=( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
-    {
-      semaphore = semaphore_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
-    {
-      value = value_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ ) VULKAN_HPP_NOEXCEPT
-    {
-      stageMask = stageMask_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
-    {
-      deviceIndex = deviceIndex_;
-      return *this;
-    }
-#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkSemaphoreSubmitInfo *>( this );
-    }
-
-    operator VkSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkSemaphoreSubmitInfo *>( this );
-    }
-
-#if defined( VULKAN_HPP_USE_REFLECT )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               VULKAN_HPP_NAMESPACE::Semaphore const &,
-               uint64_t const &,
-               VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
-               uint32_t const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, semaphore, value, stageMask, deviceIndex );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( SemaphoreSubmitInfo const & ) const = default;
-#else
-    bool operator==( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value ) && ( stageMask == rhs.stageMask ) &&
-             ( deviceIndex == rhs.deviceIndex );
-#  endif
-    }
-
-    bool operator!=( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType       sType       = StructureType::eSemaphoreSubmitInfo;
-    const void *                              pNext       = {};
-    VULKAN_HPP_NAMESPACE::Semaphore           semaphore   = {};
-    uint64_t                                  value       = {};
-    VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask   = {};
-    uint32_t                                  deviceIndex = {};
-  };
-
-  template <>
-  struct CppType<StructureType, StructureType::eSemaphoreSubmitInfo>
-  {
-    using Type = SemaphoreSubmitInfo;
-  };
-  using SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
-
   struct SemaphoreTypeCreateInfo
   {
     using NativeType = VkSemaphoreTypeCreateInfo;
@@ -93075,12 +106348,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo *>( this );
     }
 
-    explicit operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreTypeCreateInfo *>( this );
     }
@@ -93127,6 +106400,7 @@
   {
     using Type = SemaphoreTypeCreateInfo;
   };
+
   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
 
   struct SemaphoreWaitInfo
@@ -93236,12 +106510,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSemaphoreWaitInfo *>( this );
     }
 
-    explicit operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSemaphoreWaitInfo *>( this );
     }
@@ -93296,8 +106570,312 @@
   {
     using Type = SemaphoreWaitInfo;
   };
+
   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
 
+  struct SetDescriptorBufferOffsetsInfoEXT
+  {
+    using NativeType = VkSetDescriptorBufferOffsetsInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSetDescriptorBufferOffsetsInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SetDescriptorBufferOffsetsInfoEXT( VULKAN_HPP_NAMESPACE::ShaderStageFlags   stageFlags_     = {},
+                                                            VULKAN_HPP_NAMESPACE::PipelineLayout     layout_         = {},
+                                                            uint32_t                                 firstSet_       = {},
+                                                            uint32_t                                 setCount_       = {},
+                                                            const uint32_t *                         pBufferIndices_ = {},
+                                                            const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets_       = {},
+                                                            const void *                             pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , firstSet( firstSet_ )
+      , setCount( setCount_ )
+      , pBufferIndices( pBufferIndices_ )
+      , pOffsets( pOffsets_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SetDescriptorBufferOffsetsInfoEXT( SetDescriptorBufferOffsetsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SetDescriptorBufferOffsetsInfoEXT( VkSetDescriptorBufferOffsetsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SetDescriptorBufferOffsetsInfoEXT( *reinterpret_cast<SetDescriptorBufferOffsetsInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    SetDescriptorBufferOffsetsInfoEXT( VULKAN_HPP_NAMESPACE::ShaderStageFlags                                                        stageFlags_,
+                                       VULKAN_HPP_NAMESPACE::PipelineLayout                                                          layout_,
+                                       uint32_t                                                                                      firstSet_,
+                                       VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const &                         bufferIndices_,
+                                       VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets_ = {},
+                                       const void *                                                                                  pNext_   = nullptr )
+      : pNext( pNext_ )
+      , stageFlags( stageFlags_ )
+      , layout( layout_ )
+      , firstSet( firstSet_ )
+      , setCount( static_cast<uint32_t>( bufferIndices_.size() ) )
+      , pBufferIndices( bufferIndices_.data() )
+      , pOffsets( offsets_.data() )
+    {
+#    ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( bufferIndices_.size() == offsets_.size() );
+#    else
+      if ( bufferIndices_.size() != offsets_.size() )
+      {
+        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
+                          "::SetDescriptorBufferOffsetsInfoEXT::SetDescriptorBufferOffsetsInfoEXT: bufferIndices_.size() != offsets_.size()" );
+      }
+#    endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    SetDescriptorBufferOffsetsInfoEXT & operator=( SetDescriptorBufferOffsetsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SetDescriptorBufferOffsetsInfoEXT & operator=( VkSetDescriptorBufferOffsetsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      layout = layout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setFirstSet( uint32_t firstSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      firstSet = firstSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setSetCount( uint32_t setCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setCount = setCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setPBufferIndices( const uint32_t * pBufferIndices_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pBufferIndices = pBufferIndices_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    SetDescriptorBufferOffsetsInfoEXT &
+      setBufferIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & bufferIndices_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setCount       = static_cast<uint32_t>( bufferIndices_.size() );
+      pBufferIndices = bufferIndices_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 SetDescriptorBufferOffsetsInfoEXT & setPOffsets( const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pOffsets = pOffsets_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    SetDescriptorBufferOffsetsInfoEXT &
+      setOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setCount = static_cast<uint32_t>( offsets_.size() );
+      pOffsets = offsets_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSetDescriptorBufferOffsetsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( this );
+    }
+
+    operator VkSetDescriptorBufferOffsetsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSetDescriptorBufferOffsetsInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &,
+               uint32_t const &,
+               const uint32_t * const &,
+               const VULKAN_HPP_NAMESPACE::DeviceSize * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, stageFlags, layout, firstSet, setCount, pBufferIndices, pOffsets );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SetDescriptorBufferOffsetsInfoEXT const & ) const = default;
+#else
+    bool operator==( SetDescriptorBufferOffsetsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageFlags == rhs.stageFlags ) && ( layout == rhs.layout ) && ( firstSet == rhs.firstSet ) &&
+             ( setCount == rhs.setCount ) && ( pBufferIndices == rhs.pBufferIndices ) && ( pOffsets == rhs.pOffsets );
+#  endif
+    }
+
+    bool operator!=( SetDescriptorBufferOffsetsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType      sType          = StructureType::eSetDescriptorBufferOffsetsInfoEXT;
+    const void *                             pNext          = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags   stageFlags     = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout     layout         = {};
+    uint32_t                                 firstSet       = {};
+    uint32_t                                 setCount       = {};
+    const uint32_t *                         pBufferIndices = {};
+    const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets       = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSetDescriptorBufferOffsetsInfoEXT>
+  {
+    using Type = SetDescriptorBufferOffsetsInfoEXT;
+  };
+
+  struct SetLatencyMarkerInfoNV
+  {
+    using NativeType = VkSetLatencyMarkerInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSetLatencyMarkerInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( uint64_t                              presentID_ = {},
+                                                 VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_    = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart,
+                                                 const void *                          pNext_     = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , presentID( presentID_ )
+      , marker( marker_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SetLatencyMarkerInfoNV( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SetLatencyMarkerInfoNV( *reinterpret_cast<SetLatencyMarkerInfoNV const *>( &rhs ) )
+    {
+    }
+
+    SetLatencyMarkerInfoNV & operator=( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SetLatencyMarkerInfoNV & operator=( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
+    {
+      presentID = presentID_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setMarker( VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ ) VULKAN_HPP_NOEXCEPT
+    {
+      marker = marker_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( this );
+    }
+
+    operator VkSetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSetLatencyMarkerInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, VULKAN_HPP_NAMESPACE::LatencyMarkerNV const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, presentID, marker );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SetLatencyMarkerInfoNV const & ) const = default;
+#else
+    bool operator==( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID ) && ( marker == rhs.marker );
+#  endif
+    }
+
+    bool operator!=( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType   sType     = StructureType::eSetLatencyMarkerInfoNV;
+    const void *                          pNext     = {};
+    uint64_t                              presentID = {};
+    VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker    = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart;
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSetLatencyMarkerInfoNV>
+  {
+    using Type = SetLatencyMarkerInfoNV;
+  };
+
   struct SetStateFlagsIndirectCommandNV
   {
     using NativeType = VkSetStateFlagsIndirectCommandNV;
@@ -93329,12 +106907,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV *>( this );
     }
 
-    explicit operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
+    operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV *>( this );
     }
@@ -93373,6 +106951,321 @@
     uint32_t data = {};
   };
 
+  struct ShaderCreateInfoEXT
+  {
+    using NativeType = VkShaderCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eShaderCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT        flags_     = {},
+                                              VULKAN_HPP_NAMESPACE::ShaderStageFlagBits         stage_     = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex,
+                                              VULKAN_HPP_NAMESPACE::ShaderStageFlags            nextStage_ = {},
+                                              VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT           codeType_  = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary,
+                                              size_t                                            codeSize_  = {},
+                                              const void *                                      pCode_     = {},
+                                              const char *                                      pName_     = {},
+                                              uint32_t                                          setLayoutCount_         = {},
+                                              const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_            = {},
+                                              uint32_t                                          pushConstantRangeCount_ = {},
+                                              const VULKAN_HPP_NAMESPACE::PushConstantRange *   pPushConstantRanges_    = {},
+                                              const VULKAN_HPP_NAMESPACE::SpecializationInfo *  pSpecializationInfo_    = {},
+                                              const void *                                      pNext_                  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , stage( stage_ )
+      , nextStage( nextStage_ )
+      , codeType( codeType_ )
+      , codeSize( codeSize_ )
+      , pCode( pCode_ )
+      , pName( pName_ )
+      , setLayoutCount( setLayoutCount_ )
+      , pSetLayouts( pSetLayouts_ )
+      , pushConstantRangeCount( pushConstantRangeCount_ )
+      , pPushConstantRanges( pPushConstantRanges_ )
+      , pSpecializationInfo( pSpecializationInfo_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    ShaderCreateInfoEXT( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : ShaderCreateInfoEXT( *reinterpret_cast<ShaderCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    ShaderCreateInfoEXT( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT                                                             flags_,
+                         VULKAN_HPP_NAMESPACE::ShaderStageFlagBits                                                              stage_,
+                         VULKAN_HPP_NAMESPACE::ShaderStageFlags                                                                 nextStage_,
+                         VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT                                                                codeType_,
+                         VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const &                                         code_,
+                         const char *                                                                                           pName_               = {},
+                         VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_          = {},
+                         VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const &   pushConstantRanges_  = {},
+                         const VULKAN_HPP_NAMESPACE::SpecializationInfo *                                                       pSpecializationInfo_ = {},
+                         const void *                                                                                           pNext_               = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , stage( stage_ )
+      , nextStage( nextStage_ )
+      , codeType( codeType_ )
+      , codeSize( code_.size() * sizeof( T ) )
+      , pCode( code_.data() )
+      , pName( pName_ )
+      , setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) )
+      , pSetLayouts( setLayouts_.data() )
+      , pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) )
+      , pPushConstantRanges( pushConstantRanges_.data() )
+      , pSpecializationInfo( pSpecializationInfo_ )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    ShaderCreateInfoEXT & operator=( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    ShaderCreateInfoEXT & operator=( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stage = stage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setNextStage( VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_ ) VULKAN_HPP_NOEXCEPT
+    {
+      nextStage = nextStage_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeType( VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      codeType = codeType_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      codeSize = codeSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPCode( const void * pCode_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pCode = pCode_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    template <typename T>
+    ShaderCreateInfoEXT & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & code_ ) VULKAN_HPP_NOEXCEPT
+    {
+      codeSize = code_.size() * sizeof( T );
+      pCode    = code_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pName = pName_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setLayoutCount = setLayoutCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSetLayouts = pSetLayouts_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    ShaderCreateInfoEXT &
+      setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
+      pSetLayouts    = setLayouts_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pushConstantRangeCount = pushConstantRangeCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT &
+      setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPushConstantRanges = pPushConstantRanges_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    ShaderCreateInfoEXT & setPushConstantRanges(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
+      pPushConstantRanges    = pushConstantRanges_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT &
+      setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSpecializationInfo = pSpecializationInfo_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkShaderCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkShaderCreateInfoEXT *>( this );
+    }
+
+    operator VkShaderCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkShaderCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT const &,
+               size_t const &,
+               const void * const &,
+               const char * const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::PushConstantRange * const &,
+               const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       flags,
+                       stage,
+                       nextStage,
+                       codeType,
+                       codeSize,
+                       pCode,
+                       pName,
+                       setLayoutCount,
+                       pSetLayouts,
+                       pushConstantRangeCount,
+                       pPushConstantRanges,
+                       pSpecializationInfo );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
+        return cmp;
+      if ( auto cmp = stage <=> rhs.stage; cmp != 0 )
+        return cmp;
+      if ( auto cmp = nextStage <=> rhs.nextStage; cmp != 0 )
+        return cmp;
+      if ( auto cmp = codeType <=> rhs.codeType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = codeSize <=> rhs.codeSize; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pCode <=> rhs.pCode; cmp != 0 )
+        return cmp;
+      if ( pName != rhs.pName )
+        if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
+          return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( auto cmp = setLayoutCount <=> rhs.setLayoutCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pSetLayouts <=> rhs.pSetLayouts; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pushConstantRangeCount <=> rhs.pushConstantRangeCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pPushConstantRanges <=> rhs.pPushConstantRanges; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 )
+        return cmp;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( nextStage == rhs.nextStage ) &&
+             ( codeType == rhs.codeType ) && ( codeSize == rhs.codeSize ) && ( pCode == rhs.pCode ) &&
+             ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( setLayoutCount == rhs.setLayoutCount ) &&
+             ( pSetLayouts == rhs.pSetLayouts ) && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) &&
+             ( pPushConstantRanges == rhs.pPushConstantRanges ) && ( pSpecializationInfo == rhs.pSpecializationInfo );
+    }
+
+    bool operator!=( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType                  = StructureType::eShaderCreateInfoEXT;
+    const void *                                      pNext                  = {};
+    VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT        flags                  = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlagBits         stage                  = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags            nextStage              = {};
+    VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT           codeType               = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary;
+    size_t                                            codeSize               = {};
+    const void *                                      pCode                  = {};
+    const char *                                      pName                  = {};
+    uint32_t                                          setLayoutCount         = {};
+    const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts            = {};
+    uint32_t                                          pushConstantRangeCount = {};
+    const VULKAN_HPP_NAMESPACE::PushConstantRange *   pPushConstantRanges    = {};
+    const VULKAN_HPP_NAMESPACE::SpecializationInfo *  pSpecializationInfo    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eShaderCreateInfoEXT>
+  {
+    using Type = ShaderCreateInfoEXT;
+  };
+
   struct ShaderModuleCreateInfo
   {
     using NativeType = VkShaderModuleCreateInfo;
@@ -93452,12 +107345,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkShaderModuleCreateInfo *>( this );
     }
 
-    explicit operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkShaderModuleCreateInfo *>( this );
     }
@@ -93638,19 +107531,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT &
-                            setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
+      setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
     {
       validationCache = validationCache_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT *>( this );
     }
 
-    explicit operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT *>( this );
     }
@@ -93731,12 +107624,12 @@
       return *this;
     }
 
-    explicit operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkShaderResourceUsageAMD *>( this );
     }
 
-    explicit operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkShaderResourceUsageAMD *>( this );
     }
@@ -93818,12 +107711,12 @@
       return *this;
     }
 
-    explicit operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkShaderStatisticsInfoAMD *>( this );
     }
 
-    explicit operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkShaderStatisticsInfoAMD *>( this );
     }
@@ -93907,12 +107800,12 @@
       return *this;
     }
 
-    explicit operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR *>( this );
     }
 
-    explicit operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR *>( this );
     }
@@ -93989,12 +107882,12 @@
       return *this;
     }
 
-    explicit operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageFormatProperties *>( this );
     }
 
-    explicit operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageFormatProperties *>( this );
     }
@@ -94066,12 +107959,12 @@
       return *this;
     }
 
-    explicit operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageFormatProperties2 *>( this );
     }
 
-    explicit operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageFormatProperties2 *>( this );
     }
@@ -94117,6 +108010,7 @@
   {
     using Type = SparseImageFormatProperties2;
   };
+
   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
 
   struct SparseImageMemoryRequirements
@@ -94153,12 +108047,12 @@
       return *this;
     }
 
-    explicit operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageMemoryRequirements *>( this );
     }
 
-    explicit operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageMemoryRequirements *>( this );
     }
@@ -94238,12 +108132,12 @@
       return *this;
     }
 
-    explicit operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSparseImageMemoryRequirements2 *>( this );
     }
 
-    explicit operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
+    operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSparseImageMemoryRequirements2 *>( this );
     }
@@ -94289,6 +108183,7 @@
   {
     using Type = SparseImageMemoryRequirements2;
   };
+
   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
 
 #if defined( VK_USE_PLATFORM_GGP )
@@ -94333,7 +108228,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP &
-                            setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -94346,12 +108241,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
+    operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
     }
 
-    explicit operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
+    operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
     }
@@ -94462,12 +108357,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( this );
     }
 
-    explicit operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkStridedDeviceAddressRegionKHR *>( this );
     }
@@ -94664,12 +108559,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubmitInfo *>( this );
     }
 
-    explicit operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubmitInfo *>( this );
     }
@@ -94834,7 +108729,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
-                            setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
+      setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
     {
       pCommandBufferInfos = pCommandBufferInfos_;
       return *this;
@@ -94857,7 +108752,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
-                            setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
+      setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
     {
       pSignalSemaphoreInfos = pSignalSemaphoreInfos_;
       return *this;
@@ -94950,6 +108845,7 @@
   {
     using Type = SubmitInfo2;
   };
+
   using SubmitInfo2KHR = SubmitInfo2;
 
   struct SubpassBeginInfo
@@ -94994,12 +108890,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassBeginInfo *>( this );
     }
 
-    explicit operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassBeginInfo *>( this );
     }
@@ -95045,6 +108941,7 @@
   {
     using Type = SubpassBeginInfo;
   };
+
   using SubpassBeginInfoKHR = SubpassBeginInfo;
 
   struct SubpassDescriptionDepthStencilResolve
@@ -95091,14 +108988,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
-                            setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
+      setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
     {
       depthResolveMode = depthResolveMode_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
-                            setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
+      setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
     {
       stencilResolveMode = stencilResolveMode_;
       return *this;
@@ -95112,12 +109009,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve *>( this );
     }
 
-    explicit operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve *>( this );
     }
@@ -95170,6 +109067,7 @@
   {
     using Type = SubpassDescriptionDepthStencilResolve;
   };
+
   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
 
   struct SubpassEndInfo
@@ -95203,12 +109101,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassEndInfo *>( this );
     }
 
-    explicit operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassEndInfo *>( this );
     }
@@ -95253,6 +109151,7 @@
   {
     using Type = SubpassEndInfo;
   };
+
   using SubpassEndInfoKHR = SubpassEndInfo;
 
   struct SubpassFragmentDensityMapOffsetEndInfoQCOM
@@ -95306,14 +109205,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
-                            setFragmentDensityOffsetCount( uint32_t fragmentDensityOffsetCount_ ) VULKAN_HPP_NOEXCEPT
+      setFragmentDensityOffsetCount( uint32_t fragmentDensityOffsetCount_ ) VULKAN_HPP_NOEXCEPT
     {
       fragmentDensityOffsetCount = fragmentDensityOffsetCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
-                            setPFragmentDensityOffsets( const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
+      setPFragmentDensityOffsets( const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
     {
       pFragmentDensityOffsets = pFragmentDensityOffsets_;
       return *this;
@@ -95499,12 +109398,12 @@
       return *this;
     }
 
-    explicit operator VkSubpassShadingPipelineCreateInfoHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubpassShadingPipelineCreateInfoHUAWEI const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
     }
 
-    explicit operator VkSubpassShadingPipelineCreateInfoHUAWEI &() VULKAN_HPP_NOEXCEPT
+    operator VkSubpassShadingPipelineCreateInfoHUAWEI &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
     }
@@ -95552,44 +109451,126 @@
     using Type = SubpassShadingPipelineCreateInfoHUAWEI;
   };
 
-  struct SubresourceLayout2EXT
+  struct SubresourceHostMemcpySizeEXT
   {
-    using NativeType = VkSubresourceLayout2EXT;
+    using NativeType = VkSubresourceHostMemcpySizeEXT;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSubresourceLayout2EXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSubresourceHostMemcpySizeEXT;
 
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR SubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , size( size_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SubresourceHostMemcpySizeEXT( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SubresourceHostMemcpySizeEXT( *reinterpret_cast<SubresourceHostMemcpySizeEXT const *>( &rhs ) )
+    {
+    }
+
+    SubresourceHostMemcpySizeEXT & operator=( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SubresourceHostMemcpySizeEXT & operator=( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkSubresourceHostMemcpySizeEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSubresourceHostMemcpySizeEXT *>( this );
+    }
+
+    operator VkSubresourceHostMemcpySizeEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSubresourceHostMemcpySizeEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, size );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SubresourceHostMemcpySizeEXT const & ) const = default;
+#else
+    bool operator==( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( size == rhs.size );
+#  endif
+    }
+
+    bool operator!=( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceHostMemcpySizeEXT;
+    void *                              pNext = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize    size  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSubresourceHostMemcpySizeEXT>
+  {
+    using Type = SubresourceHostMemcpySizeEXT;
+  };
+
+  struct SubresourceLayout2KHR
+  {
+    using NativeType = VkSubresourceLayout2KHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSubresourceLayout2KHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , subresourceLayout( subresourceLayout_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR SubresourceLayout2EXT( SubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    SubresourceLayout2EXT( VkSubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : SubresourceLayout2EXT( *reinterpret_cast<SubresourceLayout2EXT const *>( &rhs ) )
+    SubresourceLayout2KHR( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SubresourceLayout2KHR( *reinterpret_cast<SubresourceLayout2KHR const *>( &rhs ) )
     {
     }
 
-    SubresourceLayout2EXT & operator=( SubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    SubresourceLayout2KHR & operator=( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    SubresourceLayout2EXT & operator=( VkSubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    SubresourceLayout2KHR & operator=( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR const *>( &rhs );
       return *this;
     }
 
-    operator VkSubresourceLayout2EXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSubresourceLayout2KHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkSubresourceLayout2EXT *>( this );
+      return *reinterpret_cast<const VkSubresourceLayout2KHR *>( this );
     }
 
-    operator VkSubresourceLayout2EXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSubresourceLayout2KHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkSubresourceLayout2EXT *>( this );
+      return *reinterpret_cast<VkSubresourceLayout2KHR *>( this );
     }
 
 #if defined( VULKAN_HPP_USE_REFLECT )
@@ -95605,9 +109586,9 @@
 #endif
 
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( SubresourceLayout2EXT const & ) const = default;
+    auto operator<=>( SubresourceLayout2KHR const & ) const = default;
 #else
-    bool operator==( SubresourceLayout2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -95616,24 +109597,26 @@
 #  endif
     }
 
-    bool operator!=( SubresourceLayout2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 #endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eSubresourceLayout2EXT;
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eSubresourceLayout2KHR;
     void *                                  pNext             = {};
     VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eSubresourceLayout2EXT>
+  struct CppType<StructureType, StructureType::eSubresourceLayout2KHR>
   {
-    using Type = SubresourceLayout2EXT;
+    using Type = SubresourceLayout2KHR;
   };
 
+  using SubresourceLayout2EXT = SubresourceLayout2KHR;
+
   struct SurfaceCapabilities2EXT
   {
     using NativeType = VkSurfaceCapabilities2EXT;
@@ -95686,12 +109669,12 @@
       return *this;
     }
 
-    explicit operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceCapabilities2EXT *>( this );
     }
 
-    explicit operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceCapabilities2EXT *>( this );
     }
@@ -95821,12 +109804,12 @@
       return *this;
     }
 
-    explicit operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR *>( this );
     }
 
-    explicit operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceCapabilitiesKHR *>( this );
     }
@@ -95926,12 +109909,12 @@
       return *this;
     }
 
-    explicit operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceCapabilities2KHR *>( this );
     }
 
-    explicit operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceCapabilities2KHR *>( this );
     }
@@ -96018,19 +110001,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT &
-                            setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
+      setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
     {
       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
     }
 
-    explicit operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
     }
@@ -96117,7 +110100,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentBarrierNV &
-                            setPresentBarrierSupported( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ ) VULKAN_HPP_NOEXCEPT
+      setPresentBarrierSupported( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ ) VULKAN_HPP_NOEXCEPT
     {
       presentBarrierSupported = presentBarrierSupported_;
       return *this;
@@ -96202,12 +110185,12 @@
       return *this;
     }
 
-    explicit operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceFormatKHR *>( this );
     }
 
-    explicit operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceFormatKHR *>( this );
     }
@@ -96274,12 +110257,12 @@
       return *this;
     }
 
-    explicit operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceFormat2KHR *>( this );
     }
 
-    explicit operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceFormat2KHR *>( this );
     }
@@ -96367,19 +110350,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT &
-                            setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
+      setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
     {
       fullScreenExclusive = fullScreenExclusive_;
       return *this;
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT *>( this );
     }
 
-    explicit operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT *>( this );
     }
@@ -96472,12 +110455,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
     }
 
-    explicit operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
     }
@@ -96793,35 +110776,35 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
-                            setSupportedPresentScaling( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ ) VULKAN_HPP_NOEXCEPT
+      setSupportedPresentScaling( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ ) VULKAN_HPP_NOEXCEPT
     {
       supportedPresentScaling = supportedPresentScaling_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
-                            setSupportedPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ ) VULKAN_HPP_NOEXCEPT
+      setSupportedPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ ) VULKAN_HPP_NOEXCEPT
     {
       supportedPresentGravityX = supportedPresentGravityX_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
-                            setSupportedPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ ) VULKAN_HPP_NOEXCEPT
+      setSupportedPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ ) VULKAN_HPP_NOEXCEPT
     {
       supportedPresentGravityY = supportedPresentGravityY_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
-                            setMinScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & minScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
+      setMinScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & minScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
     {
       minScaledImageExtent = minScaledImageExtent_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
-                            setMaxScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
+      setMaxScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
     {
       maxScaledImageExtent = maxScaledImageExtent_;
       return *this;
@@ -96937,12 +110920,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR *>( this );
     }
 
-    explicit operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR *>( this );
     }
@@ -97028,19 +111011,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT &
-                            setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
+      setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
     {
       surfaceCounters = surfaceCounters_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT *>( this );
     }
 
-    explicit operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT *>( this );
     }
@@ -97301,12 +111284,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSwapchainCreateInfoKHR *>( this );
     }
 
-    explicit operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSwapchainCreateInfoKHR *>( this );
     }
@@ -97446,19 +111429,19 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD &
-                            setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
+      setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       localDimmingEnable = localDimmingEnable_;
       return *this;
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
     }
 
-    explicit operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
     }
@@ -97505,6 +111488,102 @@
     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
   };
 
+  struct SwapchainLatencyCreateInfoNV
+  {
+    using NativeType = VkSwapchainLatencyCreateInfoNV;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eSwapchainLatencyCreateInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , latencyModeEnable( latencyModeEnable_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    SwapchainLatencyCreateInfoNV( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+      : SwapchainLatencyCreateInfoNV( *reinterpret_cast<SwapchainLatencyCreateInfoNV const *>( &rhs ) )
+    {
+    }
+
+    SwapchainLatencyCreateInfoNV & operator=( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    SwapchainLatencyCreateInfoNV & operator=( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setLatencyModeEnable( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ ) VULKAN_HPP_NOEXCEPT
+    {
+      latencyModeEnable = latencyModeEnable_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkSwapchainLatencyCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkSwapchainLatencyCreateInfoNV *>( this );
+    }
+
+    operator VkSwapchainLatencyCreateInfoNV &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkSwapchainLatencyCreateInfoNV *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, latencyModeEnable );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( SwapchainLatencyCreateInfoNV const & ) const = default;
+#else
+    bool operator==( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( latencyModeEnable == rhs.latencyModeEnable );
+#  endif
+    }
+
+    bool operator!=( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::eSwapchainLatencyCreateInfoNV;
+    const void *                        pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        latencyModeEnable = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eSwapchainLatencyCreateInfoNV>
+  {
+    using Type = SwapchainLatencyCreateInfoNV;
+  };
+
   struct SwapchainPresentBarrierCreateInfoNV
   {
     using NativeType = VkSwapchainPresentBarrierCreateInfoNV;
@@ -97544,7 +111623,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentBarrierCreateInfoNV &
-                            setPresentBarrierEnable( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ ) VULKAN_HPP_NOEXCEPT
+      setPresentBarrierEnable( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ ) VULKAN_HPP_NOEXCEPT
     {
       presentBarrierEnable = presentBarrierEnable_;
       return *this;
@@ -97613,7 +111692,7 @@
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT( uint32_t                            swapchainCount_ = {},
                                                        const VULKAN_HPP_NAMESPACE::Fence * pFences_        = {},
-                                                       void *                              pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+                                                       const void *                        pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , swapchainCount( swapchainCount_ )
       , pFences( pFences_ )
@@ -97628,7 +111707,8 @@
     }
 
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    SwapchainPresentFenceInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_, void * pNext_ = nullptr )
+    SwapchainPresentFenceInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_,
+                                  const void *                                                                             pNext_ = nullptr )
       : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( fences_.size() ) ), pFences( fences_.data() )
     {
     }
@@ -97644,7 +111724,7 @@
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
@@ -97687,7 +111767,7 @@
 #  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
 #  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Fence * const &>
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Fence * const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -97715,7 +111795,7 @@
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eSwapchainPresentFenceInfoEXT;
-    void *                              pNext          = {};
+    const void *                        pNext          = {};
     uint32_t                            swapchainCount = {};
     const VULKAN_HPP_NAMESPACE::Fence * pFences        = {};
   };
@@ -97736,7 +111816,7 @@
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT( uint32_t                                     swapchainCount_ = {},
                                                       const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_  = {},
-                                                      void *                                       pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+                                                      const void *                                 pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , swapchainCount( swapchainCount_ )
       , pPresentModes( pPresentModes_ )
@@ -97752,7 +111832,7 @@
 
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     SwapchainPresentModeInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
-                                 void *                                                                                            pNext_ = nullptr )
+                                 const void *                                                                                      pNext_ = nullptr )
       : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
     {
     }
@@ -97768,7 +111848,7 @@
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
@@ -97811,7 +111891,7 @@
 #  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
 #  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -97839,7 +111919,7 @@
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType          sType          = StructureType::eSwapchainPresentModeInfoEXT;
-    void *                                       pNext          = {};
+    const void *                                 pNext          = {};
     uint32_t                                     swapchainCount = {};
     const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes  = {};
   };
@@ -97860,7 +111940,7 @@
 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT( uint32_t                                     presentModeCount_ = {},
                                                              const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_    = {},
-                                                             void *                                       pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+                                                             const void *                                 pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , presentModeCount( presentModeCount_ )
       , pPresentModes( pPresentModes_ )
@@ -97876,7 +111956,7 @@
 
 #  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     SwapchainPresentModesCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
-                                        void *                                                                                            pNext_ = nullptr )
+                                        const void *                                                                                      pNext_ = nullptr )
       : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
     {
     }
@@ -97892,7 +111972,7 @@
     }
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
@@ -97905,7 +111985,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT &
-                            setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
+      setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
     {
       pPresentModes = pPresentModes_;
       return *this;
@@ -97936,7 +112016,7 @@
 #  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
 #  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
 #  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
@@ -97964,7 +112044,7 @@
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType          sType            = StructureType::eSwapchainPresentModesCreateInfoEXT;
-    void *                                       pNext            = {};
+    const void *                                 pNext            = {};
     uint32_t                                     presentModeCount = {};
     const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes    = {};
   };
@@ -98018,21 +112098,21 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
-                            setScalingBehavior( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ ) VULKAN_HPP_NOEXCEPT
+      setScalingBehavior( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ ) VULKAN_HPP_NOEXCEPT
     {
       scalingBehavior = scalingBehavior_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
-                            setPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ ) VULKAN_HPP_NOEXCEPT
+      setPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ ) VULKAN_HPP_NOEXCEPT
     {
       presentGravityX = presentGravityX_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
-                            setPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ ) VULKAN_HPP_NOEXCEPT
+      setPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ ) VULKAN_HPP_NOEXCEPT
     {
       presentGravityY = presentGravityY_;
       return *this;
@@ -98129,12 +112209,12 @@
       return *this;
     }
 
-    explicit operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
+    operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD *>( this );
     }
 
-    explicit operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
+    operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD *>( this );
     }
@@ -98399,12 +112479,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
+    operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo *>( this );
     }
 
-    explicit operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
+    operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo *>( this );
     }
@@ -98460,6 +112540,7 @@
   {
     using Type = TimelineSemaphoreSubmitInfo;
   };
+
   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
 
   struct TraceRaysIndirectCommand2KHR
@@ -98516,77 +112597,77 @@
 
 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setRaygenShaderRecordAddress( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ ) VULKAN_HPP_NOEXCEPT
+      setRaygenShaderRecordAddress( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       raygenShaderRecordAddress = raygenShaderRecordAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setRaygenShaderRecordSize( VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ ) VULKAN_HPP_NOEXCEPT
+      setRaygenShaderRecordSize( VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ ) VULKAN_HPP_NOEXCEPT
     {
       raygenShaderRecordSize = raygenShaderRecordSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setMissShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
+      setMissShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       missShaderBindingTableAddress = missShaderBindingTableAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setMissShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
+      setMissShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
     {
       missShaderBindingTableSize = missShaderBindingTableSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setMissShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
+      setMissShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
     {
       missShaderBindingTableStride = missShaderBindingTableStride_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setHitShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
+      setHitShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       hitShaderBindingTableAddress = hitShaderBindingTableAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setHitShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
+      setHitShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
     {
       hitShaderBindingTableSize = hitShaderBindingTableSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setHitShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
+      setHitShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
     {
       hitShaderBindingTableStride = hitShaderBindingTableStride_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setCallableShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
+      setCallableShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
     {
       callableShaderBindingTableAddress = callableShaderBindingTableAddress_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setCallableShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
+      setCallableShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
     {
       callableShaderBindingTableSize = callableShaderBindingTableSize_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
-                            setCallableShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
+      setCallableShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
     {
       callableShaderBindingTableStride = callableShaderBindingTableStride_;
       return *this;
@@ -98754,12 +112835,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR *>( this );
     }
 
-    explicit operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR *>( this );
     }
@@ -98881,12 +112962,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( this );
     }
 
-    explicit operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkValidationCacheCreateInfoEXT *>( this );
     }
@@ -99047,12 +113128,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkValidationFeaturesEXT *>( this );
     }
 
-    explicit operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkValidationFeaturesEXT *>( this );
     }
@@ -99163,7 +113244,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT &
-                            setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
+      setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
     {
       pDisabledValidationChecks = pDisabledValidationChecks_;
       return *this;
@@ -99180,12 +113261,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkValidationFlagsEXT *>( this );
     }
 
-    explicit operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkValidationFlagsEXT *>( this );
     }
@@ -99303,12 +113384,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( this );
     }
 
-    explicit operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVertexInputAttributeDescription2EXT *>( this );
     }
@@ -99433,12 +113514,12 @@
     }
 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( this );
     }
 
-    explicit operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVertexInputBindingDescription2EXT *>( this );
     }
@@ -99547,12 +113628,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
+    operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkViSurfaceCreateInfoNN *>( this );
     }
 
-    explicit operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
+    operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkViSurfaceCreateInfoNN *>( this );
     }
@@ -99601,7 +113682,6 @@
   };
 #endif /*VK_USE_PLATFORM_VI_NN*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoPictureResourceInfoKHR
   {
     using NativeType = VkVideoPictureResourceInfoKHR;
@@ -99609,7 +113689,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoPictureResourceInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VULKAN_HPP_NAMESPACE::Offset2D  codedOffset_      = {},
                                                       VULKAN_HPP_NAMESPACE::Extent2D  codedExtent_      = {},
                                                       uint32_t                        baseArrayLayer_   = {},
@@ -99631,7 +113711,7 @@
     }
 
     VideoPictureResourceInfoKHR & operator=( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoPictureResourceInfoKHR & operator=( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -99639,7 +113719,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -99669,7 +113749,7 @@
       imageViewBinding = imageViewBinding_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoPictureResourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -99681,41 +113761,41 @@
       return *reinterpret_cast<VkVideoPictureResourceInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::Offset2D const &,
                VULKAN_HPP_NAMESPACE::Extent2D const &,
                uint32_t const &,
                VULKAN_HPP_NAMESPACE::ImageView const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, codedOffset, codedExtent, baseArrayLayer, imageViewBinding );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoPictureResourceInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( codedOffset == rhs.codedOffset ) && ( codedExtent == rhs.codedExtent ) &&
              ( baseArrayLayer == rhs.baseArrayLayer ) && ( imageViewBinding == rhs.imageViewBinding );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType            = StructureType::eVideoPictureResourceInfoKHR;
@@ -99731,9 +113811,7 @@
   {
     using Type = VideoPictureResourceInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoReferenceSlotInfoKHR
   {
     using NativeType = VkVideoReferenceSlotInfoKHR;
@@ -99741,7 +113819,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoReferenceSlotInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( int32_t                                                   slotIndex_        = {},
                                                     const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ = {},
                                                     const void *                                              pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
@@ -99759,7 +113837,7 @@
     }
 
     VideoReferenceSlotInfoKHR & operator=( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoReferenceSlotInfoKHR & operator=( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -99767,7 +113845,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -99781,12 +113859,12 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR &
-                            setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT
+      setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT
     {
       pPictureResource = pPictureResource_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoReferenceSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -99798,38 +113876,38 @@
       return *reinterpret_cast<VkVideoReferenceSlotInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                int32_t const &,
                const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, slotIndex, pPictureResource );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoReferenceSlotInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pPictureResource == rhs.pPictureResource );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                       sType            = StructureType::eVideoReferenceSlotInfoKHR;
@@ -99843,9 +113921,7 @@
   {
     using Type = VideoReferenceSlotInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoBeginCodingInfoKHR
   {
     using NativeType = VkVideoBeginCodingInfoKHR;
@@ -99853,7 +113929,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoBeginCodingInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR          flags_                  = {},
                                                   VULKAN_HPP_NAMESPACE::VideoSessionKHR                   videoSession_           = {},
                                                   VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR         videoSessionParameters_ = {},
@@ -99876,7 +113952,7 @@
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR  flags_,
                              VULKAN_HPP_NAMESPACE::VideoSessionKHR           videoSession_,
                              VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_,
@@ -99890,10 +113966,10 @@
       , pReferenceSlots( referenceSlots_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VideoBeginCodingInfoKHR & operator=( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoBeginCodingInfoKHR & operator=( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -99901,7 +113977,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -99921,7 +113997,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
-                            setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
+      setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
     {
       videoSessionParameters = videoSessionParameters_;
       return *this;
@@ -99934,13 +114010,13 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
-                            setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
+      setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
       pReferenceSlots = pReferenceSlots_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoBeginCodingInfoKHR & setReferenceSlots(
       VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
@@ -99948,23 +114024,23 @@
       pReferenceSlots    = referenceSlots_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( this );
     }
 
-    explicit operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoBeginCodingInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR const &,
@@ -99972,32 +114048,32 @@
                VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
                uint32_t const &,
                const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, flags, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoBeginCodingInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( videoSession == rhs.videoSession ) &&
              ( videoSessionParameters == rhs.videoSessionParameters ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
              ( pReferenceSlots == rhs.pReferenceSlots );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                     sType                  = StructureType::eVideoBeginCodingInfoKHR;
@@ -100014,9 +114090,7 @@
   {
     using Type = VideoBeginCodingInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoCapabilitiesKHR
   {
     using NativeType = VkVideoCapabilitiesKHR;
@@ -100024,7 +114098,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoCapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR flags_                             = {},
                                                   VULKAN_HPP_NAMESPACE::DeviceSize              minBitstreamBufferOffsetAlignment_ = {},
                                                   VULKAN_HPP_NAMESPACE::DeviceSize              minBitstreamBufferSizeAlignment_   = {},
@@ -100056,7 +114130,7 @@
     }
 
     VideoCapabilitiesKHR & operator=( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoCapabilitiesKHR & operator=( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -100064,20 +114138,20 @@
       return *this;
     }
 
-    explicit operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoCapabilitiesKHR *>( this );
     }
 
-    explicit operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoCapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                void * const &,
                VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR const &,
@@ -100089,7 +114163,7 @@
                uint32_t const &,
                uint32_t const &,
                VULKAN_HPP_NAMESPACE::ExtensionProperties const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType,
@@ -100104,29 +114178,29 @@
                        maxActiveReferencePictures,
                        stdHeaderVersion );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoCapabilitiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
              ( minBitstreamBufferOffsetAlignment == rhs.minBitstreamBufferOffsetAlignment ) &&
              ( minBitstreamBufferSizeAlignment == rhs.minBitstreamBufferSizeAlignment ) && ( pictureAccessGranularity == rhs.pictureAccessGranularity ) &&
              ( minCodedExtent == rhs.minCodedExtent ) && ( maxCodedExtent == rhs.maxCodedExtent ) && ( maxDpbSlots == rhs.maxDpbSlots ) &&
              ( maxActiveReferencePictures == rhs.maxActiveReferencePictures ) && ( stdHeaderVersion == rhs.stdHeaderVersion );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType           sType                             = StructureType::eVideoCapabilitiesKHR;
@@ -100147,9 +114221,7 @@
   {
     using Type = VideoCapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoCodingControlInfoKHR
   {
     using NativeType = VkVideoCodingControlInfoKHR;
@@ -100157,7 +114229,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoCodingControlInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {},
                                                     const void *                                     pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -100173,7 +114245,7 @@
     }
 
     VideoCodingControlInfoKHR & operator=( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoCodingControlInfoKHR & operator=( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -100181,7 +114253,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -100193,47 +114265,47 @@
       flags = flags_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoCodingControlInfoKHR *>( this );
     }
 
-    explicit operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoCodingControlInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, flags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoCodingControlInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType              sType = StructureType::eVideoCodingControlInfoKHR;
@@ -100246,9 +114318,7 @@
   {
     using Type = VideoCodingControlInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoDecodeCapabilitiesKHR
   {
     using NativeType = VkVideoDecodeCapabilitiesKHR;
@@ -100256,7 +114326,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeCapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags_ = {},
                                                      void *                                              pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -100272,7 +114342,7 @@
     }
 
     VideoDecodeCapabilitiesKHR & operator=( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoDecodeCapabilitiesKHR & operator=( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -100290,35 +114360,35 @@
       return *reinterpret_cast<VkVideoDecodeCapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, flags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoDecodeCapabilitiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                 sType = StructureType::eVideoDecodeCapabilitiesKHR;
@@ -100331,18 +114401,16 @@
   {
     using Type = VideoDecodeCapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264CapabilitiesEXT
+  struct VideoDecodeH264CapabilitiesKHR
   {
-    using NativeType = VkVideoDecodeH264CapabilitiesEXT;
+    using NativeType = VkVideoDecodeH264CapabilitiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264CapabilitiesEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264CapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesEXT( StdVideoH264LevelIdc           maxLevelIdc_            = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( StdVideoH264LevelIdc           maxLevelIdc_            = {},
                                                          VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {},
                                                          void *                         pNext_                  = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -100351,46 +114419,46 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesEXT( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264CapabilitiesEXT( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264CapabilitiesEXT( *reinterpret_cast<VideoDecodeH264CapabilitiesEXT const *>( &rhs ) )
+    VideoDecodeH264CapabilitiesKHR( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264CapabilitiesKHR( *reinterpret_cast<VideoDecodeH264CapabilitiesKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH264CapabilitiesEXT & operator=( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264CapabilitiesKHR & operator=( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264CapabilitiesEXT & operator=( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264CapabilitiesKHR & operator=( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR const *>( &rhs );
       return *this;
     }
 
-    explicit operator VkVideoDecodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264CapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH264LevelIdc const &, VULKAN_HPP_NAMESPACE::Offset2D const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxLevelIdc, fieldOffsetGranularity );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -100403,143 +114471,139 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 ) &&
              ( fieldOffsetGranularity == rhs.fieldOffsetGranularity );
     }
 
-    bool operator!=( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType                  = StructureType::eVideoDecodeH264CapabilitiesEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType                  = StructureType::eVideoDecodeH264CapabilitiesKHR;
     void *                              pNext                  = {};
     StdVideoH264LevelIdc                maxLevelIdc            = {};
     VULKAN_HPP_NAMESPACE::Offset2D      fieldOffsetGranularity = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264CapabilitiesEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264CapabilitiesKHR>
   {
-    using Type = VideoDecodeH264CapabilitiesEXT;
+    using Type = VideoDecodeH264CapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264DpbSlotInfoEXT
+  struct VideoDecodeH264DpbSlotInfoKHR
   {
-    using NativeType = VkVideoDecodeH264DpbSlotInfoEXT;
+    using NativeType = VkVideoDecodeH264DpbSlotInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264DpbSlotInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoEXT( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {},
                                                         const void *                            pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , pStdReferenceInfo( pStdReferenceInfo_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoEXT( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264DpbSlotInfoEXT( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoDecodeH264DpbSlotInfoEXT const *>( &rhs ) )
+    VideoDecodeH264DpbSlotInfoKHR( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH264DpbSlotInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH264DpbSlotInfoEXT & operator=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264DpbSlotInfoKHR & operator=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264DpbSlotInfoEXT & operator=( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264DpbSlotInfoKHR & operator=( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoEXT &
-                            setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR &
+      setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdReferenceInfo = pStdReferenceInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264DpbSlotInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264ReferenceInfo * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, pStdReferenceInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH264DpbSlotInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH264DpbSlotInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoDecodeH264DpbSlotInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
     const void *                            pNext             = {};
     const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264DpbSlotInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264DpbSlotInfoKHR>
   {
-    using Type = VideoDecodeH264DpbSlotInfoEXT;
+    using Type = VideoDecodeH264DpbSlotInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264PictureInfoEXT
+  struct VideoDecodeH264PictureInfoKHR
   {
-    using NativeType = VkVideoDecodeH264PictureInfoEXT;
+    using NativeType = VkVideoDecodeH264PictureInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264PictureInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264PictureInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoEXT( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {},
                                                         uint32_t                              sliceCount_      = {},
                                                         const uint32_t *                      pSliceOffsets_   = {},
                                                         const void *                          pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
@@ -100550,113 +114614,113 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoEXT( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264PictureInfoEXT( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264PictureInfoEXT( *reinterpret_cast<VideoDecodeH264PictureInfoEXT const *>( &rhs ) )
+    VideoDecodeH264PictureInfoKHR( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264PictureInfoKHR( *reinterpret_cast<VideoDecodeH264PictureInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH264PictureInfoEXT( const StdVideoDecodeH264PictureInfo *                                 pStdPictureInfo_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH264PictureInfoKHR( const StdVideoDecodeH264PictureInfo *                                 pStdPictureInfo_,
                                    VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_,
                                    const void *                                                          pNext_ = nullptr )
       : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceCount( static_cast<uint32_t>( sliceOffsets_.size() ) ), pSliceOffsets( sliceOffsets_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoDecodeH264PictureInfoEXT & operator=( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264PictureInfoKHR & operator=( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264PictureInfoEXT & operator=( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264PictureInfoKHR & operator=( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPictureInfo = pStdPictureInfo_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
     {
       sliceCount = sliceCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPSliceOffsets( const uint32_t * pSliceOffsets_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPSliceOffsets( const uint32_t * pSliceOffsets_ ) VULKAN_HPP_NOEXCEPT
     {
       pSliceOffsets = pSliceOffsets_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH264PictureInfoEXT & setSliceOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_ ) VULKAN_HPP_NOEXCEPT
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH264PictureInfoKHR & setSliceOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_ ) VULKAN_HPP_NOEXCEPT
     {
       sliceCount    = static_cast<uint32_t>( sliceOffsets_.size() );
       pSliceOffsets = sliceOffsets_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH264PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264PictureInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264PictureInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                const StdVideoDecodeH264PictureInfo * const &,
                uint32_t const &,
                const uint32_t * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, pStdPictureInfo, sliceCount, pSliceOffsets );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH264PictureInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH264PictureInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( sliceCount == rhs.sliceCount ) &&
              ( pSliceOffsets == rhs.pSliceOffsets );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType   sType           = StructureType::eVideoDecodeH264PictureInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType   sType           = StructureType::eVideoDecodeH264PictureInfoKHR;
     const void *                          pNext           = {};
     const StdVideoDecodeH264PictureInfo * pStdPictureInfo = {};
     uint32_t                              sliceCount      = {};
@@ -100664,24 +114728,22 @@
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264PictureInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264PictureInfoKHR>
   {
-    using Type = VideoDecodeH264PictureInfoEXT;
+    using Type = VideoDecodeH264PictureInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264ProfileInfoEXT
+  struct VideoDecodeH264ProfileInfoKHR
   {
-    using NativeType = VkVideoDecodeH264ProfileInfoEXT;
+    using NativeType = VkVideoDecodeH264ProfileInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264ProfileInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264ProfileInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoEXT( StdVideoH264ProfileIdc                                        stdProfileIdc_ = {},
-                                                        VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT pictureLayout_ =
-                                                          VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive,
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR( StdVideoH264ProfileIdc                                        stdProfileIdc_ = {},
+                                                        VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ =
+                                                          VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive,
                                                         const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , stdProfileIdc( stdProfileIdc_ )
@@ -100689,69 +114751,70 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoEXT( VideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264ProfileInfoEXT( VkVideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264ProfileInfoEXT( *reinterpret_cast<VideoDecodeH264ProfileInfoEXT const *>( &rhs ) )
+    VideoDecodeH264ProfileInfoKHR( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264ProfileInfoKHR( *reinterpret_cast<VideoDecodeH264ProfileInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH264ProfileInfoEXT & operator=( VideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264ProfileInfoKHR & operator=( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264ProfileInfoEXT & operator=( VkVideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264ProfileInfoKHR & operator=( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
     {
       stdProfileIdc = stdProfileIdc_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT &
-                            setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT pictureLayout_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR &
+      setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ ) VULKAN_HPP_NOEXCEPT
     {
       pictureLayout = pictureLayout_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoDecodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264ProfileInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR *>( this );
     }
 
-    operator VkVideoDecodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264ProfileInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264ProfileInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                StdVideoH264ProfileIdc const &,
-               VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT const &>
-#    endif
+               VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdProfileIdc, pictureLayout );
     }
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -100764,43 +114827,41 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ) &&
              ( pictureLayout == rhs.pictureLayout );
     }
 
-    bool operator!=( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                           sType         = StructureType::eVideoDecodeH264ProfileInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                           sType         = StructureType::eVideoDecodeH264ProfileInfoKHR;
     const void *                                                  pNext         = {};
     StdVideoH264ProfileIdc                                        stdProfileIdc = {};
-    VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT pictureLayout = VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive;
+    VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout = VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive;
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264ProfileInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264ProfileInfoKHR>
   {
-    using Type = VideoDecodeH264ProfileInfoEXT;
+    using Type = VideoDecodeH264ProfileInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264SessionParametersAddInfoEXT
+  struct VideoDecodeH264SessionParametersAddInfoKHR
   {
-    using NativeType = VkVideoDecodeH264SessionParametersAddInfoEXT;
+    using NativeType = VkVideoDecodeH264SessionParametersAddInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264SessionParametersAddInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( uint32_t                                 stdSPSCount_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR( uint32_t                                 stdSPSCount_ = {},
                                                                      const StdVideoH264SequenceParameterSet * pStdSPSs_    = {},
                                                                      uint32_t                                 stdPPSCount_ = {},
                                                                      const StdVideoH264PictureParameterSet *  pStdPPSs_    = {},
@@ -100813,15 +114874,15 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264SessionParametersAddInfoEXT( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoDecodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
+    VideoDecodeH264SessionParametersAddInfoKHR( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH264SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const &  stdPPSs_ = {},
                                                 const void *                                                                                  pNext_ = nullptr )
       : pNext( pNext_ )
@@ -100831,117 +114892,117 @@
       , pStdPPSs( stdPPSs_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoDecodeH264SessionParametersAddInfoEXT & operator=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264SessionParametersAddInfoKHR & operator=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264SessionParametersAddInfoEXT & operator=( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264SessionParametersAddInfoKHR & operator=( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = stdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdSPSs = pStdSPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH264SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH264SessionParametersAddInfoKHR &
       setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
       pStdSPSs    = stdSPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = stdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPPSs = pStdPPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH264SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH264SessionParametersAddInfoKHR &
       setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
       pStdPPSs    = stdPPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                const StdVideoH264SequenceParameterSet * const &,
                uint32_t const &,
                const StdVideoH264PictureParameterSet * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH264SessionParametersAddInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH264SessionParametersAddInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) &&
              ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoDecodeH264SessionParametersAddInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
     const void *                             pNext       = {};
     uint32_t                                 stdSPSCount = {};
     const StdVideoH264SequenceParameterSet * pStdSPSs    = {};
@@ -100950,25 +115011,23 @@
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersAddInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersAddInfoKHR>
   {
-    using Type = VideoDecodeH264SessionParametersAddInfoEXT;
+    using Type = VideoDecodeH264SessionParametersAddInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH264SessionParametersCreateInfoEXT
+  struct VideoDecodeH264SessionParametersCreateInfoKHR
   {
-    using NativeType = VkVideoDecodeH264SessionParametersCreateInfoEXT;
+    using NativeType = VkVideoDecodeH264SessionParametersCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
-      VideoDecodeH264SessionParametersCreateInfoEXT( uint32_t                                                                 maxStdSPSCount_     = {},
+      VideoDecodeH264SessionParametersCreateInfoKHR( uint32_t                                                                 maxStdSPSCount_     = {},
                                                      uint32_t                                                                 maxStdPPSCount_     = {},
-                                                     const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
+                                                     const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
                                                      const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , maxStdSPSCount( maxStdSPSCount_ )
@@ -100978,164 +115037,162 @@
     }
 
     VULKAN_HPP_CONSTEXPR
-      VideoDecodeH264SessionParametersCreateInfoEXT( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+      VideoDecodeH264SessionParametersCreateInfoKHR( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH264SessionParametersCreateInfoEXT( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoDecodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
+    VideoDecodeH264SessionParametersCreateInfoKHR( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH264SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH264SessionParametersCreateInfoEXT & operator=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH264SessionParametersCreateInfoEXT & operator=( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdSPSCount = maxStdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdPPSCount = maxStdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT &
-      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR &
+      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pParametersAddInfo = pParametersAddInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH264SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH264SessionParametersCreateInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH264SessionParametersCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) && ( maxStdPPSCount == rhs.maxStdPPSCount ) &&
              ( pParametersAddInfo == rhs.pParametersAddInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
     const void *                                                             pNext              = {};
     uint32_t                                                                 maxStdSPSCount     = {};
     uint32_t                                                                 maxStdPPSCount     = {};
-    const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
+    const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR>
   {
-    using Type = VideoDecodeH264SessionParametersCreateInfoEXT;
+    using Type = VideoDecodeH264SessionParametersCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265CapabilitiesEXT
+  struct VideoDecodeH265CapabilitiesKHR
   {
-    using NativeType = VkVideoDecodeH265CapabilitiesEXT;
+    using NativeType = VkVideoDecodeH265CapabilitiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265CapabilitiesEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265CapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesEXT( StdVideoH265LevelIdc maxLevelIdc_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( StdVideoH265LevelIdc maxLevelIdc_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , maxLevelIdc( maxLevelIdc_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesEXT( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265CapabilitiesEXT( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265CapabilitiesEXT( *reinterpret_cast<VideoDecodeH265CapabilitiesEXT const *>( &rhs ) )
+    VideoDecodeH265CapabilitiesKHR( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265CapabilitiesKHR( *reinterpret_cast<VideoDecodeH265CapabilitiesKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH265CapabilitiesEXT & operator=( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265CapabilitiesKHR & operator=( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265CapabilitiesEXT & operator=( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265CapabilitiesKHR & operator=( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR const *>( &rhs );
       return *this;
     }
 
-    explicit operator VkVideoDecodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265CapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH265LevelIdc const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxLevelIdc );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -101146,144 +115203,140 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
     }
 
-    bool operator!=( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType       = StructureType::eVideoDecodeH265CapabilitiesEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType       = StructureType::eVideoDecodeH265CapabilitiesKHR;
     void *                              pNext       = {};
     StdVideoH265LevelIdc                maxLevelIdc = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265CapabilitiesEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265CapabilitiesKHR>
   {
-    using Type = VideoDecodeH265CapabilitiesEXT;
+    using Type = VideoDecodeH265CapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265DpbSlotInfoEXT
+  struct VideoDecodeH265DpbSlotInfoKHR
   {
-    using NativeType = VkVideoDecodeH265DpbSlotInfoEXT;
+    using NativeType = VkVideoDecodeH265DpbSlotInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265DpbSlotInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoEXT( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {},
                                                         const void *                            pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , pStdReferenceInfo( pStdReferenceInfo_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoEXT( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265DpbSlotInfoEXT( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoDecodeH265DpbSlotInfoEXT const *>( &rhs ) )
+    VideoDecodeH265DpbSlotInfoKHR( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH265DpbSlotInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH265DpbSlotInfoEXT & operator=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265DpbSlotInfoKHR & operator=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265DpbSlotInfoEXT & operator=( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265DpbSlotInfoKHR & operator=( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoEXT &
-                            setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR &
+      setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdReferenceInfo = pStdReferenceInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265DpbSlotInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH265ReferenceInfo * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, pStdReferenceInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH265DpbSlotInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH265DpbSlotInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoDecodeH265DpbSlotInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
     const void *                            pNext             = {};
     const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265DpbSlotInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265DpbSlotInfoKHR>
   {
-    using Type = VideoDecodeH265DpbSlotInfoEXT;
+    using Type = VideoDecodeH265DpbSlotInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265PictureInfoEXT
+  struct VideoDecodeH265PictureInfoKHR
   {
-    using NativeType = VkVideoDecodeH265PictureInfoEXT;
+    using NativeType = VkVideoDecodeH265PictureInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265PictureInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265PictureInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoEXT( StdVideoDecodeH265PictureInfo * pStdPictureInfo_      = {},
-                                                        uint32_t                        sliceSegmentCount_    = {},
-                                                        const uint32_t *                pSliceSegmentOffsets_ = {},
-                                                        const void *                    pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_      = {},
+                                                        uint32_t                              sliceSegmentCount_    = {},
+                                                        const uint32_t *                      pSliceSegmentOffsets_ = {},
+                                                        const void *                          pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , pStdPictureInfo( pStdPictureInfo_ )
       , sliceSegmentCount( sliceSegmentCount_ )
@@ -101291,15 +115344,15 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoEXT( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265PictureInfoEXT( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265PictureInfoEXT( *reinterpret_cast<VideoDecodeH265PictureInfoEXT const *>( &rhs ) )
+    VideoDecodeH265PictureInfoKHR( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265PictureInfoKHR( *reinterpret_cast<VideoDecodeH265PictureInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265PictureInfoEXT( StdVideoDecodeH265PictureInfo *                                       pStdPictureInfo_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265PictureInfoKHR( const StdVideoDecodeH265PictureInfo *                                 pStdPictureInfo_,
                                    VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_,
                                    const void *                                                          pNext_ = nullptr )
       : pNext( pNext_ )
@@ -101308,181 +115361,180 @@
       , pSliceSegmentOffsets( sliceSegmentOffsets_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoDecodeH265PictureInfoEXT & operator=( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265PictureInfoKHR & operator=( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265PictureInfoEXT & operator=( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265PictureInfoKHR & operator=( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPStdPictureInfo( StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPictureInfo = pStdPictureInfo_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setSliceSegmentCount( uint32_t sliceSegmentCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setSliceSegmentCount( uint32_t sliceSegmentCount_ ) VULKAN_HPP_NOEXCEPT
     {
       sliceSegmentCount = sliceSegmentCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPSliceSegmentOffsets( const uint32_t * pSliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPSliceSegmentOffsets( const uint32_t * pSliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
     {
       pSliceSegmentOffsets = pSliceSegmentOffsets_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265PictureInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265PictureInfoKHR &
       setSliceSegmentOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
     {
       sliceSegmentCount    = static_cast<uint32_t>( sliceSegmentOffsets_.size() );
       pSliceSegmentOffsets = sliceSegmentOffsets_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH265PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265PictureInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265PictureInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               StdVideoDecodeH265PictureInfo * const &,
+               const StdVideoDecodeH265PictureInfo * const &,
                uint32_t const &,
                const uint32_t * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, pStdPictureInfo, sliceSegmentCount, pSliceSegmentOffsets );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH265PictureInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH265PictureInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( sliceSegmentCount == rhs.sliceSegmentCount ) &&
              ( pSliceSegmentOffsets == rhs.pSliceSegmentOffsets );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType                = StructureType::eVideoDecodeH265PictureInfoEXT;
-    const void *                        pNext                = {};
-    StdVideoDecodeH265PictureInfo *     pStdPictureInfo      = {};
-    uint32_t                            sliceSegmentCount    = {};
-    const uint32_t *                    pSliceSegmentOffsets = {};
+    VULKAN_HPP_NAMESPACE::StructureType   sType                = StructureType::eVideoDecodeH265PictureInfoKHR;
+    const void *                          pNext                = {};
+    const StdVideoDecodeH265PictureInfo * pStdPictureInfo      = {};
+    uint32_t                              sliceSegmentCount    = {};
+    const uint32_t *                      pSliceSegmentOffsets = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265PictureInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265PictureInfoKHR>
   {
-    using Type = VideoDecodeH265PictureInfoEXT;
+    using Type = VideoDecodeH265PictureInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265ProfileInfoEXT
+  struct VideoDecodeH265ProfileInfoKHR
   {
-    using NativeType = VkVideoDecodeH265ProfileInfoEXT;
+    using NativeType = VkVideoDecodeH265ProfileInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265ProfileInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265ProfileInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , stdProfileIdc( stdProfileIdc_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoEXT( VideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265ProfileInfoEXT( VkVideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265ProfileInfoEXT( *reinterpret_cast<VideoDecodeH265ProfileInfoEXT const *>( &rhs ) )
+    VideoDecodeH265ProfileInfoKHR( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265ProfileInfoKHR( *reinterpret_cast<VideoDecodeH265ProfileInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH265ProfileInfoEXT & operator=( VideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265ProfileInfoKHR & operator=( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265ProfileInfoEXT & operator=( VkVideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265ProfileInfoKHR & operator=( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
     {
       stdProfileIdc = stdProfileIdc_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoDecodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265ProfileInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR *>( this );
     }
 
-    operator VkVideoDecodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265ProfileInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265ProfileInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdProfileIdc );
     }
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -101493,41 +115545,39 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
     }
 
-    bool operator!=( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoDecodeH265ProfileInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoDecodeH265ProfileInfoKHR;
     const void *                        pNext         = {};
     StdVideoH265ProfileIdc              stdProfileIdc = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265ProfileInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265ProfileInfoKHR>
   {
-    using Type = VideoDecodeH265ProfileInfoEXT;
+    using Type = VideoDecodeH265ProfileInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265SessionParametersAddInfoEXT
+  struct VideoDecodeH265SessionParametersAddInfoKHR
   {
-    using NativeType = VkVideoDecodeH265SessionParametersAddInfoEXT;
+    using NativeType = VkVideoDecodeH265SessionParametersAddInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265SessionParametersAddInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( uint32_t                                 stdVPSCount_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR( uint32_t                                 stdVPSCount_ = {},
                                                                      const StdVideoH265VideoParameterSet *    pStdVPSs_    = {},
                                                                      uint32_t                                 stdSPSCount_ = {},
                                                                      const StdVideoH265SequenceParameterSet * pStdSPSs_    = {},
@@ -101544,15 +115594,15 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265SessionParametersAddInfoEXT( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoDecodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
+    VideoDecodeH265SessionParametersAddInfoKHR( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const &    stdVPSs_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const &    stdVPSs_,
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {},
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const &  stdPPSs_ = {},
                                                 const void *                                                                                  pNext_ = nullptr )
@@ -101565,105 +115615,105 @@
       , pStdPPSs( stdPPSs_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoDecodeH265SessionParametersAddInfoEXT & operator=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265SessionParametersAddInfoKHR & operator=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265SessionParametersAddInfoEXT & operator=( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265SessionParametersAddInfoKHR & operator=( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdVPSCount = stdVPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdVPSs = pStdVPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265SessionParametersAddInfoKHR &
       setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
       pStdVPSs    = stdVPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = stdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdSPSs = pStdSPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265SessionParametersAddInfoKHR &
       setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
       pStdSPSs    = stdSPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = stdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPPSs = pStdPPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoDecodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoDecodeH265SessionParametersAddInfoKHR &
       setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
       pStdPPSs    = stdPPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
@@ -101672,34 +115722,34 @@
                const StdVideoH265SequenceParameterSet * const &,
                uint32_t const &,
                const StdVideoH265PictureParameterSet * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH265SessionParametersAddInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH265SessionParametersAddInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdVPSCount == rhs.stdVPSCount ) && ( pStdVPSs == rhs.pStdVPSs ) &&
              ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) && ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoDecodeH265SessionParametersAddInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
     const void *                             pNext       = {};
     uint32_t                                 stdVPSCount = {};
     const StdVideoH265VideoParameterSet *    pStdVPSs    = {};
@@ -101710,26 +115760,24 @@
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersAddInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersAddInfoKHR>
   {
-    using Type = VideoDecodeH265SessionParametersAddInfoEXT;
+    using Type = VideoDecodeH265SessionParametersAddInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoDecodeH265SessionParametersCreateInfoEXT
+  struct VideoDecodeH265SessionParametersCreateInfoKHR
   {
-    using NativeType = VkVideoDecodeH265SessionParametersCreateInfoEXT;
+    using NativeType = VkVideoDecodeH265SessionParametersCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
-      VideoDecodeH265SessionParametersCreateInfoEXT( uint32_t                                                                 maxStdVPSCount_     = {},
+      VideoDecodeH265SessionParametersCreateInfoKHR( uint32_t                                                                 maxStdVPSCount_     = {},
                                                      uint32_t                                                                 maxStdSPSCount_     = {},
                                                      uint32_t                                                                 maxStdPPSCount_     = {},
-                                                     const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
+                                                     const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
                                                      const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , maxStdVPSCount( maxStdVPSCount_ )
@@ -101740,118 +115788,116 @@
     }
 
     VULKAN_HPP_CONSTEXPR
-      VideoDecodeH265SessionParametersCreateInfoEXT( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+      VideoDecodeH265SessionParametersCreateInfoKHR( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoDecodeH265SessionParametersCreateInfoEXT( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoDecodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoDecodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
+    VideoDecodeH265SessionParametersCreateInfoKHR( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoDecodeH265SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoDecodeH265SessionParametersCreateInfoEXT & operator=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoDecodeH265SessionParametersCreateInfoEXT & operator=( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdVPSCount = maxStdVPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdSPSCount = maxStdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdPPSCount = maxStdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT &
-      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR &
+      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pParametersAddInfo = pParametersAddInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeH265SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                uint32_t const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoDecodeH265SessionParametersCreateInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoDecodeH265SessionParametersCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdVPSCount == rhs.maxStdVPSCount ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) &&
              ( maxStdPPSCount == rhs.maxStdPPSCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
     const void *                                                             pNext              = {};
     uint32_t                                                                 maxStdVPSCount     = {};
     uint32_t                                                                 maxStdSPSCount     = {};
     uint32_t                                                                 maxStdPPSCount     = {};
-    const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
+    const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR>
   {
-    using Type = VideoDecodeH265SessionParametersCreateInfoEXT;
+    using Type = VideoDecodeH265SessionParametersCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoDecodeInfoKHR
   {
     using NativeType = VkVideoDecodeInfoKHR;
@@ -101859,7 +115905,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR               flags_               = {},
                                              VULKAN_HPP_NAMESPACE::Buffer                            srcBuffer_           = {},
                                              VULKAN_HPP_NAMESPACE::DeviceSize                        srcBufferOffset_     = {},
@@ -101885,7 +115931,7 @@
 
     VideoDecodeInfoKHR( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoDecodeInfoKHR( *reinterpret_cast<VideoDecodeInfoKHR const *>( &rhs ) ) {}
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR                                                                    flags_,
                         VULKAN_HPP_NAMESPACE::Buffer                                                                                 srcBuffer_,
                         VULKAN_HPP_NAMESPACE::DeviceSize                                                                             srcBufferOffset_,
@@ -101905,10 +115951,10 @@
       , pReferenceSlots( referenceSlots_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VideoDecodeInfoKHR & operator=( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoDecodeInfoKHR & operator=( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -101916,7 +115962,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -101948,14 +115994,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
-                            setDstPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT
+      setDstPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT
     {
       dstPictureResource = dstPictureResource_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
-                            setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
+      setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
     {
       pSetupReferenceSlot = pSetupReferenceSlot_;
       return *this;
@@ -101968,13 +116014,13 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
-                            setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
+      setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
       pReferenceSlots = pReferenceSlots_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoDecodeInfoKHR & setReferenceSlots(
       VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
@@ -101982,23 +116028,23 @@
       pReferenceSlots    = referenceSlots_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoDecodeInfoKHR *>( this );
     }
 
-    explicit operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoDecodeInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR const &,
@@ -102009,34 +116055,34 @@
                const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
                uint32_t const &,
                const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie(
         sType, pNext, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoDecodeInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcBuffer == rhs.srcBuffer ) &&
              ( srcBufferOffset == rhs.srcBufferOffset ) && ( srcBufferRange == rhs.srcBufferRange ) && ( dstPictureResource == rhs.dstPictureResource ) &&
              ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
              ( pReferenceSlots == rhs.pReferenceSlots );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                     sType               = StructureType::eVideoDecodeInfoKHR;
@@ -102056,9 +116102,7 @@
   {
     using Type = VideoDecodeInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoDecodeUsageInfoKHR
   {
     using NativeType = VkVideoDecodeUsageInfoKHR;
@@ -102066,7 +116110,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoDecodeUsageInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ = {},
                                                   const void *                                   pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
@@ -102082,7 +116126,7 @@
     }
 
     VideoDecodeUsageInfoKHR & operator=( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoDecodeUsageInfoKHR & operator=( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -102090,7 +116134,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -102102,7 +116146,7 @@
       videoUsageHints = videoUsageHints_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoDecodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -102114,35 +116158,35 @@
       return *reinterpret_cast<VkVideoDecodeUsageInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, videoUsageHints );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoDecodeUsageInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType            sType           = StructureType::eVideoDecodeUsageInfoKHR;
@@ -102155,9 +116199,7 @@
   {
     using Type = VideoDecodeUsageInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoEncodeCapabilitiesKHR
   {
     using NativeType = VkVideoEncodeCapabilitiesKHR;
@@ -102165,19 +116207,23 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeCapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR      flags_                       = {},
-                                                     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes_            = {},
-                                                     uint8_t                                                  rateControlLayerCount_       = {},
-                                                     uint8_t                                                  qualityLevelCount_           = {},
-                                                     VULKAN_HPP_NAMESPACE::Extent2D                           inputImageDataFillAlignment_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR      flags_                         = {},
+                                                     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes_              = {},
+                                                     uint32_t                                                 maxRateControlLayers_          = {},
+                                                     uint64_t                                                 maxBitrate_                    = {},
+                                                     uint32_t                                                 maxQualityLevels_              = {},
+                                                     VULKAN_HPP_NAMESPACE::Extent2D                           encodeInputPictureGranularity_ = {},
+                                                     VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR        supportedEncodeFeedbackFlags_  = {},
                                                      void *                                                   pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
       , rateControlModes( rateControlModes_ )
-      , rateControlLayerCount( rateControlLayerCount_ )
-      , qualityLevelCount( qualityLevelCount_ )
-      , inputImageDataFillAlignment( inputImageDataFillAlignment_ )
+      , maxRateControlLayers( maxRateControlLayers_ )
+      , maxBitrate( maxBitrate_ )
+      , maxQualityLevels( maxQualityLevels_ )
+      , encodeInputPictureGranularity( encodeInputPictureGranularity_ )
+      , supportedEncodeFeedbackFlags( supportedEncodeFeedbackFlags_ )
     {
     }
 
@@ -102189,7 +116235,7 @@
     }
 
     VideoEncodeCapabilitiesKHR & operator=( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEncodeCapabilitiesKHR & operator=( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -102207,52 +116253,64 @@
       return *reinterpret_cast<VkVideoEncodeCapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                void * const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR const &,
-               uint8_t const &,
-               uint8_t const &,
-               VULKAN_HPP_NAMESPACE::Extent2D const &>
-#    endif
+               uint32_t const &,
+               uint64_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::Extent2D const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, flags, rateControlModes, rateControlLayerCount, qualityLevelCount, inputImageDataFillAlignment );
+      return std::tie( sType,
+                       pNext,
+                       flags,
+                       rateControlModes,
+                       maxRateControlLayers,
+                       maxBitrate,
+                       maxQualityLevels,
+                       encodeInputPictureGranularity,
+                       supportedEncodeFeedbackFlags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEncodeCapabilitiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlModes == rhs.rateControlModes ) &&
-             ( rateControlLayerCount == rhs.rateControlLayerCount ) && ( qualityLevelCount == rhs.qualityLevelCount ) &&
-             ( inputImageDataFillAlignment == rhs.inputImageDataFillAlignment );
-#    endif
+             ( maxRateControlLayers == rhs.maxRateControlLayers ) && ( maxBitrate == rhs.maxBitrate ) && ( maxQualityLevels == rhs.maxQualityLevels ) &&
+             ( encodeInputPictureGranularity == rhs.encodeInputPictureGranularity ) && ( supportedEncodeFeedbackFlags == rhs.supportedEncodeFeedbackFlags );
+#  endif
     }
 
     bool operator!=( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                      sType                       = StructureType::eVideoEncodeCapabilitiesKHR;
-    void *                                                   pNext                       = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR      flags                       = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes            = {};
-    uint8_t                                                  rateControlLayerCount       = {};
-    uint8_t                                                  qualityLevelCount           = {};
-    VULKAN_HPP_NAMESPACE::Extent2D                           inputImageDataFillAlignment = {};
+    VULKAN_HPP_NAMESPACE::StructureType                      sType                         = StructureType::eVideoEncodeCapabilitiesKHR;
+    void *                                                   pNext                         = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR      flags                         = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes              = {};
+    uint32_t                                                 maxRateControlLayers          = {};
+    uint64_t                                                 maxBitrate                    = {};
+    uint32_t                                                 maxQualityLevels              = {};
+    VULKAN_HPP_NAMESPACE::Extent2D                           encodeInputPictureGranularity = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR        supportedEncodeFeedbackFlags  = {};
   };
 
   template <>
@@ -102260,891 +116318,843 @@
   {
     using Type = VideoEncodeCapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264CapabilitiesEXT
+  struct VideoEncodeH264CapabilitiesKHR
   {
-    using NativeType = VkVideoEncodeH264CapabilitiesEXT;
+    using NativeType = VkVideoEncodeH264CapabilitiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264CapabilitiesEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264CapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_                              = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT  inputModeFlags_                     = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_                    = {},
-                                                         uint8_t                                                 maxPPictureL0ReferenceCount_        = {},
-                                                         uint8_t                                                 maxBPictureL0ReferenceCount_        = {},
-                                                         uint8_t                                                 maxL1ReferenceCount_                = {},
-                                                         VULKAN_HPP_NAMESPACE::Bool32                            motionVectorsOverPicBoundariesFlag_ = {},
-                                                         uint32_t                                                maxBytesPerPicDenom_                = {},
-                                                         uint32_t                                                maxBitsPerMbDenom_                  = {},
-                                                         uint32_t                                                log2MaxMvLengthHorizontal_          = {},
-                                                         uint32_t                                                log2MaxMvLengthVertical_            = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsKHR flags_                            = {},
+                                                         StdVideoH264LevelIdc                                    maxLevelIdc_                      = {},
+                                                         uint32_t                                                maxSliceCount_                    = {},
+                                                         uint32_t                                                maxPPictureL0ReferenceCount_      = {},
+                                                         uint32_t                                                maxBPictureL0ReferenceCount_      = {},
+                                                         uint32_t                                                maxL1ReferenceCount_              = {},
+                                                         uint32_t                                                maxTemporalLayerCount_            = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                            expectDyadicTemporalLayerPattern_ = {},
+                                                         int32_t                                                 minQp_                            = {},
+                                                         int32_t                                                 maxQp_                            = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                            prefersGopRemainingFrames_        = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                            requiresGopRemainingFrames_       = {},
+                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsKHR        stdSyntaxFlags_                   = {},
                                                          void *                                                  pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
-      , inputModeFlags( inputModeFlags_ )
-      , outputModeFlags( outputModeFlags_ )
+      , maxLevelIdc( maxLevelIdc_ )
+      , maxSliceCount( maxSliceCount_ )
       , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
       , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
       , maxL1ReferenceCount( maxL1ReferenceCount_ )
-      , motionVectorsOverPicBoundariesFlag( motionVectorsOverPicBoundariesFlag_ )
-      , maxBytesPerPicDenom( maxBytesPerPicDenom_ )
-      , maxBitsPerMbDenom( maxBitsPerMbDenom_ )
-      , log2MaxMvLengthHorizontal( log2MaxMvLengthHorizontal_ )
-      , log2MaxMvLengthVertical( log2MaxMvLengthVertical_ )
+      , maxTemporalLayerCount( maxTemporalLayerCount_ )
+      , expectDyadicTemporalLayerPattern( expectDyadicTemporalLayerPattern_ )
+      , minQp( minQp_ )
+      , maxQp( maxQp_ )
+      , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
+      , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
+      , stdSyntaxFlags( stdSyntaxFlags_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesKHR( VideoEncodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264CapabilitiesEXT( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264CapabilitiesEXT( *reinterpret_cast<VideoEncodeH264CapabilitiesEXT const *>( &rhs ) )
+    VideoEncodeH264CapabilitiesKHR( VkVideoEncodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264CapabilitiesKHR( *reinterpret_cast<VideoEncodeH264CapabilitiesKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264CapabilitiesEXT & operator=( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264CapabilitiesKHR & operator=( VideoEncodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264CapabilitiesEXT & operator=( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264CapabilitiesKHR & operator=( VkVideoEncodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR const *>( &rhs );
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264CapabilitiesKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264CapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                void * const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsKHR const &,
+               StdVideoH264LevelIdc const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
                VULKAN_HPP_NAMESPACE::Bool32 const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &>
-#    endif
+               int32_t const &,
+               int32_t const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsKHR const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType,
                        pNext,
                        flags,
-                       inputModeFlags,
-                       outputModeFlags,
+                       maxLevelIdc,
+                       maxSliceCount,
                        maxPPictureL0ReferenceCount,
                        maxBPictureL0ReferenceCount,
                        maxL1ReferenceCount,
-                       motionVectorsOverPicBoundariesFlag,
-                       maxBytesPerPicDenom,
-                       maxBitsPerMbDenom,
-                       log2MaxMvLengthHorizontal,
-                       log2MaxMvLengthVertical );
+                       maxTemporalLayerCount,
+                       expectDyadicTemporalLayerPattern,
+                       minQp,
+                       maxQp,
+                       prefersGopRemainingFrames,
+                       requiresGopRemainingFrames,
+                       stdSyntaxFlags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264CapabilitiesEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( inputModeFlags == rhs.inputModeFlags ) &&
-             ( outputModeFlags == rhs.outputModeFlags ) && ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) &&
-             ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) && ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) &&
-             ( motionVectorsOverPicBoundariesFlag == rhs.motionVectorsOverPicBoundariesFlag ) && ( maxBytesPerPicDenom == rhs.maxBytesPerPicDenom ) &&
-             ( maxBitsPerMbDenom == rhs.maxBitsPerMbDenom ) && ( log2MaxMvLengthHorizontal == rhs.log2MaxMvLengthHorizontal ) &&
-             ( log2MaxMvLengthVertical == rhs.log2MaxMvLengthVertical );
-#    endif
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
+        return cmp;
+      if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
+        return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( auto cmp = maxSliceCount <=> rhs.maxSliceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxTemporalLayerCount <=> rhs.maxTemporalLayerCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = expectDyadicTemporalLayerPattern <=> rhs.expectDyadicTemporalLayerPattern; cmp != 0 )
+        return cmp;
+      if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 )
+        return cmp;
+      if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 )
+        return cmp;
+      if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 )
+        return cmp;
+      if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 )
+        return cmp;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( VideoEncodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
+             ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 ) && ( maxSliceCount == rhs.maxSliceCount ) &&
+             ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) &&
+             ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxTemporalLayerCount == rhs.maxTemporalLayerCount ) &&
+             ( expectDyadicTemporalLayerPattern == rhs.expectDyadicTemporalLayerPattern ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp ) &&
+             ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames ) && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames ) &&
+             ( stdSyntaxFlags == rhs.stdSyntaxFlags );
     }
 
-    bool operator!=( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                     sType                              = StructureType::eVideoEncodeH264CapabilitiesEXT;
-    void *                                                  pNext                              = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags                              = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT  inputModeFlags                     = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags                    = {};
-    uint8_t                                                 maxPPictureL0ReferenceCount        = {};
-    uint8_t                                                 maxBPictureL0ReferenceCount        = {};
-    uint8_t                                                 maxL1ReferenceCount                = {};
-    VULKAN_HPP_NAMESPACE::Bool32                            motionVectorsOverPicBoundariesFlag = {};
-    uint32_t                                                maxBytesPerPicDenom                = {};
-    uint32_t                                                maxBitsPerMbDenom                  = {};
-    uint32_t                                                log2MaxMvLengthHorizontal          = {};
-    uint32_t                                                log2MaxMvLengthVertical            = {};
+    VULKAN_HPP_NAMESPACE::StructureType                     sType                            = StructureType::eVideoEncodeH264CapabilitiesKHR;
+    void *                                                  pNext                            = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsKHR flags                            = {};
+    StdVideoH264LevelIdc                                    maxLevelIdc                      = {};
+    uint32_t                                                maxSliceCount                    = {};
+    uint32_t                                                maxPPictureL0ReferenceCount      = {};
+    uint32_t                                                maxBPictureL0ReferenceCount      = {};
+    uint32_t                                                maxL1ReferenceCount              = {};
+    uint32_t                                                maxTemporalLayerCount            = {};
+    VULKAN_HPP_NAMESPACE::Bool32                            expectDyadicTemporalLayerPattern = {};
+    int32_t                                                 minQp                            = {};
+    int32_t                                                 maxQp                            = {};
+    VULKAN_HPP_NAMESPACE::Bool32                            prefersGopRemainingFrames        = {};
+    VULKAN_HPP_NAMESPACE::Bool32                            requiresGopRemainingFrames       = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsKHR        stdSyntaxFlags                   = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264CapabilitiesEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264CapabilitiesKHR>
   {
-    using Type = VideoEncodeH264CapabilitiesEXT;
+    using Type = VideoEncodeH264CapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264DpbSlotInfoEXT
+  struct VideoEncodeH264DpbSlotInfoKHR
   {
-    using NativeType = VkVideoEncodeH264DpbSlotInfoEXT;
+    using NativeType = VkVideoEncodeH264DpbSlotInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264DpbSlotInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( int8_t                                  slotIndex_         = {},
-                                                        const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoKHR( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {},
                                                         const void *                            pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , slotIndex( slotIndex_ )
       , pStdReferenceInfo( pStdReferenceInfo_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoKHR( VideoEncodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264DpbSlotInfoEXT( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH264DpbSlotInfoEXT const *>( &rhs ) )
+    VideoEncodeH264DpbSlotInfoKHR( VkVideoEncodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264DpbSlotInfoKHR( *reinterpret_cast<VideoEncodeH264DpbSlotInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264DpbSlotInfoEXT & operator=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264DpbSlotInfoKHR & operator=( VideoEncodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264DpbSlotInfoEXT & operator=( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264DpbSlotInfoKHR & operator=( VkVideoEncodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
-    {
-      slotIndex = slotIndex_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT &
-                            setPStdReferenceInfo( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoKHR &
+      setPStdReferenceInfo( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdReferenceInfo = pStdReferenceInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264DpbSlotInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int8_t const &, const StdVideoEncodeH264ReferenceInfo * const &>
-#    endif
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH264ReferenceInfo * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, slotIndex, pStdReferenceInfo );
+      return std::tie( sType, pNext, pStdReferenceInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264DpbSlotInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264DpbSlotInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoEncodeH264DpbSlotInfoKHR;
     const void *                            pNext             = {};
-    int8_t                                  slotIndex         = {};
     const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264DpbSlotInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264DpbSlotInfoKHR>
   {
-    using Type = VideoEncodeH264DpbSlotInfoEXT;
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264EmitPictureParametersInfoEXT
-  {
-    using NativeType = VkVideoEncodeH264EmitPictureParametersInfoEXT;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264EmitPictureParametersInfoEXT( uint8_t                      spsId_           = {},
-                                                                      VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_   = {},
-                                                                      uint32_t                     ppsIdEntryCount_ = {},
-                                                                      const uint8_t *              ppsIdEntries_    = {},
-                                                                      const void *                 pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , spsId( spsId_ )
-      , emitSpsEnable( emitSpsEnable_ )
-      , ppsIdEntryCount( ppsIdEntryCount_ )
-      , ppsIdEntries( ppsIdEntries_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264EmitPictureParametersInfoEXT( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    VideoEncodeH264EmitPictureParametersInfoEXT( VkVideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264EmitPictureParametersInfoEXT( *reinterpret_cast<VideoEncodeH264EmitPictureParametersInfoEXT const *>( &rhs ) )
-    {
-    }
-
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264EmitPictureParametersInfoEXT( uint8_t                                                              spsId_,
-                                                 VULKAN_HPP_NAMESPACE::Bool32                                         emitSpsEnable_,
-                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_,
-                                                 const void *                                                         pNext_ = nullptr )
-      : pNext( pNext_ )
-      , spsId( spsId_ )
-      , emitSpsEnable( emitSpsEnable_ )
-      , ppsIdEntryCount( static_cast<uint32_t>( psIdEntries_.size() ) )
-      , ppsIdEntries( psIdEntries_.data() )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VideoEncodeH264EmitPictureParametersInfoEXT & operator=( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH264EmitPictureParametersInfoEXT & operator=( VkVideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setSpsId( uint8_t spsId_ ) VULKAN_HPP_NOEXCEPT
-    {
-      spsId = spsId_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setEmitSpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ ) VULKAN_HPP_NOEXCEPT
-    {
-      emitSpsEnable = emitSpsEnable_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPpsIdEntryCount( uint32_t ppsIdEntryCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntryCount = ppsIdEntryCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPpsIdEntries( const uint8_t * ppsIdEntries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntries = ppsIdEntries_;
-      return *this;
-    }
-
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264EmitPictureParametersInfoEXT &
-      setPsIdEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntryCount = static_cast<uint32_t>( psIdEntries_.size() );
-      ppsIdEntries    = psIdEntries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH264EmitPictureParametersInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersInfoEXT *>( this );
-    }
-
-    operator VkVideoEncodeH264EmitPictureParametersInfoEXT &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkVideoEncodeH264EmitPictureParametersInfoEXT *>( this );
-    }
-
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint8_t const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               uint32_t const &,
-               const uint8_t * const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, spsId, emitSpsEnable, ppsIdEntryCount, ppsIdEntries );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264EmitPictureParametersInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsId == rhs.spsId ) && ( emitSpsEnable == rhs.emitSpsEnable ) &&
-             ( ppsIdEntryCount == rhs.ppsIdEntryCount ) && ( ppsIdEntries == rhs.ppsIdEntries );
-#    endif
-    }
-
-    bool operator!=( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT;
-    const void *                        pNext           = {};
-    uint8_t                             spsId           = {};
-    VULKAN_HPP_NAMESPACE::Bool32        emitSpsEnable   = {};
-    uint32_t                            ppsIdEntryCount = {};
-    const uint8_t *                     ppsIdEntries    = {};
+    using Type = VideoEncodeH264DpbSlotInfoKHR;
   };
 
-  template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT>
+  struct VideoEncodeH264FrameSizeKHR
   {
-    using Type = VideoEncodeH264EmitPictureParametersInfoEXT;
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    using NativeType = VkVideoEncodeH264FrameSizeKHR;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264FrameSizeEXT
-  {
-    using NativeType = VkVideoEncodeH264FrameSizeEXT;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeKHR( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
       : frameISize( frameISize_ )
       , framePSize( framePSize_ )
       , frameBSize( frameBSize_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeKHR( VideoEncodeH264FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264FrameSizeEXT( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264FrameSizeEXT( *reinterpret_cast<VideoEncodeH264FrameSizeEXT const *>( &rhs ) )
+    VideoEncodeH264FrameSizeKHR( VkVideoEncodeH264FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264FrameSizeKHR( *reinterpret_cast<VideoEncodeH264FrameSizeKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264FrameSizeEXT & operator=( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264FrameSizeKHR & operator=( VideoEncodeH264FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264FrameSizeEXT & operator=( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264FrameSizeKHR & operator=( VkVideoEncodeH264FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeKHR & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
     {
       frameISize = frameISize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeKHR & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
     {
       framePSize = framePSize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeKHR & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
     {
       frameBSize = frameBSize_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH264FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264FrameSizeKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264FrameSizeEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264FrameSizeKHR *>( this );
     }
 
-    operator VkVideoEncodeH264FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264FrameSizeKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264FrameSizeEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264FrameSizeKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( frameISize, framePSize, frameBSize );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264FrameSizeEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264FrameSizeKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264FrameSizeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264FrameSizeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     uint32_t frameISize = {};
     uint32_t framePSize = {};
     uint32_t frameBSize = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264ReferenceListsInfoEXT
+  struct VideoEncodeH264GopRemainingFrameInfoKHR
   {
-    using NativeType = VkVideoEncodeH264ReferenceListsInfoEXT;
+    using NativeType = VkVideoEncodeH264GopRemainingFrameInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264ReferenceListsInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264GopRemainingFrameInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264ReferenceListsInfoEXT( uint8_t                                                     referenceList0EntryCount_ = {},
-                                                               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries_   = {},
-                                                               uint8_t                                                     referenceList1EntryCount_ = {},
-                                                               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries_   = {},
-                                                               const StdVideoEncodeH264RefMemMgmtCtrlOperations *          pMemMgmtCtrlOperations_   = {},
-                                                               const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {},
+                                                                  uint32_t                     gopRemainingI_         = {},
+                                                                  uint32_t                     gopRemainingP_         = {},
+                                                                  uint32_t                     gopRemainingB_         = {},
+                                                                  const void *                 pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , referenceList0EntryCount( referenceList0EntryCount_ )
-      , pReferenceList0Entries( pReferenceList0Entries_ )
-      , referenceList1EntryCount( referenceList1EntryCount_ )
-      , pReferenceList1Entries( pReferenceList1Entries_ )
-      , pMemMgmtCtrlOperations( pMemMgmtCtrlOperations_ )
+      , useGopRemainingFrames( useGopRemainingFrames_ )
+      , gopRemainingI( gopRemainingI_ )
+      , gopRemainingP( gopRemainingP_ )
+      , gopRemainingB( gopRemainingB_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264ReferenceListsInfoEXT( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoKHR( VideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264ReferenceListsInfoEXT( VkVideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264ReferenceListsInfoEXT( *reinterpret_cast<VideoEncodeH264ReferenceListsInfoEXT const *>( &rhs ) )
+    VideoEncodeH264GopRemainingFrameInfoKHR( VkVideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264GopRemainingFrameInfoKHR( *reinterpret_cast<VideoEncodeH264GopRemainingFrameInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264ReferenceListsInfoEXT(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList0Entries_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList1Entries_  = {},
-      const StdVideoEncodeH264RefMemMgmtCtrlOperations *                                                               pMemMgmtCtrlOperations_ = {},
-      const void *                                                                                                     pNext_                  = nullptr )
-      : pNext( pNext_ )
-      , referenceList0EntryCount( static_cast<uint8_t>( referenceList0Entries_.size() ) )
-      , pReferenceList0Entries( referenceList0Entries_.data() )
-      , referenceList1EntryCount( static_cast<uint8_t>( referenceList1Entries_.size() ) )
-      , pReferenceList1Entries( referenceList1Entries_.data() )
-      , pMemMgmtCtrlOperations( pMemMgmtCtrlOperations_ )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+    VideoEncodeH264GopRemainingFrameInfoKHR & operator=( VideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264ReferenceListsInfoEXT & operator=( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH264ReferenceListsInfoEXT & operator=( VkVideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264GopRemainingFrameInfoKHR & operator=( VkVideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setReferenceList0EntryCount( uint8_t referenceList0EntryCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoKHR &
+      setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
     {
-      referenceList0EntryCount = referenceList0EntryCount_;
+      useGopRemainingFrames = useGopRemainingFrames_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
-                            setPReferenceList0Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoKHR & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceList0Entries = pReferenceList0Entries_;
+      gopRemainingI = gopRemainingI_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264ReferenceListsInfoEXT & setReferenceList0Entries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList0Entries_ )
-      VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoKHR & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
     {
-      referenceList0EntryCount = static_cast<uint8_t>( referenceList0Entries_.size() );
-      pReferenceList0Entries   = referenceList0Entries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setReferenceList1EntryCount( uint8_t referenceList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      referenceList1EntryCount = referenceList1EntryCount_;
+      gopRemainingP = gopRemainingP_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
-                            setPReferenceList1Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoKHR & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceList1Entries = pReferenceList1Entries_;
+      gopRemainingB = gopRemainingB_;
       return *this;
     }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264ReferenceListsInfoEXT & setReferenceList1Entries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList1Entries_ )
-      VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264GopRemainingFrameInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      referenceList1EntryCount = static_cast<uint8_t>( referenceList1Entries_.size() );
-      pReferenceList1Entries   = referenceList1Entries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
-                            setPMemMgmtCtrlOperations( const StdVideoEncodeH264RefMemMgmtCtrlOperations * pMemMgmtCtrlOperations_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pMemMgmtCtrlOperations = pMemMgmtCtrlOperations_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH264ReferenceListsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH264ReferenceListsInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264GopRemainingFrameInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH264ReferenceListsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264GopRemainingFrameInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264ReferenceListsInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264GopRemainingFrameInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &,
-               const StdVideoEncodeH264RefMemMgmtCtrlOperations * const &>
-#    endif
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie(
-        sType, pNext, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pMemMgmtCtrlOperations );
+      return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264ReferenceListsInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264GopRemainingFrameInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( referenceList0EntryCount == rhs.referenceList0EntryCount ) &&
-             ( pReferenceList0Entries == rhs.pReferenceList0Entries ) && ( referenceList1EntryCount == rhs.referenceList1EntryCount ) &&
-             ( pReferenceList1Entries == rhs.pReferenceList1Entries ) && ( pMemMgmtCtrlOperations == rhs.pMemMgmtCtrlOperations );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useGopRemainingFrames == rhs.useGopRemainingFrames ) &&
+             ( gopRemainingI == rhs.gopRemainingI ) && ( gopRemainingP == rhs.gopRemainingP ) && ( gopRemainingB == rhs.gopRemainingB );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264GopRemainingFrameInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                         sType                    = StructureType::eVideoEncodeH264ReferenceListsInfoEXT;
-    const void *                                                pNext                    = {};
-    uint8_t                                                     referenceList0EntryCount = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries   = {};
-    uint8_t                                                     referenceList1EntryCount = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries   = {};
-    const StdVideoEncodeH264RefMemMgmtCtrlOperations *          pMemMgmtCtrlOperations   = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::eVideoEncodeH264GopRemainingFrameInfoKHR;
+    const void *                        pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Bool32        useGopRemainingFrames = {};
+    uint32_t                            gopRemainingI         = {};
+    uint32_t                            gopRemainingP         = {};
+    uint32_t                            gopRemainingB         = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264ReferenceListsInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264GopRemainingFrameInfoKHR>
   {
-    using Type = VideoEncodeH264ReferenceListsInfoEXT;
+    using Type = VideoEncodeH264GopRemainingFrameInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264NaluSliceInfoEXT
+  struct VideoEncodeH264NaluSliceInfoKHR
   {
-    using NativeType = VkVideoEncodeH264NaluSliceInfoEXT;
+    using NativeType = VkVideoEncodeH264NaluSliceInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264NaluSliceInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( uint32_t                                                           mbCount_              = {},
-                                                          const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
-                                                          const StdVideoEncodeH264SliceHeader *                              pSliceHeaderStd_      = {},
-                                                          const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoKHR( int32_t                               constantQp_      = {},
+                                                          const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ = {},
+                                                          const void *                          pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , mbCount( mbCount_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , pSliceHeaderStd( pSliceHeaderStd_ )
+      , constantQp( constantQp_ )
+      , pStdSliceHeader( pStdSliceHeader_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoKHR( VideoEncodeH264NaluSliceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264NaluSliceInfoEXT( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264NaluSliceInfoEXT( *reinterpret_cast<VideoEncodeH264NaluSliceInfoEXT const *>( &rhs ) )
+    VideoEncodeH264NaluSliceInfoKHR( VkVideoEncodeH264NaluSliceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264NaluSliceInfoKHR( *reinterpret_cast<VideoEncodeH264NaluSliceInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264NaluSliceInfoEXT & operator=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264NaluSliceInfoKHR & operator=( VideoEncodeH264NaluSliceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264NaluSliceInfoEXT & operator=( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264NaluSliceInfoKHR & operator=( VkVideoEncodeH264NaluSliceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setMbCount( uint32_t mbCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoKHR & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
     {
-      mbCount = mbCount_;
+      constantQp = constantQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT &
-      setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoKHR & setPStdSliceHeader( const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceFinalLists = pReferenceFinalLists_;
+      pStdSliceHeader = pStdSliceHeader_;
       return *this;
     }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPSliceHeaderStd( const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_ ) VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264NaluSliceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      pSliceHeaderStd = pSliceHeaderStd_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH264NaluSliceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH264NaluSliceInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264NaluSliceInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH264NaluSliceInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264NaluSliceInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264NaluSliceInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264NaluSliceInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH264SliceHeader * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, constantQp, pStdSliceHeader );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264NaluSliceInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264NaluSliceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantQp == rhs.constantQp ) && ( pStdSliceHeader == rhs.pStdSliceHeader );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH264NaluSliceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType   sType           = StructureType::eVideoEncodeH264NaluSliceInfoKHR;
+    const void *                          pNext           = {};
+    int32_t                               constantQp      = {};
+    const StdVideoEncodeH264SliceHeader * pStdSliceHeader = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264NaluSliceInfoKHR>
+  {
+    using Type = VideoEncodeH264NaluSliceInfoKHR;
+  };
+
+  struct VideoEncodeH264PictureInfoKHR
+  {
+    using NativeType = VkVideoEncodeH264PictureInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264PictureInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoKHR( uint32_t                                                      naluSliceEntryCount_ = {},
+                                                        const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR * pNaluSliceEntries_   = {},
+                                                        const StdVideoEncodeH264PictureInfo *                         pStdPictureInfo_     = {},
+                                                        VULKAN_HPP_NAMESPACE::Bool32                                  generatePrefixNalu_  = {},
+                                                        const void *                                                  pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , naluSliceEntryCount( naluSliceEntryCount_ )
+      , pNaluSliceEntries( pNaluSliceEntries_ )
+      , pStdPictureInfo( pStdPictureInfo_ )
+      , generatePrefixNalu( generatePrefixNalu_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoKHR( VideoEncodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH264PictureInfoKHR( VkVideoEncodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264PictureInfoKHR( *reinterpret_cast<VideoEncodeH264PictureInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH264PictureInfoKHR(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR> const & naluSliceEntries_,
+      const StdVideoEncodeH264PictureInfo *                                                                              pStdPictureInfo_    = {},
+      VULKAN_HPP_NAMESPACE::Bool32                                                                                       generatePrefixNalu_ = {},
+      const void *                                                                                                       pNext_              = nullptr )
+      : pNext( pNext_ )
+      , naluSliceEntryCount( static_cast<uint32_t>( naluSliceEntries_.size() ) )
+      , pNaluSliceEntries( naluSliceEntries_.data() )
+      , pStdPictureInfo( pStdPictureInfo_ )
+      , generatePrefixNalu( generatePrefixNalu_ )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VideoEncodeH264PictureInfoKHR & operator=( VideoEncodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH264PictureInfoKHR & operator=( VkVideoEncodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoKHR & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      naluSliceEntryCount = naluSliceEntryCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoKHR &
+      setPNaluSliceEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNaluSliceEntries = pNaluSliceEntries_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH264PictureInfoKHR & setNaluSliceEntries(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR> const & naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
+    {
+      naluSliceEntryCount = static_cast<uint32_t>( naluSliceEntries_.size() );
+      pNaluSliceEntries   = naluSliceEntries_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoKHR & setPStdPictureInfo( const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pStdPictureInfo = pStdPictureInfo_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoKHR & setGeneratePrefixNalu( VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ ) VULKAN_HPP_NOEXCEPT
+    {
+      generatePrefixNalu = generatePrefixNalu_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeH264PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH264PictureInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH264PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH264PictureInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * const &,
-               const StdVideoEncodeH264SliceHeader * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR * const &,
+               const StdVideoEncodeH264PictureInfo * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, mbCount, pReferenceFinalLists, pSliceHeaderStd );
+      return std::tie( sType, pNext, naluSliceEntryCount, pNaluSliceEntries, pStdPictureInfo, generatePrefixNalu );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264NaluSliceInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264PictureInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mbCount == rhs.mbCount ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
-             ( pSliceHeaderStd == rhs.pSliceHeaderStd );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( naluSliceEntryCount == rhs.naluSliceEntryCount ) &&
+             ( pNaluSliceEntries == rhs.pNaluSliceEntries ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( generatePrefixNalu == rhs.generatePrefixNalu );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                sType                = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
-    const void *                                                       pNext                = {};
-    uint32_t                                                           mbCount              = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists = {};
-    const StdVideoEncodeH264SliceHeader *                              pSliceHeaderStd      = {};
+    VULKAN_HPP_NAMESPACE::StructureType                           sType               = StructureType::eVideoEncodeH264PictureInfoKHR;
+    const void *                                                  pNext               = {};
+    uint32_t                                                      naluSliceEntryCount = {};
+    const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR * pNaluSliceEntries   = {};
+    const StdVideoEncodeH264PictureInfo *                         pStdPictureInfo     = {};
+    VULKAN_HPP_NAMESPACE::Bool32                                  generatePrefixNalu  = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264NaluSliceInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264PictureInfoKHR>
   {
-    using Type = VideoEncodeH264NaluSliceInfoEXT;
+    using Type = VideoEncodeH264PictureInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264ProfileInfoEXT
+  struct VideoEncodeH264ProfileInfoKHR
   {
-    using NativeType = VkVideoEncodeH264ProfileInfoEXT;
+    using NativeType = VkVideoEncodeH264ProfileInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264ProfileInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264ProfileInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoKHR( StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , stdProfileIdc( stdProfileIdc_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoKHR( VideoEncodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264ProfileInfoEXT( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264ProfileInfoEXT( *reinterpret_cast<VideoEncodeH264ProfileInfoEXT const *>( &rhs ) )
+    VideoEncodeH264ProfileInfoKHR( VkVideoEncodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264ProfileInfoKHR( *reinterpret_cast<VideoEncodeH264ProfileInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264ProfileInfoEXT & operator=( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264ProfileInfoKHR & operator=( VideoEncodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264ProfileInfoEXT & operator=( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264ProfileInfoKHR & operator=( VkVideoEncodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoKHR & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
     {
       stdProfileIdc = stdProfileIdc_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264ProfileInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264ProfileInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264ProfileInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH264ProfileIdc const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdProfileIdc );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -103155,295 +117165,412 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoEncodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 );
     }
 
-    bool operator!=( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoEncodeH264ProfileInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoEncodeH264ProfileInfoKHR;
     const void *                        pNext         = {};
     StdVideoH264ProfileIdc              stdProfileIdc = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264ProfileInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264ProfileInfoKHR>
   {
-    using Type = VideoEncodeH264ProfileInfoEXT;
+    using Type = VideoEncodeH264ProfileInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264QpEXT
+  struct VideoEncodeH264QpKHR
   {
-    using NativeType = VkVideoEncodeH264QpEXT;
+    using NativeType = VkVideoEncodeH264QpKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264QpKHR( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
       : qpI( qpI_ )
       , qpP( qpP_ )
       , qpB( qpB_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264QpKHR( VideoEncodeH264QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264QpEXT( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264QpEXT( *reinterpret_cast<VideoEncodeH264QpEXT const *>( &rhs ) )
+    VideoEncodeH264QpKHR( VkVideoEncodeH264QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264QpKHR( *reinterpret_cast<VideoEncodeH264QpKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264QpEXT & operator=( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264QpKHR & operator=( VideoEncodeH264QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264QpEXT & operator=( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264QpKHR & operator=( VkVideoEncodeH264QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpKHR & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
     {
       qpI = qpI_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpKHR & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
     {
       qpP = qpP_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpKHR & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
     {
       qpB = qpB_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH264QpEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264QpKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264QpEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264QpKHR *>( this );
     }
 
-    operator VkVideoEncodeH264QpEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264QpKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264QpEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264QpKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<int32_t const &, int32_t const &, int32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( qpI, qpP, qpB );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264QpEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264QpKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264QpKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264QpKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     int32_t qpI = {};
     int32_t qpP = {};
     int32_t qpB = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264RateControlInfoEXT
+  struct VideoEncodeH264QualityLevelPropertiesKHR
   {
-    using NativeType = VkVideoEncodeH264RateControlInfoEXT;
+    using NativeType = VkVideoEncodeH264QualityLevelPropertiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264RateControlInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264QualityLevelPropertiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( uint32_t                                                     gopFrameCount_          = {},
-                                                            uint32_t                                                     idrPeriod_              = {},
-                                                            uint32_t                                                     consecutiveBFrameCount_ = {},
-                                                            VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure_ =
-                                                              VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT::eUnknown,
-                                                            uint8_t      temporalLayerCount_ = {},
-                                                            const void * pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR preferredRateControlFlags_ = {},
+                                                                   uint32_t                                                 preferredGopFrameCount_    = {},
+                                                                   uint32_t                                                 preferredIdrPeriod_        = {},
+                                                                   uint32_t                                   preferredConsecutiveBFrameCount_         = {},
+                                                                   uint32_t                                   preferredTemporalLayerCount_             = {},
+                                                                   VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR preferredConstantQp_                     = {},
+                                                                   uint32_t                                   preferredMaxL0ReferenceCount_            = {},
+                                                                   uint32_t                                   preferredMaxL1ReferenceCount_            = {},
+                                                                   VULKAN_HPP_NAMESPACE::Bool32               preferredStdEntropyCodingModeFlag_       = {},
+                                                                   void *                                     pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
+      , preferredRateControlFlags( preferredRateControlFlags_ )
+      , preferredGopFrameCount( preferredGopFrameCount_ )
+      , preferredIdrPeriod( preferredIdrPeriod_ )
+      , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
+      , preferredTemporalLayerCount( preferredTemporalLayerCount_ )
+      , preferredConstantQp( preferredConstantQp_ )
+      , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
+      , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
+      , preferredStdEntropyCodingModeFlag( preferredStdEntropyCodingModeFlag_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesKHR( VideoEncodeH264QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH264QualityLevelPropertiesKHR( VkVideoEncodeH264QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264QualityLevelPropertiesKHR( *reinterpret_cast<VideoEncodeH264QualityLevelPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH264QualityLevelPropertiesKHR & operator=( VideoEncodeH264QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH264QualityLevelPropertiesKHR & operator=( VkVideoEncodeH264QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkVideoEncodeH264QualityLevelPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH264QualityLevelPropertiesKHR *>( this );
+    }
+
+    operator VkVideoEncodeH264QualityLevelPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH264QualityLevelPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       preferredRateControlFlags,
+                       preferredGopFrameCount,
+                       preferredIdrPeriod,
+                       preferredConsecutiveBFrameCount,
+                       preferredTemporalLayerCount,
+                       preferredConstantQp,
+                       preferredMaxL0ReferenceCount,
+                       preferredMaxL1ReferenceCount,
+                       preferredStdEntropyCodingModeFlag );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264QualityLevelPropertiesKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264QualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlFlags == rhs.preferredRateControlFlags ) &&
+             ( preferredGopFrameCount == rhs.preferredGopFrameCount ) && ( preferredIdrPeriod == rhs.preferredIdrPeriod ) &&
+             ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount ) && ( preferredTemporalLayerCount == rhs.preferredTemporalLayerCount ) &&
+             ( preferredConstantQp == rhs.preferredConstantQp ) && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount ) &&
+             ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount ) &&
+             ( preferredStdEntropyCodingModeFlag == rhs.preferredStdEntropyCodingModeFlag );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH264QualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                      sType                             = StructureType::eVideoEncodeH264QualityLevelPropertiesKHR;
+    void *                                                   pNext                             = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR preferredRateControlFlags         = {};
+    uint32_t                                                 preferredGopFrameCount            = {};
+    uint32_t                                                 preferredIdrPeriod                = {};
+    uint32_t                                                 preferredConsecutiveBFrameCount   = {};
+    uint32_t                                                 preferredTemporalLayerCount       = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR               preferredConstantQp               = {};
+    uint32_t                                                 preferredMaxL0ReferenceCount      = {};
+    uint32_t                                                 preferredMaxL1ReferenceCount      = {};
+    VULKAN_HPP_NAMESPACE::Bool32                             preferredStdEntropyCodingModeFlag = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264QualityLevelPropertiesKHR>
+  {
+    using Type = VideoEncodeH264QualityLevelPropertiesKHR;
+  };
+
+  struct VideoEncodeH264RateControlInfoKHR
+  {
+    using NativeType = VkVideoEncodeH264RateControlInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264RateControlInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR flags_                  = {},
+                                                            uint32_t                                                 gopFrameCount_          = {},
+                                                            uint32_t                                                 idrPeriod_              = {},
+                                                            uint32_t                                                 consecutiveBFrameCount_ = {},
+                                                            uint32_t                                                 temporalLayerCount_     = {},
+                                                            const void *                                             pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
       , gopFrameCount( gopFrameCount_ )
       , idrPeriod( idrPeriod_ )
       , consecutiveBFrameCount( consecutiveBFrameCount_ )
-      , rateControlStructure( rateControlStructure_ )
       , temporalLayerCount( temporalLayerCount_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoKHR( VideoEncodeH264RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264RateControlInfoEXT( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264RateControlInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlInfoEXT const *>( &rhs ) )
+    VideoEncodeH264RateControlInfoKHR( VkVideoEncodeH264RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264RateControlInfoKHR( *reinterpret_cast<VideoEncodeH264RateControlInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264RateControlInfoEXT & operator=( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264RateControlInfoKHR & operator=( VideoEncodeH264RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264RateControlInfoEXT & operator=( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264RateControlInfoKHR & operator=( VkVideoEncodeH264RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
     {
       gopFrameCount = gopFrameCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
     {
       idrPeriod = idrPeriod_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
     {
       consecutiveBFrameCount = consecutiveBFrameCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT &
-                            setRateControlStructure( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
-    {
-      rateControlStructure = rateControlStructure_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setTemporalLayerCount( uint8_t temporalLayerCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoKHR & setTemporalLayerCount( uint32_t temporalLayerCount_ ) VULKAN_HPP_NOEXCEPT
     {
       temporalLayerCount = temporalLayerCount_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH264RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264RateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH264RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264RateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264RateControlInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR const &,
                uint32_t const &,
                uint32_t const &,
                uint32_t const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT const &,
-               uint8_t const &>
-#    endif
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, temporalLayerCount );
+      return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, temporalLayerCount );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264RateControlInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264RateControlInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264RateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) && ( idrPeriod == rhs.idrPeriod ) &&
-             ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( rateControlStructure == rhs.rateControlStructure ) &&
-             ( temporalLayerCount == rhs.temporalLayerCount );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( gopFrameCount == rhs.gopFrameCount ) &&
+             ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( temporalLayerCount == rhs.temporalLayerCount );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264RateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                          sType                  = StructureType::eVideoEncodeH264RateControlInfoEXT;
-    const void *                                                 pNext                  = {};
-    uint32_t                                                     gopFrameCount          = {};
-    uint32_t                                                     idrPeriod              = {};
-    uint32_t                                                     consecutiveBFrameCount = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure = VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT::eUnknown;
-    uint8_t                                                      temporalLayerCount   = {};
+    VULKAN_HPP_NAMESPACE::StructureType                      sType                  = StructureType::eVideoEncodeH264RateControlInfoKHR;
+    const void *                                             pNext                  = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsKHR flags                  = {};
+    uint32_t                                                 gopFrameCount          = {};
+    uint32_t                                                 idrPeriod              = {};
+    uint32_t                                                 consecutiveBFrameCount = {};
+    uint32_t                                                 temporalLayerCount     = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoKHR>
   {
-    using Type = VideoEncodeH264RateControlInfoEXT;
+    using Type = VideoEncodeH264RateControlInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264RateControlLayerInfoEXT
+  struct VideoEncodeH264RateControlLayerInfoKHR
   {
-    using NativeType = VkVideoEncodeH264RateControlLayerInfoEXT;
+    using NativeType = VkVideoEncodeH264RateControlLayerInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264RateControlLayerInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( uint8_t                                           temporalLayerId_ = {},
-                                                                 VULKAN_HPP_NAMESPACE::Bool32                      useInitialRcQp_  = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        initialRcQp_     = {},
-                                                                 VULKAN_HPP_NAMESPACE::Bool32                      useMinQp_        = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        minQp_           = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoKHR( VULKAN_HPP_NAMESPACE::Bool32                      useMinQp_        = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR        minQp_           = {},
                                                                  VULKAN_HPP_NAMESPACE::Bool32                      useMaxQp_        = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        maxQp_           = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR        maxQp_           = {},
                                                                  VULKAN_HPP_NAMESPACE::Bool32                      useMaxFrameSize_ = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize_    = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR maxFrameSize_    = {},
                                                                  const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , temporalLayerId( temporalLayerId_ )
-      , useInitialRcQp( useInitialRcQp_ )
-      , initialRcQp( initialRcQp_ )
       , useMinQp( useMinQp_ )
       , minQp( minQp_ )
       , useMaxQp( useMaxQp_ )
@@ -103453,195 +117580,256 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoKHR( VideoEncodeH264RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264RateControlLayerInfoEXT( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs ) )
+    VideoEncodeH264RateControlLayerInfoKHR( VkVideoEncodeH264RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264RateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeH264RateControlLayerInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264RateControlLayerInfoEXT & operator=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264RateControlLayerInfoKHR & operator=( VideoEncodeH264RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264RateControlLayerInfoEXT & operator=( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264RateControlLayerInfoKHR & operator=( VkVideoEncodeH264RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setTemporalLayerId( uint8_t temporalLayerId_ ) VULKAN_HPP_NOEXCEPT
-    {
-      temporalLayerId = temporalLayerId_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
-    {
-      useInitialRcQp = useInitialRcQp_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
-                            setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
-    {
-      initialRcQp = initialRcQp_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
     {
       useMinQp = useMinQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const & minQp_ ) VULKAN_HPP_NOEXCEPT
     {
       minQp = minQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
     {
       useMaxQp = useMaxQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const & maxQp_ ) VULKAN_HPP_NOEXCEPT
     {
       maxQp = maxQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
     {
       useMaxFrameSize = useMaxFrameSize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
-                            setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoKHR &
+      setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
     {
       maxFrameSize = maxFrameSize_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH264RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264RateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH264RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264RateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint8_t const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, temporalLayerId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
-    }
-#  endif
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               const StdVideoEncodeH264SliceHeader * const &,
-               uint32_t const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType,
-                       pNext,
-                       pSliceHeaderStd,
-                       mbCount,
-                       refFinalList0EntryCount,
-                       pRefFinalList0Entries,
-                       refFinalList1EntryCount,
-                       pRefFinalList1Entries );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264RateControlLayerInfoEXT const & ) const = default;
 #  else
-    bool operator==( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+      return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264RateControlLayerInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264RateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalLayerId == rhs.temporalLayerId ) && ( useInitialRcQp == rhs.useInitialRcQp ) &&
-             ( initialRcQp == rhs.initialRcQp ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
              ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264RateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType               sType           = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType               sType           = StructureType::eVideoEncodeH264RateControlLayerInfoKHR;
     const void *                                      pNext           = {};
-    uint8_t                                           temporalLayerId = {};
-    VULKAN_HPP_NAMESPACE::Bool32                      useInitialRcQp  = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        initialRcQp     = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMinQp        = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        minQp           = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR        minQp           = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMaxQp        = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT        maxQp           = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR        maxQp           = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMaxFrameSize = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize    = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR maxFrameSize    = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoKHR>
   {
-    using Type = VideoEncodeH264RateControlLayerInfoEXT;
+    using Type = VideoEncodeH264RateControlLayerInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264SessionParametersAddInfoEXT
+  struct VideoEncodeH264SessionCreateInfoKHR
   {
-    using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
+    using NativeType = VkVideoEncodeH264SessionCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( uint32_t                                 stdSPSCount_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
+                                                              StdVideoH264LevelIdc         maxLevelIdc_    = {},
+                                                              const void *                 pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , useMaxLevelIdc( useMaxLevelIdc_ )
+      , maxLevelIdc( maxLevelIdc_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoKHR( VideoEncodeH264SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH264SessionCreateInfoKHR( VkVideoEncodeH264SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264SessionCreateInfoKHR( *reinterpret_cast<VideoEncodeH264SessionCreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH264SessionCreateInfoKHR & operator=( VideoEncodeH264SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH264SessionCreateInfoKHR & operator=( VkVideoEncodeH264SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoKHR & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
+    {
+      useMaxLevelIdc = useMaxLevelIdc_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoKHR & setMaxLevelIdc( StdVideoH264LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxLevelIdc = maxLevelIdc_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeH264SessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH264SessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH264SessionCreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH264LevelIdc const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH264SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 )
+        return cmp;
+      if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
+        return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( VideoEncodeH264SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMaxLevelIdc == rhs.useMaxLevelIdc ) &&
+             ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 );
+    }
+
+    bool operator!=( VideoEncodeH264SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eVideoEncodeH264SessionCreateInfoKHR;
+    const void *                        pNext          = {};
+    VULKAN_HPP_NAMESPACE::Bool32        useMaxLevelIdc = {};
+    StdVideoH264LevelIdc                maxLevelIdc    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionCreateInfoKHR>
+  {
+    using Type = VideoEncodeH264SessionCreateInfoKHR;
+  };
+
+  struct VideoEncodeH264SessionParametersAddInfoKHR
+  {
+    using NativeType = VkVideoEncodeH264SessionParametersAddInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersAddInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoKHR( uint32_t                                 stdSPSCount_ = {},
                                                                      const StdVideoH264SequenceParameterSet * pStdSPSs_    = {},
                                                                      uint32_t                                 stdPPSCount_ = {},
                                                                      const StdVideoH264PictureParameterSet *  pStdPPSs_    = {},
@@ -103654,15 +117842,15 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoKHR( VideoEncodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
+    VideoEncodeH264SessionParametersAddInfoKHR( VkVideoEncodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264SessionParametersAddInfoKHR( *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH264SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const &  stdPPSs_ = {},
                                                 const void *                                                                                  pNext_ = nullptr )
       : pNext( pNext_ )
@@ -103672,117 +117860,117 @@
       , pStdPPSs( stdPPSs_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoEncodeH264SessionParametersAddInfoEXT & operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264SessionParametersAddInfoKHR & operator=( VideoEncodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264SessionParametersAddInfoEXT & operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264SessionParametersAddInfoKHR & operator=( VkVideoEncodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = stdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdSPSs = pStdSPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH264SessionParametersAddInfoKHR &
       setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
       pStdSPSs    = stdSPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = stdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPPSs = pStdPPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH264SessionParametersAddInfoKHR &
       setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
       pStdPPSs    = stdPPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                const StdVideoH264SequenceParameterSet * const &,
                uint32_t const &,
                const StdVideoH264PictureParameterSet * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264SessionParametersAddInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) &&
              ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoEncodeH264SessionParametersAddInfoKHR;
     const void *                             pNext       = {};
     uint32_t                                 stdSPSCount = {};
     const StdVideoH264SequenceParameterSet * pStdSPSs    = {};
@@ -103791,25 +117979,23 @@
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoKHR>
   {
-    using Type = VideoEncodeH264SessionParametersAddInfoEXT;
+    using Type = VideoEncodeH264SessionParametersAddInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264SessionParametersCreateInfoEXT
+  struct VideoEncodeH264SessionParametersCreateInfoKHR
   {
-    using NativeType = VkVideoEncodeH264SessionParametersCreateInfoEXT;
+    using NativeType = VkVideoEncodeH264SessionParametersCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
-      VideoEncodeH264SessionParametersCreateInfoEXT( uint32_t                                                                 maxStdSPSCount_     = {},
+      VideoEncodeH264SessionParametersCreateInfoKHR( uint32_t                                                                 maxStdSPSCount_     = {},
                                                      uint32_t                                                                 maxStdPPSCount_     = {},
-                                                     const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
+                                                     const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
                                                      const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , maxStdSPSCount( maxStdSPSCount_ )
@@ -103819,1229 +118005,1174 @@
     }
 
     VULKAN_HPP_CONSTEXPR
-      VideoEncodeH264SessionParametersCreateInfoEXT( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+      VideoEncodeH264SessionParametersCreateInfoKHR( VideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264SessionParametersCreateInfoEXT( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
+    VideoEncodeH264SessionParametersCreateInfoKHR( VkVideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264SessionParametersCreateInfoKHR( *reinterpret_cast<VideoEncodeH264SessionParametersCreateInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH264SessionParametersCreateInfoKHR & operator=( VideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264SessionParametersCreateInfoKHR & operator=( VkVideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdSPSCount = maxStdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdPPSCount = maxStdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT &
-      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoKHR &
+      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pParametersAddInfo = pParametersAddInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264SessionParametersCreateInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264SessionParametersCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) && ( maxStdPPSCount == rhs.maxStdPPSCount ) &&
              ( pParametersAddInfo == rhs.pParametersAddInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoEncodeH264SessionParametersCreateInfoKHR;
     const void *                                                             pNext              = {};
     uint32_t                                                                 maxStdSPSCount     = {};
     uint32_t                                                                 maxStdPPSCount     = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
+    const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR * pParametersAddInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersCreateInfoKHR>
   {
-    using Type = VideoEncodeH264SessionParametersCreateInfoEXT;
+    using Type = VideoEncodeH264SessionParametersCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH264VclFrameInfoEXT
+  struct VideoEncodeH264SessionParametersFeedbackInfoKHR
   {
-    using NativeType = VkVideoEncodeH264VclFrameInfoEXT;
+    using NativeType = VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264VclFrameInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264VclFrameInfoEXT( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
-                                                         uint32_t                                                           naluSliceEntryCount_  = {},
-                                                         const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT *      pNaluSliceEntries_    = {},
-                                                         const StdVideoEncodeH264PictureInfo *                              pCurrentPictureInfo_  = {},
-                                                         const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
+                                                                          VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
+                                                                          void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , naluSliceEntryCount( naluSliceEntryCount_ )
-      , pNaluSliceEntries( pNaluSliceEntries_ )
-      , pCurrentPictureInfo( pCurrentPictureInfo_ )
+      , hasStdSPSOverrides( hasStdSPSOverrides_ )
+      , hasStdPPSOverrides( hasStdPPSOverrides_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH264VclFrameInfoEXT( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR
+      VideoEncodeH264SessionParametersFeedbackInfoKHR( VideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH264VclFrameInfoEXT( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH264VclFrameInfoEXT( *reinterpret_cast<VideoEncodeH264VclFrameInfoEXT const *>( &rhs ) )
+    VideoEncodeH264SessionParametersFeedbackInfoKHR( VkVideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264SessionParametersFeedbackInfoKHR( *reinterpret_cast<VideoEncodeH264SessionParametersFeedbackInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264VclFrameInfoEXT(
-      const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT *                                                 pReferenceFinalLists_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_,
-      const StdVideoEncodeH264PictureInfo *                                                                              pCurrentPictureInfo_ = {},
-      const void *                                                                                                       pNext_               = nullptr )
-      : pNext( pNext_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , naluSliceEntryCount( static_cast<uint32_t>( naluSliceEntries_.size() ) )
-      , pNaluSliceEntries( naluSliceEntries_.data() )
-      , pCurrentPictureInfo( pCurrentPictureInfo_ )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+    VideoEncodeH264SessionParametersFeedbackInfoKHR & operator=( VideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH264VclFrameInfoEXT & operator=( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH264VclFrameInfoEXT & operator=( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH264SessionParametersFeedbackInfoKHR & operator=( VkVideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersFeedbackInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersFeedbackInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH264SessionParametersFeedbackInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH264SessionParametersFeedbackInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, hasStdSPSOverrides, hasStdPPSOverrides );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264SessionParametersFeedbackInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasStdSPSOverrides == rhs.hasStdSPSOverrides ) &&
+             ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH264SessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoKHR;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasStdSPSOverrides = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasStdPPSOverrides = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersFeedbackInfoKHR>
+  {
+    using Type = VideoEncodeH264SessionParametersFeedbackInfoKHR;
+  };
+
+  struct VideoEncodeH264SessionParametersGetInfoKHR
+  {
+    using NativeType = VkVideoEncodeH264SessionParametersGetInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH264SessionParametersGetInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {},
+                                                                     uint32_t                     stdSPSId_    = {},
+                                                                     uint32_t                     stdPPSId_    = {},
+                                                                     const void *                 pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , writeStdSPS( writeStdSPS_ )
+      , writeStdPPS( writeStdPPS_ )
+      , stdSPSId( stdSPSId_ )
+      , stdPPSId( stdPPSId_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoKHR( VideoEncodeH264SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH264SessionParametersGetInfoKHR( VkVideoEncodeH264SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH264SessionParametersGetInfoKHR( *reinterpret_cast<VideoEncodeH264SessionParametersGetInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH264SessionParametersGetInfoKHR & operator=( VideoEncodeH264SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH264SessionParametersGetInfoKHR & operator=( VkVideoEncodeH264SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
-      setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoKHR & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceFinalLists = pReferenceFinalLists_;
+      writeStdSPS = writeStdSPS_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoKHR & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
     {
-      naluSliceEntryCount = naluSliceEntryCount_;
+      writeStdPPS = writeStdPPS_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
-                            setPNaluSliceEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoKHR & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
     {
-      pNaluSliceEntries = pNaluSliceEntries_;
+      stdSPSId = stdSPSId_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoKHR & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
     {
-      naluSliceEntryCount = static_cast<uint32_t>( naluSliceEntries_.size() );
-      pNaluSliceEntries   = naluSliceEntries_.data();
+      stdPPSId = stdPPSId_;
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
-                            setPCurrentPictureInfo( const StdVideoEncodeH264PictureInfo * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersGetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      pCurrentPictureInfo = pCurrentPictureInfo_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkVideoEncodeH264VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH264SessionParametersGetInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeH264VclFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH264SessionParametersGetInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH264SessionParametersGetInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * const &,
-               const StdVideoEncodeH264PictureInfo * const &>
-#    endif
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, pReferenceFinalLists, naluSliceEntryCount, pNaluSliceEntries, pCurrentPictureInfo );
+      return std::tie( sType, pNext, writeStdSPS, writeStdPPS, stdSPSId, stdPPSId );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH264VclFrameInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH264SessionParametersGetInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH264SessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
-             ( naluSliceEntryCount == rhs.naluSliceEntryCount ) && ( pNaluSliceEntries == rhs.pNaluSliceEntries ) &&
-             ( pCurrentPictureInfo == rhs.pCurrentPictureInfo );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( writeStdSPS == rhs.writeStdSPS ) && ( writeStdPPS == rhs.writeStdPPS ) &&
+             ( stdSPSId == rhs.stdSPSId ) && ( stdPPSId == rhs.stdPPSId );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH264SessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                sType                = StructureType::eVideoEncodeH264VclFrameInfoEXT;
-    const void *                                                       pNext                = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists = {};
-    uint32_t                                                           naluSliceEntryCount  = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT *      pNaluSliceEntries    = {};
-    const StdVideoEncodeH264PictureInfo *                              pCurrentPictureInfo  = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType       = StructureType::eVideoEncodeH264SessionParametersGetInfoKHR;
+    const void *                        pNext       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        writeStdSPS = {};
+    VULKAN_HPP_NAMESPACE::Bool32        writeStdPPS = {};
+    uint32_t                            stdSPSId    = {};
+    uint32_t                            stdPPSId    = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH264VclFrameInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersGetInfoKHR>
   {
-    using Type = VideoEncodeH264VclFrameInfoEXT;
+    using Type = VideoEncodeH264SessionParametersGetInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265CapabilitiesEXT
+  struct VideoEncodeH265CapabilitiesKHR
   {
-    using NativeType = VkVideoEncodeH265CapabilitiesEXT;
+    using NativeType = VkVideoEncodeH265CapabilitiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265CapabilitiesEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265CapabilitiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT         flags_                       = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT          inputModeFlags_              = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT         outputModeFlags_             = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT            ctbSizes_                    = {},
-                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes_         = {},
-                                                         uint8_t                                                         maxPPictureL0ReferenceCount_ = {},
-                                                         uint8_t                                                         maxBPictureL0ReferenceCount_ = {},
-                                                         uint8_t                                                         maxL1ReferenceCount_         = {},
-                                                         uint8_t                                                         maxSubLayersCount_           = {},
-                                                         uint8_t minLog2MinLumaCodingBlockSizeMinus3_                                                 = {},
-                                                         uint8_t maxLog2MinLumaCodingBlockSizeMinus3_                                                 = {},
-                                                         uint8_t minLog2MinLumaTransformBlockSizeMinus2_                                              = {},
-                                                         uint8_t maxLog2MinLumaTransformBlockSizeMinus2_                                              = {},
-                                                         uint8_t minMaxTransformHierarchyDepthInter_                                                  = {},
-                                                         uint8_t maxMaxTransformHierarchyDepthInter_                                                  = {},
-                                                         uint8_t minMaxTransformHierarchyDepthIntra_                                                  = {},
-                                                         uint8_t maxMaxTransformHierarchyDepthIntra_                                                  = {},
-                                                         uint8_t maxDiffCuQpDeltaDepth_                                                               = {},
-                                                         uint8_t minMaxNumMergeCand_                                                                  = {},
-                                                         uint8_t maxMaxNumMergeCand_                                                                  = {},
-                                                         void *  pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsKHR         flags_                       = {},
+                                                         StdVideoH265LevelIdc                                            maxLevelIdc_                 = {},
+                                                         uint32_t                                                        maxSliceSegmentCount_        = {},
+                                                         VULKAN_HPP_NAMESPACE::Extent2D                                  maxTiles_                    = {},
+                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsKHR            ctbSizes_                    = {},
+                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes_         = {},
+                                                         uint32_t                                                        maxPPictureL0ReferenceCount_ = {},
+                                                         uint32_t                                                        maxBPictureL0ReferenceCount_ = {},
+                                                         uint32_t                                                        maxL1ReferenceCount_         = {},
+                                                         uint32_t                                                        maxSubLayerCount_            = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                     expectDyadicTemporalSubLayerPattern_        = {},
+                                                         int32_t                                          minQp_                                      = {},
+                                                         int32_t                                          maxQp_                                      = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                     prefersGopRemainingFrames_                  = {},
+                                                         VULKAN_HPP_NAMESPACE::Bool32                     requiresGopRemainingFrames_                 = {},
+                                                         VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsKHR stdSyntaxFlags_                             = {},
+                                                         void *                                           pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
-      , inputModeFlags( inputModeFlags_ )
-      , outputModeFlags( outputModeFlags_ )
+      , maxLevelIdc( maxLevelIdc_ )
+      , maxSliceSegmentCount( maxSliceSegmentCount_ )
+      , maxTiles( maxTiles_ )
       , ctbSizes( ctbSizes_ )
       , transformBlockSizes( transformBlockSizes_ )
       , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
       , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
       , maxL1ReferenceCount( maxL1ReferenceCount_ )
-      , maxSubLayersCount( maxSubLayersCount_ )
-      , minLog2MinLumaCodingBlockSizeMinus3( minLog2MinLumaCodingBlockSizeMinus3_ )
-      , maxLog2MinLumaCodingBlockSizeMinus3( maxLog2MinLumaCodingBlockSizeMinus3_ )
-      , minLog2MinLumaTransformBlockSizeMinus2( minLog2MinLumaTransformBlockSizeMinus2_ )
-      , maxLog2MinLumaTransformBlockSizeMinus2( maxLog2MinLumaTransformBlockSizeMinus2_ )
-      , minMaxTransformHierarchyDepthInter( minMaxTransformHierarchyDepthInter_ )
-      , maxMaxTransformHierarchyDepthInter( maxMaxTransformHierarchyDepthInter_ )
-      , minMaxTransformHierarchyDepthIntra( minMaxTransformHierarchyDepthIntra_ )
-      , maxMaxTransformHierarchyDepthIntra( maxMaxTransformHierarchyDepthIntra_ )
-      , maxDiffCuQpDeltaDepth( maxDiffCuQpDeltaDepth_ )
-      , minMaxNumMergeCand( minMaxNumMergeCand_ )
-      , maxMaxNumMergeCand( maxMaxNumMergeCand_ )
+      , maxSubLayerCount( maxSubLayerCount_ )
+      , expectDyadicTemporalSubLayerPattern( expectDyadicTemporalSubLayerPattern_ )
+      , minQp( minQp_ )
+      , maxQp( maxQp_ )
+      , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
+      , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
+      , stdSyntaxFlags( stdSyntaxFlags_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesKHR( VideoEncodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265CapabilitiesEXT( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265CapabilitiesEXT( *reinterpret_cast<VideoEncodeH265CapabilitiesEXT const *>( &rhs ) )
+    VideoEncodeH265CapabilitiesKHR( VkVideoEncodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265CapabilitiesKHR( *reinterpret_cast<VideoEncodeH265CapabilitiesKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265CapabilitiesEXT & operator=( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265CapabilitiesKHR & operator=( VideoEncodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265CapabilitiesEXT & operator=( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265CapabilitiesKHR & operator=( VkVideoEncodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR const *>( &rhs );
       return *this;
     }
 
-    operator VkVideoEncodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265CapabilitiesKHR *>( this );
     }
 
-    operator VkVideoEncodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265CapabilitiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                void * const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &,
-               uint8_t const &>
-#    endif
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsKHR const &,
+               StdVideoH265LevelIdc const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::Extent2D const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsKHR const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsKHR const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               int32_t const &,
+               int32_t const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsKHR const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType,
                        pNext,
                        flags,
-                       inputModeFlags,
-                       outputModeFlags,
+                       maxLevelIdc,
+                       maxSliceSegmentCount,
+                       maxTiles,
                        ctbSizes,
                        transformBlockSizes,
                        maxPPictureL0ReferenceCount,
                        maxBPictureL0ReferenceCount,
                        maxL1ReferenceCount,
-                       maxSubLayersCount,
-                       minLog2MinLumaCodingBlockSizeMinus3,
-                       maxLog2MinLumaCodingBlockSizeMinus3,
-                       minLog2MinLumaTransformBlockSizeMinus2,
-                       maxLog2MinLumaTransformBlockSizeMinus2,
-                       minMaxTransformHierarchyDepthInter,
-                       maxMaxTransformHierarchyDepthInter,
-                       minMaxTransformHierarchyDepthIntra,
-                       maxMaxTransformHierarchyDepthIntra,
-                       maxDiffCuQpDeltaDepth,
-                       minMaxNumMergeCand,
-                       maxMaxNumMergeCand );
+                       maxSubLayerCount,
+                       expectDyadicTemporalSubLayerPattern,
+                       minQp,
+                       maxQp,
+                       prefersGopRemainingFrames,
+                       requiresGopRemainingFrames,
+                       stdSyntaxFlags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265CapabilitiesEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( inputModeFlags == rhs.inputModeFlags ) &&
-             ( outputModeFlags == rhs.outputModeFlags ) && ( ctbSizes == rhs.ctbSizes ) && ( transformBlockSizes == rhs.transformBlockSizes ) &&
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
+        return cmp;
+      if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
+        return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+      if ( auto cmp = maxSliceSegmentCount <=> rhs.maxSliceSegmentCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxTiles <=> rhs.maxTiles; cmp != 0 )
+        return cmp;
+      if ( auto cmp = ctbSizes <=> rhs.ctbSizes; cmp != 0 )
+        return cmp;
+      if ( auto cmp = transformBlockSizes <=> rhs.transformBlockSizes; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxSubLayerCount <=> rhs.maxSubLayerCount; cmp != 0 )
+        return cmp;
+      if ( auto cmp = expectDyadicTemporalSubLayerPattern <=> rhs.expectDyadicTemporalSubLayerPattern; cmp != 0 )
+        return cmp;
+      if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 )
+        return cmp;
+      if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 )
+        return cmp;
+      if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 )
+        return cmp;
+      if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 )
+        return cmp;
+      if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 )
+        return cmp;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( VideoEncodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
+             ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 ) && ( maxSliceSegmentCount == rhs.maxSliceSegmentCount ) &&
+             ( maxTiles == rhs.maxTiles ) && ( ctbSizes == rhs.ctbSizes ) && ( transformBlockSizes == rhs.transformBlockSizes ) &&
              ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) &&
-             ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxSubLayersCount == rhs.maxSubLayersCount ) &&
-             ( minLog2MinLumaCodingBlockSizeMinus3 == rhs.minLog2MinLumaCodingBlockSizeMinus3 ) &&
-             ( maxLog2MinLumaCodingBlockSizeMinus3 == rhs.maxLog2MinLumaCodingBlockSizeMinus3 ) &&
-             ( minLog2MinLumaTransformBlockSizeMinus2 == rhs.minLog2MinLumaTransformBlockSizeMinus2 ) &&
-             ( maxLog2MinLumaTransformBlockSizeMinus2 == rhs.maxLog2MinLumaTransformBlockSizeMinus2 ) &&
-             ( minMaxTransformHierarchyDepthInter == rhs.minMaxTransformHierarchyDepthInter ) &&
-             ( maxMaxTransformHierarchyDepthInter == rhs.maxMaxTransformHierarchyDepthInter ) &&
-             ( minMaxTransformHierarchyDepthIntra == rhs.minMaxTransformHierarchyDepthIntra ) &&
-             ( maxMaxTransformHierarchyDepthIntra == rhs.maxMaxTransformHierarchyDepthIntra ) && ( maxDiffCuQpDeltaDepth == rhs.maxDiffCuQpDeltaDepth ) &&
-             ( minMaxNumMergeCand == rhs.minMaxNumMergeCand ) && ( maxMaxNumMergeCand == rhs.maxMaxNumMergeCand );
-#    endif
+             ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxSubLayerCount == rhs.maxSubLayerCount ) &&
+             ( expectDyadicTemporalSubLayerPattern == rhs.expectDyadicTemporalSubLayerPattern ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp ) &&
+             ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames ) && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames ) &&
+             ( stdSyntaxFlags == rhs.stdSyntaxFlags );
     }
 
-    bool operator!=( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                             sType                                  = StructureType::eVideoEncodeH265CapabilitiesEXT;
-    void *                                                          pNext                                  = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT         flags                                  = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT          inputModeFlags                         = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT         outputModeFlags                        = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT            ctbSizes                               = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes                    = {};
-    uint8_t                                                         maxPPictureL0ReferenceCount            = {};
-    uint8_t                                                         maxBPictureL0ReferenceCount            = {};
-    uint8_t                                                         maxL1ReferenceCount                    = {};
-    uint8_t                                                         maxSubLayersCount                      = {};
-    uint8_t                                                         minLog2MinLumaCodingBlockSizeMinus3    = {};
-    uint8_t                                                         maxLog2MinLumaCodingBlockSizeMinus3    = {};
-    uint8_t                                                         minLog2MinLumaTransformBlockSizeMinus2 = {};
-    uint8_t                                                         maxLog2MinLumaTransformBlockSizeMinus2 = {};
-    uint8_t                                                         minMaxTransformHierarchyDepthInter     = {};
-    uint8_t                                                         maxMaxTransformHierarchyDepthInter     = {};
-    uint8_t                                                         minMaxTransformHierarchyDepthIntra     = {};
-    uint8_t                                                         maxMaxTransformHierarchyDepthIntra     = {};
-    uint8_t                                                         maxDiffCuQpDeltaDepth                  = {};
-    uint8_t                                                         minMaxNumMergeCand                     = {};
-    uint8_t                                                         maxMaxNumMergeCand                     = {};
+    VULKAN_HPP_NAMESPACE::StructureType                             sType                               = StructureType::eVideoEncodeH265CapabilitiesKHR;
+    void *                                                          pNext                               = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsKHR         flags                               = {};
+    StdVideoH265LevelIdc                                            maxLevelIdc                         = {};
+    uint32_t                                                        maxSliceSegmentCount                = {};
+    VULKAN_HPP_NAMESPACE::Extent2D                                  maxTiles                            = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsKHR            ctbSizes                            = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes                 = {};
+    uint32_t                                                        maxPPictureL0ReferenceCount         = {};
+    uint32_t                                                        maxBPictureL0ReferenceCount         = {};
+    uint32_t                                                        maxL1ReferenceCount                 = {};
+    uint32_t                                                        maxSubLayerCount                    = {};
+    VULKAN_HPP_NAMESPACE::Bool32                                    expectDyadicTemporalSubLayerPattern = {};
+    int32_t                                                         minQp                               = {};
+    int32_t                                                         maxQp                               = {};
+    VULKAN_HPP_NAMESPACE::Bool32                                    prefersGopRemainingFrames           = {};
+    VULKAN_HPP_NAMESPACE::Bool32                                    requiresGopRemainingFrames          = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsKHR                stdSyntaxFlags                      = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265CapabilitiesEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265CapabilitiesKHR>
   {
-    using Type = VideoEncodeH265CapabilitiesEXT;
+    using Type = VideoEncodeH265CapabilitiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265DpbSlotInfoEXT
+  struct VideoEncodeH265DpbSlotInfoKHR
   {
-    using NativeType = VkVideoEncodeH265DpbSlotInfoEXT;
+    using NativeType = VkVideoEncodeH265DpbSlotInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265DpbSlotInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( int8_t                                  slotIndex_         = {},
-                                                        const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoKHR( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {},
                                                         const void *                            pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , slotIndex( slotIndex_ )
       , pStdReferenceInfo( pStdReferenceInfo_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoKHR( VideoEncodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265DpbSlotInfoEXT( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH265DpbSlotInfoEXT const *>( &rhs ) )
+    VideoEncodeH265DpbSlotInfoKHR( VkVideoEncodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265DpbSlotInfoKHR( *reinterpret_cast<VideoEncodeH265DpbSlotInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265DpbSlotInfoEXT & operator=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265DpbSlotInfoKHR & operator=( VideoEncodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265DpbSlotInfoEXT & operator=( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265DpbSlotInfoKHR & operator=( VkVideoEncodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
-    {
-      slotIndex = slotIndex_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT &
-                            setPStdReferenceInfo( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoKHR &
+      setPStdReferenceInfo( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdReferenceInfo = pStdReferenceInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265DpbSlotInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265DpbSlotInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int8_t const &, const StdVideoEncodeH265ReferenceInfo * const &>
-#    endif
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH265ReferenceInfo * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, slotIndex, pStdReferenceInfo );
+      return std::tie( sType, pNext, pStdReferenceInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265DpbSlotInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265DpbSlotInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType     sType             = StructureType::eVideoEncodeH265DpbSlotInfoKHR;
     const void *                            pNext             = {};
-    int8_t                                  slotIndex         = {};
     const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265DpbSlotInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265DpbSlotInfoKHR>
   {
-    using Type = VideoEncodeH265DpbSlotInfoEXT;
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265EmitPictureParametersInfoEXT
-  {
-    using NativeType = VkVideoEncodeH265EmitPictureParametersInfoEXT;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265EmitPictureParametersInfoEXT( uint8_t                      vpsId_           = {},
-                                                                      uint8_t                      spsId_           = {},
-                                                                      VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable_   = {},
-                                                                      VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_   = {},
-                                                                      uint32_t                     ppsIdEntryCount_ = {},
-                                                                      const uint8_t *              ppsIdEntries_    = {},
-                                                                      const void *                 pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , vpsId( vpsId_ )
-      , spsId( spsId_ )
-      , emitVpsEnable( emitVpsEnable_ )
-      , emitSpsEnable( emitSpsEnable_ )
-      , ppsIdEntryCount( ppsIdEntryCount_ )
-      , ppsIdEntries( ppsIdEntries_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265EmitPictureParametersInfoEXT( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    VideoEncodeH265EmitPictureParametersInfoEXT( VkVideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265EmitPictureParametersInfoEXT( *reinterpret_cast<VideoEncodeH265EmitPictureParametersInfoEXT const *>( &rhs ) )
-    {
-    }
-
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265EmitPictureParametersInfoEXT( uint8_t                                                              vpsId_,
-                                                 uint8_t                                                              spsId_,
-                                                 VULKAN_HPP_NAMESPACE::Bool32                                         emitVpsEnable_,
-                                                 VULKAN_HPP_NAMESPACE::Bool32                                         emitSpsEnable_,
-                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_,
-                                                 const void *                                                         pNext_ = nullptr )
-      : pNext( pNext_ )
-      , vpsId( vpsId_ )
-      , spsId( spsId_ )
-      , emitVpsEnable( emitVpsEnable_ )
-      , emitSpsEnable( emitSpsEnable_ )
-      , ppsIdEntryCount( static_cast<uint32_t>( psIdEntries_.size() ) )
-      , ppsIdEntries( psIdEntries_.data() )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VideoEncodeH265EmitPictureParametersInfoEXT & operator=( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH265EmitPictureParametersInfoEXT & operator=( VkVideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT const *>( &rhs );
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setVpsId( uint8_t vpsId_ ) VULKAN_HPP_NOEXCEPT
-    {
-      vpsId = vpsId_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setSpsId( uint8_t spsId_ ) VULKAN_HPP_NOEXCEPT
-    {
-      spsId = spsId_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setEmitVpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable_ ) VULKAN_HPP_NOEXCEPT
-    {
-      emitVpsEnable = emitVpsEnable_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setEmitSpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ ) VULKAN_HPP_NOEXCEPT
-    {
-      emitSpsEnable = emitSpsEnable_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPpsIdEntryCount( uint32_t ppsIdEntryCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntryCount = ppsIdEntryCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPpsIdEntries( const uint8_t * ppsIdEntries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntries = ppsIdEntries_;
-      return *this;
-    }
-
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265EmitPictureParametersInfoEXT &
-      setPsIdEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT
-    {
-      ppsIdEntryCount = static_cast<uint32_t>( psIdEntries_.size() );
-      ppsIdEntries    = psIdEntries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH265EmitPictureParametersInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersInfoEXT *>( this );
-    }
-
-    operator VkVideoEncodeH265EmitPictureParametersInfoEXT &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkVideoEncodeH265EmitPictureParametersInfoEXT *>( this );
-    }
-
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint8_t const &,
-               uint8_t const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               uint32_t const &,
-               const uint8_t * const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, vpsId, spsId, emitVpsEnable, emitSpsEnable, ppsIdEntryCount, ppsIdEntries );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265EmitPictureParametersInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#    if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vpsId == rhs.vpsId ) && ( spsId == rhs.spsId ) && ( emitVpsEnable == rhs.emitVpsEnable ) &&
-             ( emitSpsEnable == rhs.emitSpsEnable ) && ( ppsIdEntryCount == rhs.ppsIdEntryCount ) && ( ppsIdEntries == rhs.ppsIdEntries );
-#    endif
-    }
-
-    bool operator!=( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#  endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType sType           = StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT;
-    const void *                        pNext           = {};
-    uint8_t                             vpsId           = {};
-    uint8_t                             spsId           = {};
-    VULKAN_HPP_NAMESPACE::Bool32        emitVpsEnable   = {};
-    VULKAN_HPP_NAMESPACE::Bool32        emitSpsEnable   = {};
-    uint32_t                            ppsIdEntryCount = {};
-    const uint8_t *                     ppsIdEntries    = {};
+    using Type = VideoEncodeH265DpbSlotInfoKHR;
   };
 
-  template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT>
+  struct VideoEncodeH265FrameSizeKHR
   {
-    using Type = VideoEncodeH265EmitPictureParametersInfoEXT;
-  };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    using NativeType = VkVideoEncodeH265FrameSizeKHR;
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265FrameSizeEXT
-  {
-    using NativeType = VkVideoEncodeH265FrameSizeEXT;
-
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeKHR( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
       : frameISize( frameISize_ )
       , framePSize( framePSize_ )
       , frameBSize( frameBSize_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeKHR( VideoEncodeH265FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265FrameSizeEXT( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265FrameSizeEXT( *reinterpret_cast<VideoEncodeH265FrameSizeEXT const *>( &rhs ) )
+    VideoEncodeH265FrameSizeKHR( VkVideoEncodeH265FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265FrameSizeKHR( *reinterpret_cast<VideoEncodeH265FrameSizeKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265FrameSizeEXT & operator=( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265FrameSizeKHR & operator=( VideoEncodeH265FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265FrameSizeEXT & operator=( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265FrameSizeKHR & operator=( VkVideoEncodeH265FrameSizeKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeKHR & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
     {
       frameISize = frameISize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeKHR & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
     {
       framePSize = framePSize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeKHR & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
     {
       frameBSize = frameBSize_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265FrameSizeKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265FrameSizeEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265FrameSizeKHR *>( this );
     }
 
-    operator VkVideoEncodeH265FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265FrameSizeKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265FrameSizeEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265FrameSizeKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( frameISize, framePSize, frameBSize );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265FrameSizeEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265FrameSizeKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265FrameSizeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265FrameSizeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     uint32_t frameISize = {};
     uint32_t framePSize = {};
     uint32_t frameBSize = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265ReferenceListsInfoEXT
+  struct VideoEncodeH265GopRemainingFrameInfoKHR
   {
-    using NativeType = VkVideoEncodeH265ReferenceListsInfoEXT;
+    using NativeType = VkVideoEncodeH265GopRemainingFrameInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265ReferenceListsInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265GopRemainingFrameInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265ReferenceListsInfoEXT( uint8_t                                                     referenceList0EntryCount_ = {},
-                                                               const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries_   = {},
-                                                               uint8_t                                                     referenceList1EntryCount_ = {},
-                                                               const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries_   = {},
-                                                               const StdVideoEncodeH265ReferenceModifications *            pReferenceModifications_  = {},
-                                                               const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {},
+                                                                  uint32_t                     gopRemainingI_         = {},
+                                                                  uint32_t                     gopRemainingP_         = {},
+                                                                  uint32_t                     gopRemainingB_         = {},
+                                                                  const void *                 pNext_                 = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , referenceList0EntryCount( referenceList0EntryCount_ )
-      , pReferenceList0Entries( pReferenceList0Entries_ )
-      , referenceList1EntryCount( referenceList1EntryCount_ )
-      , pReferenceList1Entries( pReferenceList1Entries_ )
-      , pReferenceModifications( pReferenceModifications_ )
+      , useGopRemainingFrames( useGopRemainingFrames_ )
+      , gopRemainingI( gopRemainingI_ )
+      , gopRemainingP( gopRemainingP_ )
+      , gopRemainingB( gopRemainingB_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265ReferenceListsInfoEXT( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoKHR( VideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265ReferenceListsInfoEXT( VkVideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265ReferenceListsInfoEXT( *reinterpret_cast<VideoEncodeH265ReferenceListsInfoEXT const *>( &rhs ) )
+    VideoEncodeH265GopRemainingFrameInfoKHR( VkVideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265GopRemainingFrameInfoKHR( *reinterpret_cast<VideoEncodeH265GopRemainingFrameInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265ReferenceListsInfoEXT(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList0Entries_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList1Entries_   = {},
-      const StdVideoEncodeH265ReferenceModifications *                                                                 pReferenceModifications_ = {},
-      const void *                                                                                                     pNext_                   = nullptr )
-      : pNext( pNext_ )
-      , referenceList0EntryCount( static_cast<uint8_t>( referenceList0Entries_.size() ) )
-      , pReferenceList0Entries( referenceList0Entries_.data() )
-      , referenceList1EntryCount( static_cast<uint8_t>( referenceList1Entries_.size() ) )
-      , pReferenceList1Entries( referenceList1Entries_.data() )
-      , pReferenceModifications( pReferenceModifications_ )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+    VideoEncodeH265GopRemainingFrameInfoKHR & operator=( VideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265ReferenceListsInfoEXT & operator=( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH265ReferenceListsInfoEXT & operator=( VkVideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265GopRemainingFrameInfoKHR & operator=( VkVideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setReferenceList0EntryCount( uint8_t referenceList0EntryCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoKHR &
+      setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
     {
-      referenceList0EntryCount = referenceList0EntryCount_;
+      useGopRemainingFrames = useGopRemainingFrames_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
-                            setPReferenceList0Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoKHR & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceList0Entries = pReferenceList0Entries_;
+      gopRemainingI = gopRemainingI_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265ReferenceListsInfoEXT & setReferenceList0Entries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList0Entries_ )
-      VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoKHR & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
     {
-      referenceList0EntryCount = static_cast<uint8_t>( referenceList0Entries_.size() );
-      pReferenceList0Entries   = referenceList0Entries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setReferenceList1EntryCount( uint8_t referenceList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      referenceList1EntryCount = referenceList1EntryCount_;
+      gopRemainingP = gopRemainingP_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
-                            setPReferenceList1Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoKHR & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceList1Entries = pReferenceList1Entries_;
+      gopRemainingB = gopRemainingB_;
       return *this;
     }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265ReferenceListsInfoEXT & setReferenceList1Entries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList1Entries_ )
-      VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265GopRemainingFrameInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      referenceList1EntryCount = static_cast<uint8_t>( referenceList1Entries_.size() );
-      pReferenceList1Entries   = referenceList1Entries_.data();
-      return *this;
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
-                            setPReferenceModifications( const StdVideoEncodeH265ReferenceModifications * pReferenceModifications_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pReferenceModifications = pReferenceModifications_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH265ReferenceListsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH265ReferenceListsInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265GopRemainingFrameInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265ReferenceListsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265GopRemainingFrameInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265ReferenceListsInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265GopRemainingFrameInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * const &,
-               const StdVideoEncodeH265ReferenceModifications * const &>
-#    endif
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie(
-        sType, pNext, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pReferenceModifications );
+      return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265ReferenceListsInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265GopRemainingFrameInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( referenceList0EntryCount == rhs.referenceList0EntryCount ) &&
-             ( pReferenceList0Entries == rhs.pReferenceList0Entries ) && ( referenceList1EntryCount == rhs.referenceList1EntryCount ) &&
-             ( pReferenceList1Entries == rhs.pReferenceList1Entries ) && ( pReferenceModifications == rhs.pReferenceModifications );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useGopRemainingFrames == rhs.useGopRemainingFrames ) &&
+             ( gopRemainingI == rhs.gopRemainingI ) && ( gopRemainingP == rhs.gopRemainingP ) && ( gopRemainingB == rhs.gopRemainingB );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265GopRemainingFrameInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                         sType                    = StructureType::eVideoEncodeH265ReferenceListsInfoEXT;
-    const void *                                                pNext                    = {};
-    uint8_t                                                     referenceList0EntryCount = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries   = {};
-    uint8_t                                                     referenceList1EntryCount = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries   = {};
-    const StdVideoEncodeH265ReferenceModifications *            pReferenceModifications  = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType                 = StructureType::eVideoEncodeH265GopRemainingFrameInfoKHR;
+    const void *                        pNext                 = {};
+    VULKAN_HPP_NAMESPACE::Bool32        useGopRemainingFrames = {};
+    uint32_t                            gopRemainingI         = {};
+    uint32_t                            gopRemainingP         = {};
+    uint32_t                            gopRemainingB         = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265ReferenceListsInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265GopRemainingFrameInfoKHR>
   {
-    using Type = VideoEncodeH265ReferenceListsInfoEXT;
+    using Type = VideoEncodeH265GopRemainingFrameInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265NaluSliceSegmentInfoEXT
+  struct VideoEncodeH265NaluSliceSegmentInfoKHR
   {
-    using NativeType = VkVideoEncodeH265NaluSliceSegmentInfoEXT;
+    using NativeType = VkVideoEncodeH265NaluSliceSegmentInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265NaluSliceSegmentInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( uint32_t                                                           ctbCount_             = {},
-                                                                 const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
-                                                                 const StdVideoEncodeH265SliceSegmentHeader * pSliceSegmentHeaderStd_                     = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoKHR( int32_t                                      constantQp_             = {},
+                                                                 const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ = {},
                                                                  const void *                                 pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , ctbCount( ctbCount_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , pSliceSegmentHeaderStd( pSliceSegmentHeaderStd_ )
+      , constantQp( constantQp_ )
+      , pStdSliceSegmentHeader( pStdSliceSegmentHeader_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoKHR( VideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265NaluSliceSegmentInfoEXT( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265NaluSliceSegmentInfoEXT( *reinterpret_cast<VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs ) )
+    VideoEncodeH265NaluSliceSegmentInfoKHR( VkVideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265NaluSliceSegmentInfoKHR( *reinterpret_cast<VideoEncodeH265NaluSliceSegmentInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265NaluSliceSegmentInfoKHR & operator=( VideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265NaluSliceSegmentInfoKHR & operator=( VkVideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setCtbCount( uint32_t ctbCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoKHR & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
     {
-      ctbCount = ctbCount_;
+      constantQp = constantQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT &
-      setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoKHR &
+      setPStdSliceSegmentHeader( const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceFinalLists = pReferenceFinalLists_;
+      pStdSliceSegmentHeader = pStdSliceSegmentHeader_;
       return *this;
     }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT &
-                            setPSliceSegmentHeaderStd( const StdVideoEncodeH265SliceSegmentHeader * pSliceSegmentHeaderStd_ ) VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265NaluSliceSegmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      pSliceSegmentHeaderStd = pSliceSegmentHeaderStd_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkVideoEncodeH265NaluSliceSegmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265NaluSliceSegmentInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265NaluSliceSegmentInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265NaluSliceSegmentInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265NaluSliceSegmentInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH265SliceSegmentHeader * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, constantQp, pStdSliceSegmentHeader );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265NaluSliceSegmentInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantQp == rhs.constantQp ) && ( pStdSliceSegmentHeader == rhs.pStdSliceSegmentHeader );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH265NaluSliceSegmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType          sType                  = StructureType::eVideoEncodeH265NaluSliceSegmentInfoKHR;
+    const void *                                 pNext                  = {};
+    int32_t                                      constantQp             = {};
+    const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceSegmentInfoKHR>
+  {
+    using Type = VideoEncodeH265NaluSliceSegmentInfoKHR;
+  };
+
+  struct VideoEncodeH265PictureInfoKHR
+  {
+    using NativeType = VkVideoEncodeH265PictureInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265PictureInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoKHR( uint32_t                                                             naluSliceSegmentEntryCount_ = {},
+                                                        const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR * pNaluSliceSegmentEntries_   = {},
+                                                        const StdVideoEncodeH265PictureInfo *                                pStdPictureInfo_            = {},
+                                                        const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ )
+      , pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ )
+      , pStdPictureInfo( pStdPictureInfo_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoKHR( VideoEncodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH265PictureInfoKHR( VkVideoEncodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265PictureInfoKHR( *reinterpret_cast<VideoEncodeH265PictureInfoKHR const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265PictureInfoKHR(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR> const & naluSliceSegmentEntries_,
+      const StdVideoEncodeH265PictureInfo *                                                                                     pStdPictureInfo_ = {},
+      const void *                                                                                                              pNext_           = nullptr )
+      : pNext( pNext_ )
+      , naluSliceSegmentEntryCount( static_cast<uint32_t>( naluSliceSegmentEntries_.size() ) )
+      , pNaluSliceSegmentEntries( naluSliceSegmentEntries_.data() )
+      , pStdPictureInfo( pStdPictureInfo_ )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VideoEncodeH265PictureInfoKHR & operator=( VideoEncodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH265PictureInfoKHR & operator=( VkVideoEncodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoKHR & setNaluSliceSegmentEntryCount( uint32_t naluSliceSegmentEntryCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      naluSliceSegmentEntryCount = naluSliceSegmentEntryCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoKHR &
+      setPNaluSliceSegmentEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR * pNaluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNaluSliceSegmentEntries = pNaluSliceSegmentEntries_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265PictureInfoKHR & setNaluSliceSegmentEntries(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR> const & naluSliceSegmentEntries_ )
+      VULKAN_HPP_NOEXCEPT
+    {
+      naluSliceSegmentEntryCount = static_cast<uint32_t>( naluSliceSegmentEntries_.size() );
+      pNaluSliceSegmentEntries   = naluSliceSegmentEntries_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoKHR & setPStdPictureInfo( const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pStdPictureInfo = pStdPictureInfo_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeH265PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH265PictureInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH265PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH265PictureInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * const &,
-               const StdVideoEncodeH265SliceSegmentHeader * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR * const &,
+               const StdVideoEncodeH265PictureInfo * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, ctbCount, pReferenceFinalLists, pSliceSegmentHeaderStd );
+      return std::tie( sType, pNext, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pStdPictureInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265NaluSliceSegmentInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265PictureInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ctbCount == rhs.ctbCount ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
-             ( pSliceSegmentHeaderStd == rhs.pSliceSegmentHeaderStd );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( naluSliceSegmentEntryCount == rhs.naluSliceSegmentEntryCount ) &&
+             ( pNaluSliceSegmentEntries == rhs.pNaluSliceSegmentEntries ) && ( pStdPictureInfo == rhs.pStdPictureInfo );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                sType                  = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
-    const void *                                                       pNext                  = {};
-    uint32_t                                                           ctbCount               = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists   = {};
-    const StdVideoEncodeH265SliceSegmentHeader *                       pSliceSegmentHeaderStd = {};
+    VULKAN_HPP_NAMESPACE::StructureType                                  sType                      = StructureType::eVideoEncodeH265PictureInfoKHR;
+    const void *                                                         pNext                      = {};
+    uint32_t                                                             naluSliceSegmentEntryCount = {};
+    const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR * pNaluSliceSegmentEntries   = {};
+    const StdVideoEncodeH265PictureInfo *                                pStdPictureInfo            = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265PictureInfoKHR>
   {
-    using Type = VideoEncodeH265NaluSliceSegmentInfoEXT;
+    using Type = VideoEncodeH265PictureInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265ProfileInfoEXT
+  struct VideoEncodeH265ProfileInfoKHR
   {
-    using NativeType = VkVideoEncodeH265ProfileInfoEXT;
+    using NativeType = VkVideoEncodeH265ProfileInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265ProfileInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265ProfileInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoKHR( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , stdProfileIdc( stdProfileIdc_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoKHR( VideoEncodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265ProfileInfoEXT( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265ProfileInfoEXT( *reinterpret_cast<VideoEncodeH265ProfileInfoEXT const *>( &rhs ) )
+    VideoEncodeH265ProfileInfoKHR( VkVideoEncodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265ProfileInfoKHR( *reinterpret_cast<VideoEncodeH265ProfileInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265ProfileInfoEXT & operator=( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265ProfileInfoKHR & operator=( VideoEncodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265ProfileInfoEXT & operator=( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265ProfileInfoKHR & operator=( VkVideoEncodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoKHR & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
     {
       stdProfileIdc = stdProfileIdc_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265ProfileInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265ProfileInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265ProfileInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdProfileIdc );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    std::strong_ordering operator<=>( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
         return cmp;
@@ -105052,295 +119183,406 @@
 
       return std::strong_ordering::equivalent;
     }
-#  endif
+#endif
 
-    bool operator==( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator==( VideoEncodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
     }
 
-    bool operator!=( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoEncodeH265ProfileInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType sType         = StructureType::eVideoEncodeH265ProfileInfoKHR;
     const void *                        pNext         = {};
     StdVideoH265ProfileIdc              stdProfileIdc = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileInfoKHR>
   {
-    using Type = VideoEncodeH265ProfileInfoEXT;
+    using Type = VideoEncodeH265ProfileInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265QpEXT
+  struct VideoEncodeH265QpKHR
   {
-    using NativeType = VkVideoEncodeH265QpEXT;
+    using NativeType = VkVideoEncodeH265QpKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265QpKHR( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
       : qpI( qpI_ )
       , qpP( qpP_ )
       , qpB( qpB_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265QpKHR( VideoEncodeH265QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265QpEXT( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265QpEXT( *reinterpret_cast<VideoEncodeH265QpEXT const *>( &rhs ) )
+    VideoEncodeH265QpKHR( VkVideoEncodeH265QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265QpKHR( *reinterpret_cast<VideoEncodeH265QpKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265QpEXT & operator=( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265QpKHR & operator=( VideoEncodeH265QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265QpEXT & operator=( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265QpKHR & operator=( VkVideoEncodeH265QpKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpKHR & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
     {
       qpI = qpI_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpKHR & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
     {
       qpP = qpP_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpKHR & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
     {
       qpB = qpB_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265QpEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265QpKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265QpEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265QpKHR *>( this );
     }
 
-    operator VkVideoEncodeH265QpEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265QpKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265QpEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265QpKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<int32_t const &, int32_t const &, int32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( qpI, qpP, qpB );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265QpEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265QpKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265QpKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265QpKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     int32_t qpI = {};
     int32_t qpP = {};
     int32_t qpB = {};
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265RateControlInfoEXT
+  struct VideoEncodeH265QualityLevelPropertiesKHR
   {
-    using NativeType = VkVideoEncodeH265RateControlInfoEXT;
+    using NativeType = VkVideoEncodeH265QualityLevelPropertiesKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265RateControlInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265QualityLevelPropertiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( uint32_t                                                     gopFrameCount_          = {},
-                                                            uint32_t                                                     idrPeriod_              = {},
-                                                            uint32_t                                                     consecutiveBFrameCount_ = {},
-                                                            VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure_ =
-                                                              VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT::eUnknown,
-                                                            uint8_t      subLayerCount_ = {},
-                                                            const void * pNext_         = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR preferredRateControlFlags_ = {},
+                                                                   uint32_t                                                 preferredGopFrameCount_    = {},
+                                                                   uint32_t                                                 preferredIdrPeriod_        = {},
+                                                                   uint32_t                                   preferredConsecutiveBFrameCount_         = {},
+                                                                   uint32_t                                   preferredSubLayerCount_                  = {},
+                                                                   VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR preferredConstantQp_                     = {},
+                                                                   uint32_t                                   preferredMaxL0ReferenceCount_            = {},
+                                                                   uint32_t                                   preferredMaxL1ReferenceCount_            = {},
+                                                                   void *                                     pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
+      , preferredRateControlFlags( preferredRateControlFlags_ )
+      , preferredGopFrameCount( preferredGopFrameCount_ )
+      , preferredIdrPeriod( preferredIdrPeriod_ )
+      , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
+      , preferredSubLayerCount( preferredSubLayerCount_ )
+      , preferredConstantQp( preferredConstantQp_ )
+      , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
+      , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesKHR( VideoEncodeH265QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH265QualityLevelPropertiesKHR( VkVideoEncodeH265QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265QualityLevelPropertiesKHR( *reinterpret_cast<VideoEncodeH265QualityLevelPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH265QualityLevelPropertiesKHR & operator=( VideoEncodeH265QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH265QualityLevelPropertiesKHR & operator=( VkVideoEncodeH265QualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkVideoEncodeH265QualityLevelPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH265QualityLevelPropertiesKHR *>( this );
+    }
+
+    operator VkVideoEncodeH265QualityLevelPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH265QualityLevelPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const &,
+               uint32_t const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       preferredRateControlFlags,
+                       preferredGopFrameCount,
+                       preferredIdrPeriod,
+                       preferredConsecutiveBFrameCount,
+                       preferredSubLayerCount,
+                       preferredConstantQp,
+                       preferredMaxL0ReferenceCount,
+                       preferredMaxL1ReferenceCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265QualityLevelPropertiesKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265QualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlFlags == rhs.preferredRateControlFlags ) &&
+             ( preferredGopFrameCount == rhs.preferredGopFrameCount ) && ( preferredIdrPeriod == rhs.preferredIdrPeriod ) &&
+             ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount ) && ( preferredSubLayerCount == rhs.preferredSubLayerCount ) &&
+             ( preferredConstantQp == rhs.preferredConstantQp ) && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount ) &&
+             ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH265QualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                      sType                           = StructureType::eVideoEncodeH265QualityLevelPropertiesKHR;
+    void *                                                   pNext                           = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR preferredRateControlFlags       = {};
+    uint32_t                                                 preferredGopFrameCount          = {};
+    uint32_t                                                 preferredIdrPeriod              = {};
+    uint32_t                                                 preferredConsecutiveBFrameCount = {};
+    uint32_t                                                 preferredSubLayerCount          = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR               preferredConstantQp             = {};
+    uint32_t                                                 preferredMaxL0ReferenceCount    = {};
+    uint32_t                                                 preferredMaxL1ReferenceCount    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265QualityLevelPropertiesKHR>
+  {
+    using Type = VideoEncodeH265QualityLevelPropertiesKHR;
+  };
+
+  struct VideoEncodeH265RateControlInfoKHR
+  {
+    using NativeType = VkVideoEncodeH265RateControlInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265RateControlInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR flags_                  = {},
+                                                            uint32_t                                                 gopFrameCount_          = {},
+                                                            uint32_t                                                 idrPeriod_              = {},
+                                                            uint32_t                                                 consecutiveBFrameCount_ = {},
+                                                            uint32_t                                                 subLayerCount_          = {},
+                                                            const void *                                             pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , flags( flags_ )
       , gopFrameCount( gopFrameCount_ )
       , idrPeriod( idrPeriod_ )
       , consecutiveBFrameCount( consecutiveBFrameCount_ )
-      , rateControlStructure( rateControlStructure_ )
       , subLayerCount( subLayerCount_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoKHR( VideoEncodeH265RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265RateControlInfoEXT( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265RateControlInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlInfoEXT const *>( &rhs ) )
+    VideoEncodeH265RateControlInfoKHR( VkVideoEncodeH265RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265RateControlInfoKHR( *reinterpret_cast<VideoEncodeH265RateControlInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265RateControlInfoEXT & operator=( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265RateControlInfoKHR & operator=( VideoEncodeH265RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265RateControlInfoEXT & operator=( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265RateControlInfoKHR & operator=( VkVideoEncodeH265RateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
     {
       gopFrameCount = gopFrameCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
     {
       idrPeriod = idrPeriod_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
     {
       consecutiveBFrameCount = consecutiveBFrameCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT &
-                            setRateControlStructure( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
-    {
-      rateControlStructure = rateControlStructure_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setSubLayerCount( uint8_t subLayerCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoKHR & setSubLayerCount( uint32_t subLayerCount_ ) VULKAN_HPP_NOEXCEPT
     {
       subLayerCount = subLayerCount_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265RateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265RateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265RateControlInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR const &,
                uint32_t const &,
                uint32_t const &,
                uint32_t const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT const &,
-               uint8_t const &>
-#    endif
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, subLayerCount );
+      return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, subLayerCount );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265RateControlInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265RateControlInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265RateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) && ( idrPeriod == rhs.idrPeriod ) &&
-             ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( rateControlStructure == rhs.rateControlStructure ) &&
-             ( subLayerCount == rhs.subLayerCount );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( gopFrameCount == rhs.gopFrameCount ) &&
+             ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( subLayerCount == rhs.subLayerCount );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265RateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                          sType                  = StructureType::eVideoEncodeH265RateControlInfoEXT;
-    const void *                                                 pNext                  = {};
-    uint32_t                                                     gopFrameCount          = {};
-    uint32_t                                                     idrPeriod              = {};
-    uint32_t                                                     consecutiveBFrameCount = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure = VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT::eUnknown;
-    uint8_t                                                      subLayerCount        = {};
+    VULKAN_HPP_NAMESPACE::StructureType                      sType                  = StructureType::eVideoEncodeH265RateControlInfoKHR;
+    const void *                                             pNext                  = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsKHR flags                  = {};
+    uint32_t                                                 gopFrameCount          = {};
+    uint32_t                                                 idrPeriod              = {};
+    uint32_t                                                 consecutiveBFrameCount = {};
+    uint32_t                                                 subLayerCount          = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoKHR>
   {
-    using Type = VideoEncodeH265RateControlInfoEXT;
+    using Type = VideoEncodeH265RateControlInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265RateControlLayerInfoEXT
+  struct VideoEncodeH265RateControlLayerInfoKHR
   {
-    using NativeType = VkVideoEncodeH265RateControlLayerInfoEXT;
+    using NativeType = VkVideoEncodeH265RateControlLayerInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265RateControlLayerInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( uint8_t                                           temporalId_      = {},
-                                                                 VULKAN_HPP_NAMESPACE::Bool32                      useInitialRcQp_  = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        initialRcQp_     = {},
-                                                                 VULKAN_HPP_NAMESPACE::Bool32                      useMinQp_        = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        minQp_           = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoKHR( VULKAN_HPP_NAMESPACE::Bool32                      useMinQp_        = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR        minQp_           = {},
                                                                  VULKAN_HPP_NAMESPACE::Bool32                      useMaxQp_        = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        maxQp_           = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR        maxQp_           = {},
                                                                  VULKAN_HPP_NAMESPACE::Bool32                      useMaxFrameSize_ = {},
-                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize_    = {},
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR maxFrameSize_    = {},
                                                                  const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , temporalId( temporalId_ )
-      , useInitialRcQp( useInitialRcQp_ )
-      , initialRcQp( initialRcQp_ )
       , useMinQp( useMinQp_ )
       , minQp( minQp_ )
       , useMaxQp( useMaxQp_ )
@@ -105350,169 +119592,256 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoKHR( VideoEncodeH265RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265RateControlLayerInfoEXT( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs ) )
+    VideoEncodeH265RateControlLayerInfoKHR( VkVideoEncodeH265RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265RateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeH265RateControlLayerInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265RateControlLayerInfoEXT & operator=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265RateControlLayerInfoKHR & operator=( VideoEncodeH265RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265RateControlLayerInfoEXT & operator=( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265RateControlLayerInfoKHR & operator=( VkVideoEncodeH265RateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setTemporalId( uint8_t temporalId_ ) VULKAN_HPP_NOEXCEPT
-    {
-      temporalId = temporalId_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
-    {
-      useInitialRcQp = useInitialRcQp_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
-                            setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
-    {
-      initialRcQp = initialRcQp_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
     {
       useMinQp = useMinQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const & minQp_ ) VULKAN_HPP_NOEXCEPT
     {
       minQp = minQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
     {
       useMaxQp = useMaxQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const & maxQp_ ) VULKAN_HPP_NOEXCEPT
     {
       maxQp = maxQp_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
     {
       useMaxFrameSize = useMaxFrameSize_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
-                            setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoKHR &
+      setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
     {
       maxFrameSize = maxFrameSize_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265RateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265RateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               uint8_t const &,
                VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const &,
                VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const &,
                VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
-               VULKAN_HPP_NAMESPACE::Bool32 const &,
-               VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const &>
-#    endif
+               VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, temporalId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
+      return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265RateControlLayerInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265RateControlLayerInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265RateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalId == rhs.temporalId ) && ( useInitialRcQp == rhs.useInitialRcQp ) &&
-             ( initialRcQp == rhs.initialRcQp ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
              ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265RateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType               sType           = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType               sType           = StructureType::eVideoEncodeH265RateControlLayerInfoKHR;
     const void *                                      pNext           = {};
-    uint8_t                                           temporalId      = {};
-    VULKAN_HPP_NAMESPACE::Bool32                      useInitialRcQp  = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        initialRcQp     = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMinQp        = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        minQp           = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR        minQp           = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMaxQp        = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT        maxQp           = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR        maxQp           = {};
     VULKAN_HPP_NAMESPACE::Bool32                      useMaxFrameSize = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize    = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR maxFrameSize    = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoKHR>
   {
-    using Type = VideoEncodeH265RateControlLayerInfoEXT;
+    using Type = VideoEncodeH265RateControlLayerInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265SessionParametersAddInfoEXT
+  struct VideoEncodeH265SessionCreateInfoKHR
   {
-    using NativeType = VkVideoEncodeH265SessionParametersAddInfoEXT;
+    using NativeType = VkVideoEncodeH265SessionCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( uint32_t                                 stdVPSCount_ = {},
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
+                                                              StdVideoH265LevelIdc         maxLevelIdc_    = {},
+                                                              const void *                 pNext_          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , useMaxLevelIdc( useMaxLevelIdc_ )
+      , maxLevelIdc( maxLevelIdc_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoKHR( VideoEncodeH265SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH265SessionCreateInfoKHR( VkVideoEncodeH265SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265SessionCreateInfoKHR( *reinterpret_cast<VideoEncodeH265SessionCreateInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH265SessionCreateInfoKHR & operator=( VideoEncodeH265SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH265SessionCreateInfoKHR & operator=( VkVideoEncodeH265SessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoKHR & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
+    {
+      useMaxLevelIdc = useMaxLevelIdc_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoKHR & setMaxLevelIdc( StdVideoH265LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxLevelIdc = maxLevelIdc_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeH265SessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH265SessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH265SessionCreateInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH265LevelIdc const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    std::strong_ordering operator<=>( VideoEncodeH265SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
+        return cmp;
+      if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
+        return cmp;
+      if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 )
+        return cmp;
+      if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
+        return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
+
+      return std::strong_ordering::equivalent;
+    }
+#endif
+
+    bool operator==( VideoEncodeH265SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMaxLevelIdc == rhs.useMaxLevelIdc ) &&
+             ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
+    }
+
+    bool operator!=( VideoEncodeH265SessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType          = StructureType::eVideoEncodeH265SessionCreateInfoKHR;
+    const void *                        pNext          = {};
+    VULKAN_HPP_NAMESPACE::Bool32        useMaxLevelIdc = {};
+    StdVideoH265LevelIdc                maxLevelIdc    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionCreateInfoKHR>
+  {
+    using Type = VideoEncodeH265SessionCreateInfoKHR;
+  };
+
+  struct VideoEncodeH265SessionParametersAddInfoKHR
+  {
+    using NativeType = VkVideoEncodeH265SessionParametersAddInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersAddInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoKHR( uint32_t                                 stdVPSCount_ = {},
                                                                      const StdVideoH265VideoParameterSet *    pStdVPSs_    = {},
                                                                      uint32_t                                 stdSPSCount_ = {},
                                                                      const StdVideoH265SequenceParameterSet * pStdSPSs_    = {},
@@ -105529,15 +119858,15 @@
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoKHR( VideoEncodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265SessionParametersAddInfoEXT( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
+    VideoEncodeH265SessionParametersAddInfoKHR( VkVideoEncodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265SessionParametersAddInfoKHR( *reinterpret_cast<VideoEncodeH265SessionParametersAddInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const &    stdVPSs_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const &    stdVPSs_,
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {},
                                                 VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const &  stdPPSs_ = {},
                                                 const void *                                                                                  pNext_ = nullptr )
@@ -105550,105 +119879,105 @@
       , pStdPPSs( stdPPSs_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VideoEncodeH265SessionParametersAddInfoEXT & operator=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265SessionParametersAddInfoKHR & operator=( VideoEncodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265SessionParametersAddInfoEXT & operator=( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265SessionParametersAddInfoKHR & operator=( VkVideoEncodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdVPSCount = stdVPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdVPSs = pStdVPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265SessionParametersAddInfoKHR &
       setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
       pStdVPSs    = stdVPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = stdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdSPSs = pStdSPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265SessionParametersAddInfoKHR &
       setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
       pStdSPSs    = stdSPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = stdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdPPSs = pStdPPSs_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265SessionParametersAddInfoEXT &
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeH265SessionParametersAddInfoKHR &
       setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
     {
       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
       pStdPPSs    = stdPPSs_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
@@ -105657,34 +119986,34 @@
                const StdVideoH265SequenceParameterSet * const &,
                uint32_t const &,
                const StdVideoH265PictureParameterSet * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265SessionParametersAddInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265SessionParametersAddInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdVPSCount == rhs.stdVPSCount ) && ( pStdVPSs == rhs.pStdVPSs ) &&
              ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) && ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType      sType       = StructureType::eVideoEncodeH265SessionParametersAddInfoKHR;
     const void *                             pNext       = {};
     uint32_t                                 stdVPSCount = {};
     const StdVideoH265VideoParameterSet *    pStdVPSs    = {};
@@ -105695,26 +120024,24 @@
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersAddInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersAddInfoKHR>
   {
-    using Type = VideoEncodeH265SessionParametersAddInfoEXT;
+    using Type = VideoEncodeH265SessionParametersAddInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265SessionParametersCreateInfoEXT
+  struct VideoEncodeH265SessionParametersCreateInfoKHR
   {
-    using NativeType = VkVideoEncodeH265SessionParametersCreateInfoEXT;
+    using NativeType = VkVideoEncodeH265SessionParametersCreateInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
-      VideoEncodeH265SessionParametersCreateInfoEXT( uint32_t                                                                 maxStdVPSCount_     = {},
+      VideoEncodeH265SessionParametersCreateInfoKHR( uint32_t                                                                 maxStdVPSCount_     = {},
                                                      uint32_t                                                                 maxStdSPSCount_     = {},
                                                      uint32_t                                                                 maxStdPPSCount_     = {},
-                                                     const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
+                                                     const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
                                                      const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , maxStdVPSCount( maxStdVPSCount_ )
@@ -105725,280 +120052,361 @@
     }
 
     VULKAN_HPP_CONSTEXPR
-      VideoEncodeH265SessionParametersCreateInfoEXT( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+      VideoEncodeH265SessionParametersCreateInfoKHR( VideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265SessionParametersCreateInfoEXT( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
+    VideoEncodeH265SessionParametersCreateInfoKHR( VkVideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265SessionParametersCreateInfoKHR( *reinterpret_cast<VideoEncodeH265SessionParametersCreateInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoEncodeH265SessionParametersCreateInfoKHR & operator=( VideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265SessionParametersCreateInfoKHR & operator=( VkVideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoKHR & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdVPSCount = maxStdVPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdSPSCount = maxStdSPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
     {
       maxStdPPSCount = maxStdPPSCount_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT &
-      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoKHR &
+      setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
     {
       pParametersAddInfo = pParametersAddInfo_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
                uint32_t const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * const &>
-#    endif
+               const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR * const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265SessionParametersCreateInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265SessionParametersCreateInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdVPSCount == rhs.maxStdVPSCount ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) &&
              ( maxStdPPSCount == rhs.maxStdPPSCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
-#    endif
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
+    VULKAN_HPP_NAMESPACE::StructureType                                      sType              = StructureType::eVideoEncodeH265SessionParametersCreateInfoKHR;
     const void *                                                             pNext              = {};
     uint32_t                                                                 maxStdVPSCount     = {};
     uint32_t                                                                 maxStdSPSCount     = {};
     uint32_t                                                                 maxStdPPSCount     = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
+    const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR * pParametersAddInfo = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersCreateInfoKHR>
   {
-    using Type = VideoEncodeH265SessionParametersCreateInfoEXT;
+    using Type = VideoEncodeH265SessionParametersCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoEncodeH265VclFrameInfoEXT
+  struct VideoEncodeH265SessionParametersFeedbackInfoKHR
   {
-    using NativeType = VkVideoEncodeH265VclFrameInfoEXT;
+    using NativeType = VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265VclFrameInfoEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265VclFrameInfoEXT( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT *   pReferenceFinalLists_       = {},
-                                                         uint32_t                                                             naluSliceSegmentEntryCount_ = {},
-                                                         const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_   = {},
-                                                         const StdVideoEncodeH265PictureInfo *                                pCurrentPictureInfo_        = {},
-                                                         const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasStdVPSOverrides_ = {},
+                                                                          VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
+                                                                          VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
+                                                                          void *                       pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ )
-      , pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ )
-      , pCurrentPictureInfo( pCurrentPictureInfo_ )
+      , hasStdVPSOverrides( hasStdVPSOverrides_ )
+      , hasStdSPSOverrides( hasStdSPSOverrides_ )
+      , hasStdPPSOverrides( hasStdPPSOverrides_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoEncodeH265VclFrameInfoEXT( VideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR
+      VideoEncodeH265SessionParametersFeedbackInfoKHR( VideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoEncodeH265VclFrameInfoEXT( VkVideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
-      : VideoEncodeH265VclFrameInfoEXT( *reinterpret_cast<VideoEncodeH265VclFrameInfoEXT const *>( &rhs ) )
+    VideoEncodeH265SessionParametersFeedbackInfoKHR( VkVideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265SessionParametersFeedbackInfoKHR( *reinterpret_cast<VideoEncodeH265SessionParametersFeedbackInfoKHR const *>( &rhs ) )
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265VclFrameInfoEXT(
-      const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT *                                                        pReferenceFinalLists_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_,
-      const StdVideoEncodeH265PictureInfo *                                                                                     pCurrentPictureInfo_ = {},
-      const void *                                                                                                              pNext_               = nullptr )
-      : pNext( pNext_ )
-      , pReferenceFinalLists( pReferenceFinalLists_ )
-      , naluSliceSegmentEntryCount( static_cast<uint32_t>( naluSliceSegmentEntries_.size() ) )
-      , pNaluSliceSegmentEntries( naluSliceSegmentEntries_.data() )
-      , pCurrentPictureInfo( pCurrentPictureInfo_ )
-    {
-    }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+    VideoEncodeH265SessionParametersFeedbackInfoKHR & operator=( VideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoEncodeH265VclFrameInfoEXT & operator=( VideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    VideoEncodeH265VclFrameInfoEXT & operator=( VkVideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoEncodeH265SessionParametersFeedbackInfoKHR & operator=( VkVideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersFeedbackInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersFeedbackInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeH265SessionParametersFeedbackInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeH265SessionParametersFeedbackInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, hasStdVPSOverrides, hasStdSPSOverrides, hasStdPPSOverrides );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265SessionParametersFeedbackInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasStdVPSOverrides == rhs.hasStdVPSOverrides ) &&
+             ( hasStdSPSOverrides == rhs.hasStdSPSOverrides ) && ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeH265SessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType              = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoKHR;
+    void *                              pNext              = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasStdVPSOverrides = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasStdSPSOverrides = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasStdPPSOverrides = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersFeedbackInfoKHR>
+  {
+    using Type = VideoEncodeH265SessionParametersFeedbackInfoKHR;
+  };
+
+  struct VideoEncodeH265SessionParametersGetInfoKHR
+  {
+    using NativeType = VkVideoEncodeH265SessionParametersGetInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeH265SessionParametersGetInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {},
+                                                                     VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {},
+                                                                     uint32_t                     stdVPSId_    = {},
+                                                                     uint32_t                     stdSPSId_    = {},
+                                                                     uint32_t                     stdPPSId_    = {},
+                                                                     const void *                 pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , writeStdVPS( writeStdVPS_ )
+      , writeStdSPS( writeStdSPS_ )
+      , writeStdPPS( writeStdPPS_ )
+      , stdVPSId( stdVPSId_ )
+      , stdSPSId( stdSPSId_ )
+      , stdPPSId( stdPPSId_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoKHR( VideoEncodeH265SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeH265SessionParametersGetInfoKHR( VkVideoEncodeH265SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeH265SessionParametersGetInfoKHR( *reinterpret_cast<VideoEncodeH265SessionParametersGetInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeH265SessionParametersGetInfoKHR & operator=( VideoEncodeH265SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeH265SessionParametersGetInfoKHR & operator=( VkVideoEncodeH265SessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
-      setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setWriteStdVPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ ) VULKAN_HPP_NOEXCEPT
     {
-      pReferenceFinalLists = pReferenceFinalLists_;
+      writeStdVPS = writeStdVPS_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT & setNaluSliceSegmentEntryCount( uint32_t naluSliceSegmentEntryCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
     {
-      naluSliceSegmentEntryCount = naluSliceSegmentEntryCount_;
+      writeStdSPS = writeStdSPS_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
-      setPNaluSliceSegmentEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
     {
-      pNaluSliceSegmentEntries = pNaluSliceSegmentEntries_;
+      writeStdPPS = writeStdPPS_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeH265VclFrameInfoEXT & setNaluSliceSegmentEntries(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_ )
-      VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setStdVPSId( uint32_t stdVPSId_ ) VULKAN_HPP_NOEXCEPT
     {
-      naluSliceSegmentEntryCount = static_cast<uint32_t>( naluSliceSegmentEntries_.size() );
-      pNaluSliceSegmentEntries   = naluSliceSegmentEntries_.data();
+      stdVPSId = stdVPSId_;
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
-                            setPCurrentPictureInfo( const StdVideoEncodeH265PictureInfo * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
     {
-      pCurrentPictureInfo = pCurrentPictureInfo_;
+      stdSPSId = stdSPSId_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoEncodeH265VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoKHR & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT *>( this );
+      stdPPSId = stdPPSId_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeH265SessionParametersGetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeH265SessionParametersGetInfoKHR *>( this );
     }
 
-    operator VkVideoEncodeH265VclFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeH265SessionParametersGetInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT *>( this );
+      return *reinterpret_cast<VkVideoEncodeH265SessionParametersGetInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
                uint32_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * const &,
-               const StdVideoEncodeH265PictureInfo * const &>
-#    endif
+               uint32_t const &,
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, pReferenceFinalLists, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pCurrentPictureInfo );
+      return std::tie( sType, pNext, writeStdVPS, writeStdSPS, writeStdPPS, stdVPSId, stdSPSId, stdPPSId );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoEncodeH265VclFrameInfoEXT const & ) const = default;
-#  else
-    bool operator==( VideoEncodeH265VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeH265SessionParametersGetInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeH265SessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
-             ( naluSliceSegmentEntryCount == rhs.naluSliceSegmentEntryCount ) && ( pNaluSliceSegmentEntries == rhs.pNaluSliceSegmentEntries ) &&
-             ( pCurrentPictureInfo == rhs.pCurrentPictureInfo );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( writeStdVPS == rhs.writeStdVPS ) && ( writeStdSPS == rhs.writeStdSPS ) &&
+             ( writeStdPPS == rhs.writeStdPPS ) && ( stdVPSId == rhs.stdVPSId ) && ( stdSPSId == rhs.stdSPSId ) && ( stdPPSId == rhs.stdPPSId );
+#  endif
     }
 
-    bool operator!=( VideoEncodeH265VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoEncodeH265SessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                                  sType                      = StructureType::eVideoEncodeH265VclFrameInfoEXT;
-    const void *                                                         pNext                      = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT *   pReferenceFinalLists       = {};
-    uint32_t                                                             naluSliceSegmentEntryCount = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries   = {};
-    const StdVideoEncodeH265PictureInfo *                                pCurrentPictureInfo        = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType       = StructureType::eVideoEncodeH265SessionParametersGetInfoKHR;
+    const void *                        pNext       = {};
+    VULKAN_HPP_NAMESPACE::Bool32        writeStdVPS = {};
+    VULKAN_HPP_NAMESPACE::Bool32        writeStdSPS = {};
+    VULKAN_HPP_NAMESPACE::Bool32        writeStdPPS = {};
+    uint32_t                            stdVPSId    = {};
+    uint32_t                            stdSPSId    = {};
+    uint32_t                            stdPPSId    = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoEncodeH265VclFrameInfoEXT>
+  struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersGetInfoKHR>
   {
-    using Type = VideoEncodeH265VclFrameInfoEXT;
+    using Type = VideoEncodeH265SessionParametersGetInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoEncodeInfoKHR
   {
     using NativeType = VkVideoEncodeInfoKHR;
@@ -106006,12 +120414,11 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR               flags_                           = {},
-                                             uint32_t                                                qualityLevel_                    = {},
-                                             VULKAN_HPP_NAMESPACE::Buffer                            dstBitstreamBuffer_              = {},
-                                             VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferOffset_        = {},
-                                             VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferMaxRange_      = {},
+                                             VULKAN_HPP_NAMESPACE::Buffer                            dstBuffer_                       = {},
+                                             VULKAN_HPP_NAMESPACE::DeviceSize                        dstBufferOffset_                 = {},
+                                             VULKAN_HPP_NAMESPACE::DeviceSize                        dstBufferRange_                  = {},
                                              VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR       srcPictureResource_              = {},
                                              const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_             = {},
                                              uint32_t                                                referenceSlotCount_              = {},
@@ -106020,10 +120427,9 @@
                                              const void *                                            pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
-      , qualityLevel( qualityLevel_ )
-      , dstBitstreamBuffer( dstBitstreamBuffer_ )
-      , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ )
-      , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ )
+      , dstBuffer( dstBuffer_ )
+      , dstBufferOffset( dstBufferOffset_ )
+      , dstBufferRange( dstBufferRange_ )
       , srcPictureResource( srcPictureResource_ )
       , pSetupReferenceSlot( pSetupReferenceSlot_ )
       , referenceSlotCount( referenceSlotCount_ )
@@ -106036,23 +120442,21 @@
 
     VideoEncodeInfoKHR( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoEncodeInfoKHR( *reinterpret_cast<VideoEncodeInfoKHR const *>( &rhs ) ) {}
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR               flags_,
-                        uint32_t                                                qualityLevel_,
-                        VULKAN_HPP_NAMESPACE::Buffer                            dstBitstreamBuffer_,
-                        VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferOffset_,
-                        VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferMaxRange_,
-                        VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR       srcPictureResource_,
-                        const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_,
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR                                                                    flags_,
+                        VULKAN_HPP_NAMESPACE::Buffer                                                                                 dstBuffer_,
+                        VULKAN_HPP_NAMESPACE::DeviceSize                                                                             dstBufferOffset_,
+                        VULKAN_HPP_NAMESPACE::DeviceSize                                                                             dstBufferRange_,
+                        VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR                                                            srcPictureResource_,
+                        const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR *                                                      pSetupReferenceSlot_,
                         VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
                         uint32_t     precedingExternallyEncodedBytes_ = {},
                         const void * pNext_                           = nullptr )
       : pNext( pNext_ )
       , flags( flags_ )
-      , qualityLevel( qualityLevel_ )
-      , dstBitstreamBuffer( dstBitstreamBuffer_ )
-      , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ )
-      , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ )
+      , dstBuffer( dstBuffer_ )
+      , dstBufferOffset( dstBufferOffset_ )
+      , dstBufferRange( dstBufferRange_ )
       , srcPictureResource( srcPictureResource_ )
       , pSetupReferenceSlot( pSetupReferenceSlot_ )
       , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
@@ -106060,10 +120464,10 @@
       , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VideoEncodeInfoKHR & operator=( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEncodeInfoKHR & operator=( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106071,7 +120475,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -106084,40 +120488,33 @@
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
     {
-      qualityLevel = qualityLevel_;
+      dstBuffer = dstBuffer_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBitstreamBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_ ) VULKAN_HPP_NOEXCEPT
     {
-      dstBitstreamBuffer = dstBitstreamBuffer_;
+      dstBufferOffset = dstBufferOffset_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBitstreamBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_ ) VULKAN_HPP_NOEXCEPT
     {
-      dstBitstreamBufferOffset = dstBitstreamBufferOffset_;
+      dstBufferRange = dstBufferRange_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
-                            setDstBitstreamBufferMaxRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ ) VULKAN_HPP_NOEXCEPT
-    {
-      dstBitstreamBufferMaxRange = dstBitstreamBufferMaxRange_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
-                            setSrcPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT
+      setSrcPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT
     {
       srcPictureResource = srcPictureResource_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
-                            setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
+      setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
     {
       pSetupReferenceSlot = pSetupReferenceSlot_;
       return *this;
@@ -106130,13 +120527,13 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
-                            setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
+      setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
       pReferenceSlots = pReferenceSlots_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoEncodeInfoKHR & setReferenceSlots(
       VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
     {
@@ -106144,41 +120541,32 @@
       pReferenceSlots    = referenceSlots_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
     {
       precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
-      setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
-    {
-      precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoEncodeInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoEncodeInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR const &,
-               uint32_t const &,
                VULKAN_HPP_NAMESPACE::Buffer const &,
                VULKAN_HPP_NAMESPACE::DeviceSize const &,
                VULKAN_HPP_NAMESPACE::DeviceSize const &,
@@ -106187,54 +120575,51 @@
                uint32_t const &,
                const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
                uint32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType,
                        pNext,
                        flags,
-                       qualityLevel,
-                       dstBitstreamBuffer,
-                       dstBitstreamBufferOffset,
-                       dstBitstreamBufferMaxRange,
+                       dstBuffer,
+                       dstBufferOffset,
+                       dstBufferRange,
                        srcPictureResource,
                        pSetupReferenceSlot,
                        referenceSlotCount,
                        pReferenceSlots,
                        precedingExternallyEncodedBytes );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEncodeInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( qualityLevel == rhs.qualityLevel ) &&
-             ( dstBitstreamBuffer == rhs.dstBitstreamBuffer ) && ( dstBitstreamBufferOffset == rhs.dstBitstreamBufferOffset ) &&
-             ( dstBitstreamBufferMaxRange == rhs.dstBitstreamBufferMaxRange ) && ( srcPictureResource == rhs.srcPictureResource ) &&
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dstBuffer == rhs.dstBuffer ) &&
+             ( dstBufferOffset == rhs.dstBufferOffset ) && ( dstBufferRange == rhs.dstBufferRange ) && ( srcPictureResource == rhs.srcPictureResource ) &&
              ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
              ( pReferenceSlots == rhs.pReferenceSlots ) && ( precedingExternallyEncodedBytes == rhs.precedingExternallyEncodedBytes );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                     sType                           = StructureType::eVideoEncodeInfoKHR;
     const void *                                            pNext                           = {};
     VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR               flags                           = {};
-    uint32_t                                                qualityLevel                    = {};
-    VULKAN_HPP_NAMESPACE::Buffer                            dstBitstreamBuffer              = {};
-    VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferOffset        = {};
-    VULKAN_HPP_NAMESPACE::DeviceSize                        dstBitstreamBufferMaxRange      = {};
+    VULKAN_HPP_NAMESPACE::Buffer                            dstBuffer                       = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                        dstBufferOffset                 = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                        dstBufferRange                  = {};
     VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR       srcPictureResource              = {};
     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot             = {};
     uint32_t                                                referenceSlotCount              = {};
@@ -106247,9 +120632,193 @@
   {
     using Type = VideoEncodeInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct VideoEncodeQualityLevelInfoKHR
+  {
+    using NativeType = VkVideoEncodeQualityLevelInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeQualityLevelInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( uint32_t qualityLevel_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , qualityLevel( qualityLevel_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeQualityLevelInfoKHR( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeQualityLevelInfoKHR( *reinterpret_cast<VideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeQualityLevelInfoKHR & operator=( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeQualityLevelInfoKHR & operator=( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
+    {
+      qualityLevel = qualityLevel_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeQualityLevelInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeQualityLevelInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, qualityLevel );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeQualityLevelInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( qualityLevel == rhs.qualityLevel );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::eVideoEncodeQualityLevelInfoKHR;
+    const void *                        pNext        = {};
+    uint32_t                            qualityLevel = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelInfoKHR>
+  {
+    using Type = VideoEncodeQualityLevelInfoKHR;
+  };
+
+  struct VideoEncodeQualityLevelPropertiesKHR
+  {
+    using NativeType = VkVideoEncodeQualityLevelPropertiesKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode_ =
+                                                                 VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault,
+                                                               uint32_t preferredRateControlLayerCount_ = {},
+                                                               void *   pNext_                          = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , preferredRateControlMode( preferredRateControlMode_ )
+      , preferredRateControlLayerCount( preferredRateControlLayerCount_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeQualityLevelPropertiesKHR( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeQualityLevelPropertiesKHR( *reinterpret_cast<VideoEncodeQualityLevelPropertiesKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeQualityLevelPropertiesKHR & operator=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeQualityLevelPropertiesKHR & operator=( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkVideoEncodeQualityLevelPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeQualityLevelPropertiesKHR *>( this );
+    }
+
+    operator VkVideoEncodeQualityLevelPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::
+      tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, preferredRateControlMode, preferredRateControlLayerCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeQualityLevelPropertiesKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlMode == rhs.preferredRateControlMode ) &&
+             ( preferredRateControlLayerCount == rhs.preferredRateControlLayerCount );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                         sType = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
+    void *                                                      pNext = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode =
+      VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
+    uint32_t preferredRateControlLayerCount = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelPropertiesKHR>
+  {
+    using Type = VideoEncodeQualityLevelPropertiesKHR;
+  };
+
   struct VideoEncodeRateControlLayerInfoKHR
   {
     using NativeType = VkVideoEncodeRateControlLayerInfoKHR;
@@ -106257,21 +120826,17 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeRateControlLayerInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( uint32_t     averageBitrate_               = {},
-                                                             uint32_t     maxBitrate_                   = {},
-                                                             uint32_t     frameRateNumerator_           = {},
-                                                             uint32_t     frameRateDenominator_         = {},
-                                                             uint32_t     virtualBufferSizeInMs_        = {},
-                                                             uint32_t     initialVirtualBufferSizeInMs_ = {},
-                                                             const void * pNext_                        = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( uint64_t     averageBitrate_       = {},
+                                                             uint64_t     maxBitrate_           = {},
+                                                             uint32_t     frameRateNumerator_   = {},
+                                                             uint32_t     frameRateDenominator_ = {},
+                                                             const void * pNext_                = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , averageBitrate( averageBitrate_ )
       , maxBitrate( maxBitrate_ )
       , frameRateNumerator( frameRateNumerator_ )
       , frameRateDenominator( frameRateDenominator_ )
-      , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
-      , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
     {
     }
 
@@ -106283,7 +120848,7 @@
     }
 
     VideoEncodeRateControlLayerInfoKHR & operator=( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEncodeRateControlLayerInfoKHR & operator=( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106291,20 +120856,20 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setAverageBitrate( uint32_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setAverageBitrate( uint64_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
     {
       averageBitrate = averageBitrate_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setMaxBitrate( uint32_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setMaxBitrate( uint64_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
     {
       maxBitrate = maxBitrate_;
       return *this;
@@ -106321,19 +120886,7 @@
       frameRateDenominator = frameRateDenominator_;
       return *this;
     }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
-    {
-      virtualBufferSizeInMs = virtualBufferSizeInMs_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
-    {
-      initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoEncodeRateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -106345,55 +120898,44 @@
       return *reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &>
-#    endif
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &, uint32_t const &, uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie(
-        sType, pNext, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator, virtualBufferSizeInMs, initialVirtualBufferSizeInMs );
+      return std::tie( sType, pNext, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEncodeRateControlLayerInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( averageBitrate == rhs.averageBitrate ) && ( maxBitrate == rhs.maxBitrate ) &&
-             ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator ) &&
-             ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ) && ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
-#    endif
+             ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator );
+#  endif
     }
 
     bool operator!=( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType sType                        = StructureType::eVideoEncodeRateControlLayerInfoKHR;
-    const void *                        pNext                        = {};
-    uint32_t                            averageBitrate               = {};
-    uint32_t                            maxBitrate                   = {};
-    uint32_t                            frameRateNumerator           = {};
-    uint32_t                            frameRateDenominator         = {};
-    uint32_t                            virtualBufferSizeInMs        = {};
-    uint32_t                            initialVirtualBufferSizeInMs = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType                = StructureType::eVideoEncodeRateControlLayerInfoKHR;
+    const void *                        pNext                = {};
+    uint64_t                            averageBitrate       = {};
+    uint64_t                            maxBitrate           = {};
+    uint32_t                            frameRateNumerator   = {};
+    uint32_t                            frameRateDenominator = {};
   };
 
   template <>
@@ -106401,9 +120943,7 @@
   {
     using Type = VideoEncodeRateControlLayerInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoEncodeRateControlInfoKHR
   {
     using NativeType = VkVideoEncodeRateControlInfoKHR;
@@ -106411,18 +120951,22 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeRateControlInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR(
       VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR             flags_           = {},
-      VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR      rateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone,
-      uint8_t                                                          layerCount_      = {},
-      const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_   = {},
-      const void *                                                     pNext_           = nullptr ) VULKAN_HPP_NOEXCEPT
+      VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR      rateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault,
+      uint32_t                                                         layerCount_      = {},
+      const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_         = {},
+      uint32_t                                                         virtualBufferSizeInMs_        = {},
+      uint32_t                                                         initialVirtualBufferSizeInMs_ = {},
+      const void *                                                     pNext_                        = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
       , rateControlMode( rateControlMode_ )
       , layerCount( layerCount_ )
-      , pLayerConfigs( pLayerConfigs_ )
+      , pLayers( pLayers_ )
+      , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
+      , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
     {
     }
 
@@ -106433,23 +120977,27 @@
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoEncodeRateControlInfoKHR(
       VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR                                                                  flags_,
       VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR                                                           rateControlMode_,
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_,
+      uint32_t                                                                                                              virtualBufferSizeInMs_        = {},
+      uint32_t                                                                                                              initialVirtualBufferSizeInMs_ = {},
       const void *                                                                                                          pNext_ = nullptr )
       : pNext( pNext_ )
       , flags( flags_ )
       , rateControlMode( rateControlMode_ )
-      , layerCount( static_cast<uint8_t>( layerConfigs_.size() ) )
-      , pLayerConfigs( layerConfigs_.data() )
+      , layerCount( static_cast<uint32_t>( layers_.size() ) )
+      , pLayers( layers_.data() )
+      , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
+      , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VideoEncodeRateControlInfoKHR & operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEncodeRateControlInfoKHR & operator=( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106457,7 +121005,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -106471,89 +121019,106 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
-                            setRateControlMode( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT
+      setRateControlMode( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT
     {
       rateControlMode = rateControlMode_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint8_t layerCount_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
     {
       layerCount = layerCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
-                            setPLayerConfigs( const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_ ) VULKAN_HPP_NOEXCEPT
+      setPLayers( const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_ ) VULKAN_HPP_NOEXCEPT
     {
-      pLayerConfigs = pLayerConfigs_;
+      pLayers = pLayers_;
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    VideoEncodeRateControlInfoKHR & setLayerConfigs(
-      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_ ) VULKAN_HPP_NOEXCEPT
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    VideoEncodeRateControlInfoKHR & setLayers(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_ ) VULKAN_HPP_NOEXCEPT
     {
-      layerCount    = static_cast<uint8_t>( layerConfigs_.size() );
-      pLayerConfigs = layerConfigs_.data();
+      layerCount = static_cast<uint32_t>( layers_.size() );
+      pLayers    = layers_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      virtualBufferSizeInMs = virtualBufferSizeInMs_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
+    {
+      initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoEncodeRateControlInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoEncodeRateControlInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &,
-               uint8_t const &,
-               const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * const &>
-#    endif
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * const &,
+               uint32_t const &,
+               uint32_t const &>
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
-      return std::tie( sType, pNext, flags, rateControlMode, layerCount, pLayerConfigs );
+      return std::tie( sType, pNext, flags, rateControlMode, layerCount, pLayers, virtualBufferSizeInMs, initialVirtualBufferSizeInMs );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEncodeRateControlInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlMode == rhs.rateControlMode ) &&
-             ( layerCount == rhs.layerCount ) && ( pLayerConfigs == rhs.pLayerConfigs );
-#    endif
+             ( layerCount == rhs.layerCount ) && ( pLayers == rhs.pLayers ) && ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ) &&
+             ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
+#  endif
     }
 
     bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                              sType           = StructureType::eVideoEncodeRateControlInfoKHR;
     const void *                                                     pNext           = {};
     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR             flags           = {};
-    VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR      rateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone;
-    uint8_t                                                          layerCount      = {};
-    const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs   = {};
+    VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR      rateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
+    uint32_t                                                         layerCount      = {};
+    const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers         = {};
+    uint32_t                                                         virtualBufferSizeInMs        = {};
+    uint32_t                                                         initialVirtualBufferSizeInMs = {};
   };
 
   template <>
@@ -106561,9 +121126,188 @@
   {
     using Type = VideoEncodeRateControlInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  struct VideoEncodeSessionParametersFeedbackInfoKHR
+  {
+    using NativeType = VkVideoEncodeSessionParametersFeedbackInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasOverrides_ = {},
+                                                                      void *                       pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , hasOverrides( hasOverrides_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeSessionParametersFeedbackInfoKHR( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeSessionParametersFeedbackInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+    operator VkVideoEncodeSessionParametersFeedbackInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeSessionParametersFeedbackInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeSessionParametersFeedbackInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, hasOverrides );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeSessionParametersFeedbackInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasOverrides == rhs.hasOverrides );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType        = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
+    void *                              pNext        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        hasOverrides = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR>
+  {
+    using Type = VideoEncodeSessionParametersFeedbackInfoKHR;
+  };
+
+  struct VideoEncodeSessionParametersGetInfoKHR
+  {
+    using NativeType = VkVideoEncodeSessionParametersGetInfoKHR;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {},
+                                                                 const void *                                    pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext( pNext_ )
+      , videoSessionParameters( videoSessionParameters_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    VideoEncodeSessionParametersGetInfoKHR( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoEncodeSessionParametersGetInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersGetInfoKHR const *>( &rhs ) )
+    {
+    }
+
+    VideoEncodeSessionParametersGetInfoKHR & operator=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    VideoEncodeSessionParametersGetInfoKHR & operator=( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR &
+      setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
+    {
+      videoSessionParameters = videoSessionParameters_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkVideoEncodeSessionParametersGetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( this );
+    }
+
+    operator VkVideoEncodeSessionParametersGetInfoKHR &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkVideoEncodeSessionParametersGetInfoKHR *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, videoSessionParameters );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoEncodeSessionParametersGetInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoSessionParameters == rhs.videoSessionParameters );
+#  endif
+    }
+
+    bool operator!=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType             sType                  = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
+    const void *                                    pNext                  = {};
+    VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersGetInfoKHR>
+  {
+    using Type = VideoEncodeSessionParametersGetInfoKHR;
+  };
+
   struct VideoEncodeUsageInfoKHR
   {
     using NativeType = VkVideoEncodeUsageInfoKHR;
@@ -106571,7 +121315,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEncodeUsageInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR
       VideoEncodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR   videoUsageHints_   = {},
                                VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ = {},
@@ -106592,7 +121336,7 @@
     }
 
     VideoEncodeUsageInfoKHR & operator=( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEncodeUsageInfoKHR & operator=( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106600,7 +121344,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -106614,7 +121358,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR &
-                            setVideoContentHints( VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ ) VULKAN_HPP_NOEXCEPT
+      setVideoContentHints( VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ ) VULKAN_HPP_NOEXCEPT
     {
       videoContentHints = videoContentHints_;
       return *this;
@@ -106625,7 +121369,7 @@
       tuningMode = tuningMode_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoEncodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -106637,40 +121381,40 @@
       return *reinterpret_cast<VkVideoEncodeUsageInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR const &,
                VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, videoUsageHints, videoContentHints, tuningMode );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEncodeUsageInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints ) && ( videoContentHints == rhs.videoContentHints ) &&
              ( tuningMode == rhs.tuningMode );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType              sType             = StructureType::eVideoEncodeUsageInfoKHR;
@@ -106685,9 +121429,7 @@
   {
     using Type = VideoEncodeUsageInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoEndCodingInfoKHR
   {
     using NativeType = VkVideoEndCodingInfoKHR;
@@ -106695,7 +121437,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoEndCodingInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , flags( flags_ )
@@ -106710,7 +121452,7 @@
     }
 
     VideoEndCodingInfoKHR & operator=( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoEndCodingInfoKHR & operator=( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106718,7 +121460,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -106730,47 +121472,47 @@
       flags = flags_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoEndCodingInfoKHR *>( this );
     }
 
-    explicit operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoEndCodingInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, flags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoEndCodingInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType          sType = StructureType::eVideoEndCodingInfoKHR;
@@ -106783,9 +121525,7 @@
   {
     using Type = VideoEndCodingInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoFormatPropertiesKHR
   {
     using NativeType = VkVideoFormatPropertiesKHR;
@@ -106793,7 +121533,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoFormatPropertiesKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VULKAN_HPP_NAMESPACE::Format           format_           = VULKAN_HPP_NAMESPACE::Format::eUndefined,
                                                    VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping_ = {},
                                                    VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags_ = {},
@@ -106819,7 +121559,7 @@
     }
 
     VideoFormatPropertiesKHR & operator=( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoFormatPropertiesKHR & operator=( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -106827,20 +121567,20 @@
       return *this;
     }
 
-    explicit operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoFormatPropertiesKHR *>( this );
     }
 
-    explicit operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoFormatPropertiesKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                void * const &,
                VULKAN_HPP_NAMESPACE::Format const &,
@@ -106849,32 +121589,32 @@
                VULKAN_HPP_NAMESPACE::ImageType const &,
                VULKAN_HPP_NAMESPACE::ImageTiling const &,
                VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoFormatPropertiesKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( componentMapping == rhs.componentMapping ) &&
              ( imageCreateFlags == rhs.imageCreateFlags ) && ( imageType == rhs.imageType ) && ( imageTiling == rhs.imageTiling ) &&
              ( imageUsageFlags == rhs.imageUsageFlags );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType    sType            = StructureType::eVideoFormatPropertiesKHR;
@@ -106892,159 +121632,123 @@
   {
     using Type = VideoFormatPropertiesKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  struct VideoProfileInfoKHR
+  struct VideoInlineQueryInfoKHR
   {
-    using NativeType = VkVideoProfileInfoKHR;
+    using NativeType = VkVideoInlineQueryInfoKHR;
 
     static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoProfileInfoKHR;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoInlineQueryInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR(
-      VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone,
-      VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_   = {},
-      VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_        = {},
-      VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_      = {},
-      const void *                                         pNext_               = nullptr ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR VideoInlineQueryInfoKHR( VULKAN_HPP_NAMESPACE::QueryPool queryPool_  = {},
+                                                  uint32_t                        firstQuery_ = {},
+                                                  uint32_t                        queryCount_ = {},
+                                                  const void *                    pNext_      = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
-      , videoCodecOperation( videoCodecOperation_ )
-      , chromaSubsampling( chromaSubsampling_ )
-      , lumaBitDepth( lumaBitDepth_ )
-      , chromaBitDepth( chromaBitDepth_ )
+      , queryPool( queryPool_ )
+      , firstQuery( firstQuery_ )
+      , queryCount( queryCount_ )
     {
     }
 
-    VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+    VULKAN_HPP_CONSTEXPR VideoInlineQueryInfoKHR( VideoInlineQueryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
 
-    VideoProfileInfoKHR( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoProfileInfoKHR( *reinterpret_cast<VideoProfileInfoKHR const *>( &rhs ) )
+    VideoInlineQueryInfoKHR( VkVideoInlineQueryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+      : VideoInlineQueryInfoKHR( *reinterpret_cast<VideoInlineQueryInfoKHR const *>( &rhs ) )
     {
     }
 
-    VideoProfileInfoKHR & operator=( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+    VideoInlineQueryInfoKHR & operator=( VideoInlineQueryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
-    VideoProfileInfoKHR & operator=( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+    VideoInlineQueryInfoKHR & operator=( VkVideoInlineQueryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const *>( &rhs );
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR const *>( &rhs );
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 VideoInlineQueryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
-                            setVideoCodecOperation( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoInlineQueryInfoKHR & setQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool_ ) VULKAN_HPP_NOEXCEPT
     {
-      videoCodecOperation = videoCodecOperation_;
+      queryPool = queryPool_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
-                            setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoInlineQueryInfoKHR & setFirstQuery( uint32_t firstQuery_ ) VULKAN_HPP_NOEXCEPT
     {
-      chromaSubsampling = chromaSubsampling_;
-      return *this;
-    }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT
-    {
-      lumaBitDepth = lumaBitDepth_;
+      firstQuery = firstQuery_;
       return *this;
     }
 
-    VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT
+    VULKAN_HPP_CONSTEXPR_14 VideoInlineQueryInfoKHR & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
     {
-      chromaBitDepth = chromaBitDepth_;
+      queryCount = queryCount_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    operator VkVideoProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoInlineQueryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<const VkVideoProfileInfoKHR *>( this );
+      return *reinterpret_cast<const VkVideoInlineQueryInfoKHR *>( this );
     }
 
-    operator VkVideoProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoInlineQueryInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
-      return *reinterpret_cast<VkVideoProfileInfoKHR *>( this );
+      return *reinterpret_cast<VkVideoInlineQueryInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR const &,
-               VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR const &,
-               VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &,
-               VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth );
-    }
-#  endif
-
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               uint32_t const &,
-               VULKAN_HPP_NAMESPACE::MemoryRequirements2 * const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, memoryBindIndex, pMemoryRequirements );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( VideoProfileInfoKHR const & ) const = default;
 #  else
-    bool operator==( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueryPool const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+      return std::tie( sType, pNext, queryPool, firstQuery, queryCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( VideoInlineQueryInfoKHR const & ) const = default;
+#else
+    bool operator==( VideoInlineQueryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperation == rhs.videoCodecOperation ) &&
-             ( chromaSubsampling == rhs.chromaSubsampling ) && ( lumaBitDepth == rhs.lumaBitDepth ) && ( chromaBitDepth == rhs.chromaBitDepth );
-#    endif
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queryPool == rhs.queryPool ) && ( firstQuery == rhs.firstQuery ) &&
+             ( queryCount == rhs.queryCount );
+#  endif
     }
 
-    bool operator!=( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool operator!=( VideoInlineQueryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
-    VULKAN_HPP_NAMESPACE::StructureType                  sType               = StructureType::eVideoProfileInfoKHR;
-    const void *                                         pNext               = {};
-    VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone;
-    VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling   = {};
-    VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth        = {};
-    VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth      = {};
+    VULKAN_HPP_NAMESPACE::StructureType sType      = StructureType::eVideoInlineQueryInfoKHR;
+    const void *                        pNext      = {};
+    VULKAN_HPP_NAMESPACE::QueryPool     queryPool  = {};
+    uint32_t                            firstQuery = {};
+    uint32_t                            queryCount = {};
   };
 
   template <>
-  struct CppType<StructureType, StructureType::eVideoProfileInfoKHR>
+  struct CppType<StructureType, StructureType::eVideoInlineQueryInfoKHR>
   {
-    using Type = VideoProfileInfoKHR;
+    using Type = VideoInlineQueryInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoProfileListInfoKHR
   {
     using NativeType = VkVideoProfileListInfoKHR;
@@ -107052,7 +121756,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoProfileListInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( uint32_t                                          profileCount_ = {},
                                                   const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_    = {},
                                                   const void *                                      pNext_        = nullptr ) VULKAN_HPP_NOEXCEPT
@@ -107069,16 +121773,16 @@
     {
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoProfileListInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_,
                              const void *                                                                                           pNext_ = nullptr )
       : pNext( pNext_ ), profileCount( static_cast<uint32_t>( profiles_.size() ) ), pProfiles( profiles_.data() )
     {
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VideoProfileListInfoKHR & operator=( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoProfileListInfoKHR & operator=( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -107086,7 +121790,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -107098,7 +121802,6 @@
       profileCount = profileCount_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPProfiles( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ ) VULKAN_HPP_NOEXCEPT
     {
@@ -107106,7 +121809,7 @@
       return *this;
     }
 
-#    if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
     VideoProfileListInfoKHR &
       setProfiles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_ ) VULKAN_HPP_NOEXCEPT
     {
@@ -107114,8 +121817,8 @@
       pProfiles    = profiles_.data();
       return *this;
     }
-#    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoProfileListInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
@@ -107127,49 +121830,35 @@
       return *reinterpret_cast<VkVideoProfileListInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, profileCount, pProfiles );
     }
-#  endif
+#endif
 
-#  if !defined( __GNUC__ ) || ( 70500 < GCC_VERSION )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#    else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               void * const &,
-               VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR const &>
-#    endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, videoCodecOperations );
-    }
-#  endif
-
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoProfileListInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( profileCount == rhs.profileCount ) && ( pProfiles == rhs.pProfiles );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType               sType        = StructureType::eVideoProfileListInfoKHR;
@@ -107183,9 +121872,7 @@
   {
     using Type = VideoProfileListInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoSessionCreateInfoKHR
   {
     using NativeType = VkVideoSessionCreateInfoKHR;
@@ -107193,7 +121880,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoSessionCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( uint32_t                                          queueFamilyIndex_ = {},
                                                        VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR  flags_            = {},
                                                        const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_    = {},
@@ -107225,7 +121912,7 @@
     }
 
     VideoSessionCreateInfoKHR & operator=( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoSessionCreateInfoKHR & operator=( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -107233,7 +121920,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -107287,30 +121974,29 @@
       maxActiveReferencePictures = maxActiveReferencePictures_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR &
-                            setPStdHeaderVersion( const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ ) VULKAN_HPP_NOEXCEPT
+      setPStdHeaderVersion( const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ ) VULKAN_HPP_NOEXCEPT
     {
       pStdHeaderVersion = pStdHeaderVersion_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
     operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoSessionCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                uint32_t const &,
@@ -107322,7 +122008,7 @@
                uint32_t const &,
                uint32_t const &,
                const VULKAN_HPP_NAMESPACE::ExtensionProperties * const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType,
@@ -107337,28 +122023,28 @@
                        maxActiveReferencePictures,
                        pStdHeaderVersion );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionCreateInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) && ( flags == rhs.flags ) &&
              ( pVideoProfile == rhs.pVideoProfile ) && ( pictureFormat == rhs.pictureFormat ) && ( maxCodedExtent == rhs.maxCodedExtent ) &&
              ( referencePictureFormat == rhs.referencePictureFormat ) && ( maxDpbSlots == rhs.maxDpbSlots ) &&
              ( maxActiveReferencePictures == rhs.maxActiveReferencePictures ) && ( pStdHeaderVersion == rhs.pStdHeaderVersion );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType               sType                      = StructureType::eVideoSessionCreateInfoKHR;
@@ -107379,9 +122065,7 @@
   {
     using Type = VideoSessionCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoSessionMemoryRequirementsKHR
   {
     using NativeType = VkVideoSessionMemoryRequirementsKHR;
@@ -107389,7 +122073,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoSessionMemoryRequirementsKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( uint32_t                                 memoryBindIndex_    = {},
                                                             VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {},
                                                             void *                                   pNext_              = nullptr ) VULKAN_HPP_NOEXCEPT
@@ -107407,7 +122091,7 @@
     }
 
     VideoSessionMemoryRequirementsKHR & operator=( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoSessionMemoryRequirementsKHR & operator=( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -107425,35 +122109,35 @@
       return *reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, memoryBindIndex, memoryRequirements );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionMemoryRequirementsKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memoryRequirements == rhs.memoryRequirements );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType      sType              = StructureType::eVideoSessionMemoryRequirementsKHR;
@@ -107467,9 +122151,7 @@
   {
     using Type = VideoSessionMemoryRequirementsKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoSessionParametersCreateInfoKHR
   {
     using NativeType = VkVideoSessionParametersCreateInfoKHR;
@@ -107477,7 +122159,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoSessionParametersCreateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_                          = {},
                                                               VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR            videoSessionParametersTemplate_ = {},
                                                               VULKAN_HPP_NAMESPACE::VideoSessionKHR                      videoSession_                   = {},
@@ -107497,7 +122179,7 @@
     }
 
     VideoSessionParametersCreateInfoKHR & operator=( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoSessionParametersCreateInfoKHR & operator=( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -107505,7 +122187,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -107513,7 +122195,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR &
-                            setFlags( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
+      setFlags( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
     {
       flags = flags_;
       return *this;
@@ -107531,52 +122213,52 @@
       videoSession = videoSession_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoSessionParametersCreateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
                const void * const &,
                VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR const &,
                VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
                VULKAN_HPP_NAMESPACE::VideoSessionKHR const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, flags, videoSessionParametersTemplate, videoSession );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionParametersCreateInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
              ( videoSessionParametersTemplate == rhs.videoSessionParametersTemplate ) && ( videoSession == rhs.videoSession );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType                        sType                          = StructureType::eVideoSessionParametersCreateInfoKHR;
@@ -107591,9 +122273,7 @@
   {
     using Type = VideoSessionParametersCreateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   struct VideoSessionParametersUpdateInfoKHR
   {
     using NativeType = VkVideoSessionParametersUpdateInfoKHR;
@@ -107601,7 +122281,7 @@
     static const bool                                  allowDuplicate = false;
     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eVideoSessionParametersUpdateInfoKHR;
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
     VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( uint32_t updateSequenceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
       : pNext( pNext_ )
       , updateSequenceCount( updateSequenceCount_ )
@@ -107616,7 +122296,7 @@
     }
 
     VideoSessionParametersUpdateInfoKHR & operator=( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#  endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
 
     VideoSessionParametersUpdateInfoKHR & operator=( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
     {
@@ -107624,7 +122304,7 @@
       return *this;
     }
 
-#  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
     {
       pNext = pNext_;
@@ -107636,47 +122316,47 @@
       updateSequenceCount = updateSequenceCount_;
       return *this;
     }
-#  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( this );
     }
 
-    explicit operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkVideoSessionParametersUpdateInfoKHR *>( this );
     }
 
-#  if defined( VULKAN_HPP_USE_REFLECT )
-#    if 14 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
     auto
-#    else
+#  else
     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
-#    endif
+#  endif
       reflect() const VULKAN_HPP_NOEXCEPT
     {
       return std::tie( sType, pNext, updateSequenceCount );
     }
-#  endif
+#endif
 
-#  if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( VideoSessionParametersUpdateInfoKHR const & ) const = default;
-#  else
+#else
     bool operator==( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
-#    if defined( VULKAN_HPP_USE_REFLECT )
+#  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
-#    else
+#  else
       return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( updateSequenceCount == rhs.updateSequenceCount );
-#    endif
+#  endif
     }
 
     bool operator!=( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
       return !operator==( rhs );
     }
-#  endif
+#endif
 
   public:
     VULKAN_HPP_NAMESPACE::StructureType sType               = StructureType::eVideoSessionParametersUpdateInfoKHR;
@@ -107689,7 +122369,6 @@
   {
     using Type = VideoSessionParametersUpdateInfoKHR;
   };
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
   struct WaylandSurfaceCreateInfoKHR
@@ -107753,12 +122432,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR *>( this );
     }
@@ -107920,7 +122599,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
-                            setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
+      setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
     {
       pAcquireSyncs = pAcquireSyncs_;
       return *this;
@@ -107975,7 +122654,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
-                            setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
+      setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
     {
       pReleaseSyncs = pReleaseSyncs_;
       return *this;
@@ -108008,12 +122687,12 @@
 #    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
     }
 
-    explicit operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
     }
@@ -108187,7 +122866,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
-                            setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
+      setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
     {
       pAcquireSyncs = pAcquireSyncs_;
       return *this;
@@ -108220,7 +122899,7 @@
 #    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 
     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
-                            setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
+      setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
     {
       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
       return *this;
@@ -108243,7 +122922,7 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
-                            setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
+      setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
     {
       pReleaseSyncs = pReleaseSyncs_;
       return *this;
@@ -108276,12 +122955,12 @@
 #    endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #  endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
     }
 
-    explicit operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
+    operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
     }
@@ -108407,12 +123086,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR *>( this );
     }
@@ -108466,237 +123145,6 @@
   };
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
 
-  struct WriteDescriptorSet
-  {
-    using NativeType = VkWriteDescriptorSet;
-
-    static const bool                                  allowDuplicate = false;
-    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eWriteDescriptorSet;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet               dstSet_          = {},
-                                             uint32_t                                          dstBinding_      = {},
-                                             uint32_t                                          dstArrayElement_ = {},
-                                             uint32_t                                          descriptorCount_ = {},
-                                             VULKAN_HPP_NAMESPACE::DescriptorType              descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
-                                             const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_     = {},
-                                             const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_   = {},
-                                             const VULKAN_HPP_NAMESPACE::BufferView *           pTexelBufferView_ = {},
-                                             const void *                                       pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
-      : pNext( pNext_ )
-      , dstSet( dstSet_ )
-      , dstBinding( dstBinding_ )
-      , dstArrayElement( dstArrayElement_ )
-      , descriptorCount( descriptorCount_ )
-      , descriptorType( descriptorType_ )
-      , pImageInfo( pImageInfo_ )
-      , pBufferInfo( pBufferInfo_ )
-      , pTexelBufferView( pTexelBufferView_ )
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) ) {}
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet                                                                     dstSet_,
-                        uint32_t                                                                                                dstBinding_,
-                        uint32_t                                                                                                dstArrayElement_,
-                        VULKAN_HPP_NAMESPACE::DescriptorType                                                                    descriptorType_,
-                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const &  imageInfo_,
-                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_      = {},
-                        VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const &           texelBufferView_ = {},
-                        const void *                                                                                            pNext_           = nullptr )
-      : pNext( pNext_ )
-      , dstSet( dstSet_ )
-      , dstBinding( dstBinding_ )
-      , dstArrayElement( dstArrayElement_ )
-      , descriptorCount( static_cast<uint32_t>( !imageInfo_.empty()    ? imageInfo_.size()
-                                                : !bufferInfo_.empty() ? bufferInfo_.size()
-                                                                       : texelBufferView_.size() ) )
-      , descriptorType( descriptorType_ )
-      , pImageInfo( imageInfo_.data() )
-      , pBufferInfo( bufferInfo_.data() )
-      , pTexelBufferView( texelBufferView_.data() )
-    {
-#    ifdef VULKAN_HPP_NO_EXCEPTIONS
-      VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) <= 1 );
-#    else
-      if ( 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) )
-      {
-        throw LogicError( VULKAN_HPP_NAMESPACE_STRING
-                          "::WriteDescriptorSet::WriteDescriptorSet: 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() )" );
-      }
-#    endif /*VULKAN_HPP_NO_EXCEPTIONS*/
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pNext = pNext_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
-    {
-      dstSet = dstSet_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
-    {
-      dstBinding = dstBinding_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
-    {
-      dstArrayElement = dstArrayElement_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
-    {
-      descriptorCount = descriptorCount_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
-    {
-      descriptorType = descriptorType_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pImageInfo = pImageInfo_;
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    WriteDescriptorSet &
-      setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
-    {
-      descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
-      pImageInfo      = imageInfo_.data();
-      return *this;
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pBufferInfo = pBufferInfo_;
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    WriteDescriptorSet &
-      setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
-    {
-      descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
-      pBufferInfo     = bufferInfo_.data();
-      return *this;
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
-    VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
-    {
-      pTexelBufferView = pTexelBufferView_;
-      return *this;
-    }
-
-#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
-    WriteDescriptorSet &
-      setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
-    {
-      descriptorCount  = static_cast<uint32_t>( texelBufferView_.size() );
-      pTexelBufferView = texelBufferView_.data();
-      return *this;
-    }
-#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    explicit operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkWriteDescriptorSet *>( this );
-    }
-
-    explicit operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkWriteDescriptorSet *>( this );
-    }
-
-#if defined( VULKAN_HPP_USE_REFLECT )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
-               const void * const &,
-               VULKAN_HPP_NAMESPACE::DescriptorSet const &,
-               uint32_t const &,
-               uint32_t const &,
-               uint32_t const &,
-               VULKAN_HPP_NAMESPACE::DescriptorType const &,
-               const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * const &,
-               const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * const &,
-               const VULKAN_HPP_NAMESPACE::BufferView * const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( sType, pNext, dstSet, dstBinding, dstArrayElement, descriptorCount, descriptorType, pImageInfo, pBufferInfo, pTexelBufferView );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( WriteDescriptorSet const & ) const = default;
-#else
-    bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
-             ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) &&
-             ( pImageInfo == rhs.pImageInfo ) && ( pBufferInfo == rhs.pBufferInfo ) && ( pTexelBufferView == rhs.pTexelBufferView );
-#  endif
-    }
-
-    bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::StructureType                sType            = StructureType::eWriteDescriptorSet;
-    const void *                                       pNext            = {};
-    VULKAN_HPP_NAMESPACE::DescriptorSet                dstSet           = {};
-    uint32_t                                           dstBinding       = {};
-    uint32_t                                           dstArrayElement  = {};
-    uint32_t                                           descriptorCount  = {};
-    VULKAN_HPP_NAMESPACE::DescriptorType               descriptorType   = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
-    const VULKAN_HPP_NAMESPACE::DescriptorImageInfo *  pImageInfo       = {};
-    const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo      = {};
-    const VULKAN_HPP_NAMESPACE::BufferView *           pTexelBufferView = {};
-  };
-
-  template <>
-  struct CppType<StructureType, StructureType::eWriteDescriptorSet>
-  {
-    using Type = WriteDescriptorSet;
-  };
-
   struct WriteDescriptorSetAccelerationStructureKHR
   {
     using NativeType = VkWriteDescriptorSetAccelerationStructureKHR;
@@ -108749,14 +123197,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
-                            setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureCount = accelerationStructureCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
-                            setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
+      setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
     {
       pAccelerationStructures = pAccelerationStructures_;
       return *this;
@@ -108773,12 +123221,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR *>( this );
     }
 
-    explicit operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR *>( this );
     }
@@ -108880,14 +123328,14 @@
     }
 
     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
-                            setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
+      setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
     {
       accelerationStructureCount = accelerationStructureCount_;
       return *this;
     }
 
     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
-                            setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
+      setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
     {
       pAccelerationStructures = pAccelerationStructures_;
       return *this;
@@ -108904,12 +123352,12 @@
 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
 #endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
+    operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV *>( this );
     }
 
-    explicit operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
+    operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV *>( this );
     }
@@ -109081,6 +123529,7 @@
   {
     using Type = WriteDescriptorSetInlineUniformBlock;
   };
+
   using WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
 
 #if defined( VK_USE_PLATFORM_XCB_KHR )
@@ -109145,12 +123594,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR *>( this );
     }
@@ -109277,12 +123726,12 @@
     }
 #  endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
 
-    explicit operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+    operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( this );
     }
 
-    explicit operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
+    operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
     {
       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR *>( this );
     }
diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp
index 212d080..e1ab55e 100644
--- a/include/vulkan/vulkan_to_string.hpp
+++ b/include/vulkan/vulkan_to_string.hpp
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 The Khronos Group Inc.
+// Copyright 2015-2024 The Khronos Group Inc.
 //
 // SPDX-License-Identifier: Apache-2.0 OR MIT
 //
@@ -18,6 +18,7 @@
 
 namespace VULKAN_HPP_NAMESPACE
 {
+
   //==========================
   //=== BITMASKs to_string ===
   //==========================
@@ -76,12 +77,10 @@
       result += "CositedChromaSamples | ";
     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax )
       result += "SampledImageFilterMinmax | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR )
       result += "VideoDecodeOutputKHR | ";
     if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR )
       result += "VideoDecodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR )
       result += "AccelerationStructureVertexBufferKHR | ";
     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicEXT )
@@ -90,12 +89,10 @@
       result += "FragmentDensityMapEXT | ";
     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
       result += "FragmentShadingRateAttachmentKHR | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR )
       result += "VideoEncodeInputKHR | ";
     if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR )
       result += "VideoEncodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -144,6 +141,8 @@
       result += "2DViewCompatibleEXT | ";
     if ( value & ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM )
       result += "FragmentDensityMapOffsetQCOM | ";
+    if ( value & ImageCreateFlagBits::eVideoProfileIndependentKHR )
+      result += "VideoProfileIndependentKHR | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -170,26 +169,24 @@
       result += "TransientAttachment | ";
     if ( value & ImageUsageFlagBits::eInputAttachment )
       result += "InputAttachment | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR )
       result += "VideoDecodeDstKHR | ";
     if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR )
       result += "VideoDecodeSrcKHR | ";
     if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR )
       result += "VideoDecodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT )
       result += "FragmentDensityMapEXT | ";
     if ( value & ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
       result += "FragmentShadingRateAttachmentKHR | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & ImageUsageFlagBits::eHostTransferEXT )
+      result += "HostTransferEXT | ";
     if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR )
       result += "VideoEncodeDstKHR | ";
     if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR )
       result += "VideoEncodeSrcKHR | ";
     if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR )
       result += "VideoEncodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & ImageUsageFlagBits::eAttachmentFeedbackLoopEXT )
       result += "AttachmentFeedbackLoopEXT | ";
     if ( value & ImageUsageFlagBits::eInvocationMaskHUAWEI )
@@ -272,12 +269,10 @@
       result += "SparseBinding | ";
     if ( value & QueueFlagBits::eProtected )
       result += "Protected | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & QueueFlagBits::eVideoDecodeKHR )
       result += "VideoDecodeKHR | ";
     if ( value & QueueFlagBits::eVideoEncodeKHR )
       result += "VideoEncodeKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & QueueFlagBits::eOpticalFlowNV )
       result += "OpticalFlowNV | ";
 
@@ -328,7 +323,7 @@
   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & PipelineStageFlagBits::eTopOfPipe )
@@ -395,7 +390,7 @@
   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & ImageAspectFlagBits::eColor )
@@ -513,6 +508,8 @@
       result += "TaskShaderInvocationsEXT | ";
     if ( value & QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT )
       result += "MeshShaderInvocationsEXT | ";
+    if ( value & QueryPipelineStatisticFlagBits::eClusterCullingShaderInvocationsHUAWEI )
+      result += "ClusterCullingShaderInvocationsHUAWEI | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -536,10 +533,8 @@
       result += "WithAvailability | ";
     if ( value & QueryResultFlagBits::ePartial )
       result += "Partial | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & QueryResultFlagBits::eWithStatusKHR )
       result += "WithStatusKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -562,6 +557,8 @@
       result += "DeviceAddressCaptureReplay | ";
     if ( value & BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT )
       result += "DescriptorBufferCaptureReplayEXT | ";
+    if ( value & BufferCreateFlagBits::eVideoProfileIndependentKHR )
+      result += "VideoProfileIndependentKHR | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -592,30 +589,30 @@
       result += "IndirectBuffer | ";
     if ( value & BufferUsageFlagBits::eShaderDeviceAddress )
       result += "ShaderDeviceAddress | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR )
       result += "VideoDecodeSrcKHR | ";
     if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR )
       result += "VideoDecodeDstKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT )
       result += "TransformFeedbackBufferEXT | ";
     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT )
       result += "TransformFeedbackCounterBufferEXT | ";
     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT )
       result += "ConditionalRenderingEXT | ";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & BufferUsageFlagBits::eExecutionGraphScratchAMDX )
+      result += "ExecutionGraphScratchAMDX | ";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR )
       result += "AccelerationStructureBuildInputReadOnlyKHR | ";
     if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR )
       result += "AccelerationStructureStorageKHR | ";
     if ( value & BufferUsageFlagBits::eShaderBindingTableKHR )
       result += "ShaderBindingTableKHR | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR )
       result += "VideoEncodeDstKHR | ";
     if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR )
       result += "VideoEncodeSrcKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & BufferUsageFlagBits::eSamplerDescriptorBufferEXT )
       result += "SamplerDescriptorBufferEXT | ";
     if ( value & BufferUsageFlagBits::eResourceDescriptorBufferEXT )
@@ -689,7 +686,7 @@
   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & CullModeFlagBits::eFront )
@@ -774,6 +771,10 @@
       result += "DepthStencilAttachmentFeedbackLoopEXT | ";
     if ( value & PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT )
       result += "RayTracingOpacityMicromapEXT | ";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & PipelineCreateFlagBits::eRayTracingDisplacementMicromapNV )
+      result += "RayTracingDisplacementMicromapNV | ";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & PipelineCreateFlagBits::eNoProtectedAccessEXT )
       result += "NoProtectedAccessEXT | ";
     if ( value & PipelineCreateFlagBits::eProtectedAccessOnlyEXT )
@@ -893,6 +894,8 @@
       result += "MeshEXT | ";
     if ( value & ShaderStageFlagBits::eSubpassShadingHUAWEI )
       result += "SubpassShadingHUAWEI | ";
+    if ( value & ShaderStageFlagBits::eClusterCullingHUAWEI )
+      result += "ClusterCullingHUAWEI | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -929,6 +932,10 @@
       result += "UpdateAfterBind | ";
     if ( value & DescriptorPoolCreateFlagBits::eHostOnlyEXT )
       result += "HostOnlyEXT | ";
+    if ( value & DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV )
+      result += "AllowOverallocationSetsNV | ";
+    if ( value & DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV )
+      result += "AllowOverallocationPoolsNV | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -952,8 +959,12 @@
       result += "DescriptorBufferEXT | ";
     if ( value & DescriptorSetLayoutCreateFlagBits::eEmbeddedImmutableSamplersEXT )
       result += "EmbeddedImmutableSamplersEXT | ";
+    if ( value & DescriptorSetLayoutCreateFlagBits::eIndirectBindableNV )
+      result += "IndirectBindableNV | ";
     if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT )
       result += "HostOnlyPoolEXT | ";
+    if ( value & DescriptorSetLayoutCreateFlagBits::ePerStageNV )
+      result += "PerStageNV | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -961,7 +972,7 @@
   VULKAN_HPP_INLINE std::string to_string( AccessFlags value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & AccessFlagBits::eIndirectCommandRead )
@@ -1296,6 +1307,10 @@
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
     if ( value & ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
       result += "RdmaAddressNV | ";
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+    if ( value & ExternalMemoryHandleTypeFlagBits::eScreenBufferQNX )
+      result += "ScreenBufferQNX | ";
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -1433,7 +1448,7 @@
   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & ResolveModeFlagBits::eSampleZero )
@@ -1444,6 +1459,10 @@
       result += "Min | ";
     if ( value & ResolveModeFlagBits::eMax )
       result += "Max | ";
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+    if ( value & ResolveModeFlagBits::eExternalFormatDownsampleANDROID )
+      result += "ExternalFormatDownsampleANDROID | ";
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -1510,7 +1529,7 @@
   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2 value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & PipelineStageFlagBits2::eTopOfPipe )
@@ -1561,12 +1580,10 @@
       result += "VertexAttributeInput | ";
     if ( value & PipelineStageFlagBits2::ePreRasterizationShaders )
       result += "PreRasterizationShaders | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & PipelineStageFlagBits2::eVideoDecodeKHR )
       result += "VideoDecodeKHR | ";
     if ( value & PipelineStageFlagBits2::eVideoEncodeKHR )
       result += "VideoEncodeKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & PipelineStageFlagBits2::eTransformFeedbackEXT )
       result += "TransformFeedbackEXT | ";
     if ( value & PipelineStageFlagBits2::eConditionalRenderingEXT )
@@ -1585,14 +1602,16 @@
       result += "TaskShaderEXT | ";
     if ( value & PipelineStageFlagBits2::eMeshShaderEXT )
       result += "MeshShaderEXT | ";
-    if ( value & PipelineStageFlagBits2::eSubpassShadingHUAWEI )
-      result += "SubpassShadingHUAWEI | ";
+    if ( value & PipelineStageFlagBits2::eSubpassShaderHUAWEI )
+      result += "SubpassShaderHUAWEI | ";
     if ( value & PipelineStageFlagBits2::eInvocationMaskHUAWEI )
       result += "InvocationMaskHUAWEI | ";
     if ( value & PipelineStageFlagBits2::eAccelerationStructureCopyKHR )
       result += "AccelerationStructureCopyKHR | ";
     if ( value & PipelineStageFlagBits2::eMicromapBuildEXT )
       result += "MicromapBuildEXT | ";
+    if ( value & PipelineStageFlagBits2::eClusterCullingShaderHUAWEI )
+      result += "ClusterCullingShaderHUAWEI | ";
     if ( value & PipelineStageFlagBits2::eOpticalFlowNV )
       result += "OpticalFlowNV | ";
 
@@ -1602,7 +1621,7 @@
   VULKAN_HPP_INLINE std::string to_string( AccessFlags2 value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & AccessFlagBits2::eIndirectCommandRead )
@@ -1645,7 +1664,6 @@
       result += "ShaderStorageRead | ";
     if ( value & AccessFlagBits2::eShaderStorageWrite )
       result += "ShaderStorageWrite | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & AccessFlagBits2::eVideoDecodeReadKHR )
       result += "VideoDecodeReadKHR | ";
     if ( value & AccessFlagBits2::eVideoDecodeWriteKHR )
@@ -1654,7 +1672,6 @@
       result += "VideoEncodeReadKHR | ";
     if ( value & AccessFlagBits2::eVideoEncodeWriteKHR )
       result += "VideoEncodeWriteKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & AccessFlagBits2::eTransformFeedbackWriteEXT )
       result += "TransformFeedbackWriteEXT | ";
     if ( value & AccessFlagBits2::eTransformFeedbackCounterReadEXT )
@@ -1719,6 +1736,8 @@
       result += "Suspending | ";
     if ( value & RenderingFlagBits::eResuming )
       result += "Resuming | ";
+    if ( value & RenderingFlagBits::eContentsInlineEXT )
+      result += "ContentsInlineEXT | ";
     if ( value & RenderingFlagBits::eEnableLegacyDitheringEXT )
       result += "EnableLegacyDitheringEXT | ";
 
@@ -1785,24 +1804,22 @@
       result += "StorageWriteWithoutFormat | ";
     if ( value & FormatFeatureFlagBits2::eSampledImageDepthComparison )
       result += "SampledImageDepthComparison | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & FormatFeatureFlagBits2::eVideoDecodeOutputKHR )
       result += "VideoDecodeOutputKHR | ";
     if ( value & FormatFeatureFlagBits2::eVideoDecodeDpbKHR )
       result += "VideoDecodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR )
       result += "AccelerationStructureVertexBufferKHR | ";
     if ( value & FormatFeatureFlagBits2::eFragmentDensityMapEXT )
       result += "FragmentDensityMapEXT | ";
     if ( value & FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR )
       result += "FragmentShadingRateAttachmentKHR | ";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & FormatFeatureFlagBits2::eHostImageTransferEXT )
+      result += "HostImageTransferEXT | ";
     if ( value & FormatFeatureFlagBits2::eVideoEncodeInputKHR )
       result += "VideoEncodeInputKHR | ";
     if ( value & FormatFeatureFlagBits2::eVideoEncodeDpbKHR )
       result += "VideoEncodeDpbKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
     if ( value & FormatFeatureFlagBits2::eLinearColorAttachmentNV )
       result += "LinearColorAttachmentNV | ";
     if ( value & FormatFeatureFlagBits2::eWeightImageQCOM )
@@ -2006,25 +2023,22 @@
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-    if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT )
-      result += "EncodeH264EXT | ";
-    if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH265EXT )
-      result += "EncodeH265EXT | ";
-    if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT )
-      result += "DecodeH264EXT | ";
-    if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
-      result += "DecodeH265EXT | ";
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264 )
+      result += "EncodeH264 | ";
+    if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH265 )
+      result += "EncodeH265 | ";
+    if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264 )
+      result += "DecodeH264 | ";
+    if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265 )
+      result += "DecodeH265 | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -2032,7 +2046,7 @@
   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Invalid";
 
     std::string result;
     if ( value & VideoChromaSubsamplingFlagBitsKHR::eMonochrome )
@@ -2050,7 +2064,7 @@
   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Invalid";
 
     std::string result;
     if ( value & VideoComponentBitDepthFlagBitsKHR::e8 )
@@ -2085,6 +2099,10 @@
     std::string result;
     if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent )
       result += "ProtectedContent | ";
+    if ( value & VideoSessionCreateFlagBitsKHR::eAllowEncodeParameterOptimizations )
+      result += "AllowEncodeParameterOptimizations | ";
+    if ( value & VideoSessionCreateFlagBitsKHR::eInlineQueries )
+      result += "InlineQueries | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -2112,18 +2130,14 @@
     std::string result;
     if ( value & VideoCodingControlFlagBitsKHR::eReset )
       result += "Reset | ";
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
     if ( value & VideoCodingControlFlagBitsKHR::eEncodeRateControl )
       result += "EncodeRateControl | ";
-    if ( value & VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer )
-      result += "EncodeRateControlLayer | ";
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    if ( value & VideoCodingControlFlagBitsKHR::eEncodeQualityLevel )
+      result += "EncodeQualityLevel | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoDecodeCapabilityFlagsKHR value )
@@ -2143,7 +2157,7 @@
   VULKAN_HPP_INLINE std::string to_string( VideoDecodeUsageFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Default";
 
     std::string result;
     if ( value & VideoDecodeUsageFlagBitsKHR::eTranscoding )
@@ -2160,7 +2174,6 @@
   {
     return "{}";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_EXT_transform_feedback ===
 
@@ -2169,251 +2182,259 @@
     return "{}";
   }
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h264 ===
+  //=== VK_KHR_video_encode_h264 ===
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceEnabled )
-      result += "Direct8X8InferenceEnabled | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceDisabled )
-      result += "Direct8X8InferenceDisabled | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSeparateColourPlane )
-      result += "SeparateColourPlane | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eQpprimeYZeroTransformBypass )
-      result += "QpprimeYZeroTransformBypass | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eScalingLists )
-      result += "ScalingLists | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eHrdCompliance )
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eHrdCompliance )
       result += "HrdCompliance | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset )
-      result += "ChromaQpOffset | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset )
-      result += "SecondChromaQpOffset | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::ePicInitQpMinus26 )
-      result += "PicInitQpMinus26 | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPred )
-      result += "WeightedPred | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredExplicit )
-      result += "WeightedBipredExplicit | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredImplicit )
-      result += "WeightedBipredImplicit | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPredNoTable )
-      result += "WeightedPredNoTable | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 )
-      result += "Transform8X8 | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCabac )
-      result += "Cabac | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCavlc )
-      result += "Cavlc | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
-      result += "DeblockingFilterDisabled | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
-      result += "DeblockingFilterEnabled | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial )
-      result += "DeblockingFilterPartial | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDisableDirectSpatialMvPred )
-      result += "DisableDirectSpatialMvPred | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
-      result += "MultipleSlicePerFrame | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSliceMbCount )
-      result += "SliceMbCount | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eRowUnalignedSlice )
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::ePredictionWeightTableGenerated )
+      result += "PredictionWeightTableGenerated | ";
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eRowUnalignedSlice )
       result += "RowUnalignedSlice | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDifferentSliceType )
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eDifferentSliceType )
       result += "DifferentSliceType | ";
-    if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL1List )
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL0List )
+      result += "BFrameInL0List | ";
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL1List )
       result += "BFrameInL1List | ";
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp )
+      result += "PerPictureTypeMinMaxQp | ";
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::ePerSliceConstantQp )
+      result += "PerSliceConstantQp | ";
+    if ( value & VideoEncodeH264CapabilityFlagBitsKHR::eGeneratePrefixNalu )
+      result += "GeneratePrefixNalu | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264StdFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH264InputModeFlagBitsEXT::eFrame )
-      result += "Frame | ";
-    if ( value & VideoEncodeH264InputModeFlagBitsEXT::eSlice )
-      result += "Slice | ";
-    if ( value & VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
-      result += "NonVcl | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eSeparateColorPlaneFlagSet )
+      result += "SeparateColorPlaneFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eQpprimeYZeroTransformBypassFlagSet )
+      result += "QpprimeYZeroTransformBypassFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eScalingMatrixPresentFlagSet )
+      result += "ScalingMatrixPresentFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eChromaQpIndexOffset )
+      result += "ChromaQpIndexOffset | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eSecondChromaQpIndexOffset )
+      result += "SecondChromaQpIndexOffset | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::ePicInitQpMinus26 )
+      result += "PicInitQpMinus26 | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eWeightedPredFlagSet )
+      result += "WeightedPredFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcExplicit )
+      result += "WeightedBipredIdcExplicit | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcImplicit )
+      result += "WeightedBipredIdcImplicit | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eTransform8X8ModeFlagSet )
+      result += "Transform8X8ModeFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDirectSpatialMvPredFlagUnset )
+      result += "DirectSpatialMvPredFlagUnset | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagUnset )
+      result += "EntropyCodingModeFlagUnset | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagSet )
+      result += "EntropyCodingModeFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDirect8X8InferenceFlagUnset )
+      result += "Direct8X8InferenceFlagUnset | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eConstrainedIntraPredFlagSet )
+      result += "ConstrainedIntraPredFlagSet | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterDisabled )
+      result += "DeblockingFilterDisabled | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterEnabled )
+      result += "DeblockingFilterEnabled | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterPartial )
+      result += "DeblockingFilterPartial | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eSliceQpDelta )
+      result += "SliceQpDelta | ";
+    if ( value & VideoEncodeH264StdFlagBitsKHR::eDifferentSliceQpDelta )
+      result += "DifferentSliceQpDelta | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264RateControlFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eFrame )
-      result += "Frame | ";
-    if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eSlice )
-      result += "Slice | ";
-    if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
-      result += "NonVcl | ";
+    if ( value & VideoEncodeH264RateControlFlagBitsKHR::eAttemptHrdCompliance )
+      result += "AttemptHrdCompliance | ";
+    if ( value & VideoEncodeH264RateControlFlagBitsKHR::eRegularGop )
+      result += "RegularGop | ";
+    if ( value & VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternFlat )
+      result += "ReferencePatternFlat | ";
+    if ( value & VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternDyadic )
+      result += "ReferencePatternDyadic | ";
+    if ( value & VideoEncodeH264RateControlFlagBitsKHR::eTemporalLayerPatternDyadic )
+      result += "TemporalLayerPatternDyadic | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h265 ===
+  //=== VK_KHR_video_encode_h265 ===
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSeparateColourPlane )
-      result += "SeparateColourPlane | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eScalingLists )
-      result += "ScalingLists | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSampleAdaptiveOffsetEnabled )
-      result += "SampleAdaptiveOffsetEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::ePcmEnable )
-      result += "PcmEnable | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSpsTemporalMvpEnabled )
-      result += "SpsTemporalMvpEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eHrdCompliance )
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eHrdCompliance )
       result += "HrdCompliance | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eInitQpMinus26 )
-      result += "InitQpMinus26 | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eLog2ParallelMergeLevelMinus2 )
-      result += "Log2ParallelMergeLevelMinus2 | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSignDataHidingEnabled )
-      result += "SignDataHidingEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipEnabled )
-      result += "TransformSkipEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipDisabled )
-      result += "TransformSkipDisabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::ePpsSliceChromaQpOffsetsPresent )
-      result += "PpsSliceChromaQpOffsetsPresent | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPred )
-      result += "WeightedPred | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBipred )
-      result += "WeightedBipred | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPredNoTable )
-      result += "WeightedPredNoTable | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eTransquantBypassEnabled )
-      result += "TransquantBypassEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eEntropyCodingSyncEnabled )
-      result += "EntropyCodingSyncEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterOverrideEnabled )
-      result += "DeblockingFilterOverrideEnabled | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerFrame )
-      result += "MultipleTilePerFrame | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerTile )
-      result += "MultipleSlicePerTile | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerSlice )
-      result += "MultipleTilePerSlice | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSliceSegmentCtbCount )
-      result += "SliceSegmentCtbCount | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eRowUnalignedSliceSegment )
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::ePredictionWeightTableGenerated )
+      result += "PredictionWeightTableGenerated | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eRowUnalignedSliceSegment )
       result += "RowUnalignedSliceSegment | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDependentSliceSegment )
-      result += "DependentSliceSegment | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDifferentSliceType )
-      result += "DifferentSliceType | ";
-    if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL1List )
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eDifferentSliceSegmentType )
+      result += "DifferentSliceSegmentType | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL0List )
+      result += "BFrameInL0List | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL1List )
       result += "BFrameInL1List | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp )
+      result += "PerPictureTypeMinMaxQp | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::ePerSliceSegmentConstantQp )
+      result += "PerSliceSegmentConstantQp | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eMultipleTilesPerSliceSegment )
+      result += "MultipleTilesPerSliceSegment | ";
+    if ( value & VideoEncodeH265CapabilityFlagBitsKHR::eMultipleSliceSegmentsPerTile )
+      result += "MultipleSliceSegmentsPerTile | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265StdFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH265InputModeFlagBitsEXT::eFrame )
-      result += "Frame | ";
-    if ( value & VideoEncodeH265InputModeFlagBitsEXT::eSliceSegment )
-      result += "SliceSegment | ";
-    if ( value & VideoEncodeH265InputModeFlagBitsEXT::eNonVcl )
-      result += "NonVcl | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eSeparateColorPlaneFlagSet )
+      result += "SeparateColorPlaneFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eSampleAdaptiveOffsetEnabledFlagSet )
+      result += "SampleAdaptiveOffsetEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eScalingListDataPresentFlagSet )
+      result += "ScalingListDataPresentFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::ePcmEnabledFlagSet )
+      result += "PcmEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eSpsTemporalMvpEnabledFlagSet )
+      result += "SpsTemporalMvpEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eInitQpMinus26 )
+      result += "InitQpMinus26 | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eWeightedPredFlagSet )
+      result += "WeightedPredFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eWeightedBipredFlagSet )
+      result += "WeightedBipredFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eLog2ParallelMergeLevelMinus2 )
+      result += "Log2ParallelMergeLevelMinus2 | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eSignDataHidingEnabledFlagSet )
+      result += "SignDataHidingEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagSet )
+      result += "TransformSkipEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagUnset )
+      result += "TransformSkipEnabledFlagUnset | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::ePpsSliceChromaQpOffsetsPresentFlagSet )
+      result += "PpsSliceChromaQpOffsetsPresentFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eTransquantBypassEnabledFlagSet )
+      result += "TransquantBypassEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eConstrainedIntraPredFlagSet )
+      result += "ConstrainedIntraPredFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eEntropyCodingSyncEnabledFlagSet )
+      result += "EntropyCodingSyncEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eDeblockingFilterOverrideEnabledFlagSet )
+      result += "DeblockingFilterOverrideEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentsEnabledFlagSet )
+      result += "DependentSliceSegmentsEnabledFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentFlagSet )
+      result += "DependentSliceSegmentFlagSet | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eSliceQpDelta )
+      result += "SliceQpDelta | ";
+    if ( value & VideoEncodeH265StdFlagBitsKHR::eDifferentSliceQpDelta )
+      result += "DifferentSliceQpDelta | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eFrame )
-      result += "Frame | ";
-    if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eSliceSegment )
-      result += "SliceSegment | ";
-    if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl )
-      result += "NonVcl | ";
-
-    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
-  }
-
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagsEXT value )
-  {
-    if ( !value )
-      return "{}";
-
-    std::string result;
-    if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e16 )
+    if ( value & VideoEncodeH265CtbSizeFlagBitsKHR::e16 )
       result += "16 | ";
-    if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e32 )
+    if ( value & VideoEncodeH265CtbSizeFlagBitsKHR::e32 )
       result += "32 | ";
-    if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e64 )
+    if ( value & VideoEncodeH265CtbSizeFlagBitsKHR::e64 )
       result += "64 | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265TransformBlockSizeFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265TransformBlockSizeFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsEXT::e4 )
+    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsKHR::e4 )
       result += "4 | ";
-    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsEXT::e8 )
+    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsKHR::e8 )
       result += "8 | ";
-    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsEXT::e16 )
+    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsKHR::e16 )
       result += "16 | ";
-    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsEXT::e32 )
+    if ( value & VideoEncodeH265TransformBlockSizeFlagBitsKHR::e32 )
       result += "32 | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h264 ===
-
-  VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265RateControlFlagsKHR value )
   {
     if ( !value )
       return "{}";
 
     std::string result;
-    if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines )
+    if ( value & VideoEncodeH265RateControlFlagBitsKHR::eAttemptHrdCompliance )
+      result += "AttemptHrdCompliance | ";
+    if ( value & VideoEncodeH265RateControlFlagBitsKHR::eRegularGop )
+      result += "RegularGop | ";
+    if ( value & VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternFlat )
+      result += "ReferencePatternFlat | ";
+    if ( value & VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternDyadic )
+      result += "ReferencePatternDyadic | ";
+    if ( value & VideoEncodeH265RateControlFlagBitsKHR::eTemporalSubLayerPatternDyadic )
+      result += "TemporalSubLayerPatternDyadic | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  //=== VK_KHR_video_decode_h264 ===
+
+  VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagsKHR value )
+  {
+    if ( !value )
+      return "Progressive";
+
+    std::string result;
+    if ( value & VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedInterleavedLines )
       result += "InterlacedInterleavedLines | ";
-    if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
+    if ( value & VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedSeparatePlanes )
       result += "InterlacedSeparatePlanes | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
 #if defined( VK_USE_PLATFORM_GGP )
   //=== VK_GGP_stream_descriptor_surface ===
@@ -2681,6 +2702,12 @@
       result += "AllowDisableOpacityMicromapsEXT | ";
     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT )
       result += "AllowOpacityMicromapDataUpdateEXT | ";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowDisplacementMicromapUpdateNV )
+      result += "AllowDisplacementMicromapUpdateNV | ";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowDataAccess )
+      result += "AllowDataAccess | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -2761,6 +2788,27 @@
     return "{}";
   }
 
+  //=== VK_EXT_host_image_copy ===
+
+  VULKAN_HPP_INLINE std::string to_string( HostImageCopyFlagsEXT value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & HostImageCopyFlagBitsEXT::eMemcpy )
+      result += "Memcpy | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  //=== VK_KHR_map_memory2 ===
+
+  VULKAN_HPP_INLINE std::string to_string( MemoryUnmapFlagsKHR )
+  {
+    return "{}";
+  }
+
   //=== VK_EXT_surface_maintenance1 ===
 
   VULKAN_HPP_INLINE std::string to_string( PresentScalingFlagsEXT value )
@@ -2832,7 +2880,6 @@
     return "{}";
   }
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagsKHR )
@@ -2848,6 +2895,24 @@
     std::string result;
     if ( value & VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes )
       result += "PrecedingExternallyEncodedBytes | ";
+    if ( value & VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit )
+      result += "InsufficientstreamBufferRangeDetectionBit | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeFeedbackFlagsKHR value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & VideoEncodeFeedbackFlagBitsKHR::estreamBufferOffsetBit )
+      result += "streamBufferOffsetBit | ";
+    if ( value & VideoEncodeFeedbackFlagBitsKHR::estreamBytesWrittenBit )
+      result += "streamBytesWrittenBit | ";
+    if ( value & VideoEncodeFeedbackFlagBitsKHR::estreamHasOverridesBit )
+      result += "streamHasOverridesBit | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -2855,7 +2920,7 @@
   VULKAN_HPP_INLINE std::string to_string( VideoEncodeUsageFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Default";
 
     std::string result;
     if ( value & VideoEncodeUsageFlagBitsKHR::eTranscoding )
@@ -2873,7 +2938,7 @@
   VULKAN_HPP_INLINE std::string to_string( VideoEncodeContentFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Default";
 
     std::string result;
     if ( value & VideoEncodeContentFlagBitsKHR::eCamera )
@@ -2894,13 +2959,18 @@
   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagsKHR value )
   {
     if ( !value )
-      return "{}";
+      return "Default";
 
     std::string result;
+    if ( value & VideoEncodeRateControlModeFlagBitsKHR::eDisabled )
+      result += "Disabled | ";
+    if ( value & VideoEncodeRateControlModeFlagBitsKHR::eCbr )
+      result += "Cbr | ";
+    if ( value & VideoEncodeRateControlModeFlagBitsKHR::eVbr )
+      result += "Vbr | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NV_device_diagnostics_config ===
 
@@ -2985,7 +3055,7 @@
   VULKAN_HPP_INLINE std::string to_string( ImageCompressionFlagsEXT value )
   {
     if ( !value )
-      return "{}";
+      return "Default";
 
     std::string result;
     if ( value & ImageCompressionFlagBitsEXT::eFixedRateDefault )
@@ -3001,7 +3071,7 @@
   VULKAN_HPP_INLINE std::string to_string( ImageCompressionFixedRateFlagsEXT value )
   {
     if ( !value )
-      return "{}";
+      return "None";
 
     std::string result;
     if ( value & ImageCompressionFixedRateFlagBitsEXT::e1Bpc )
@@ -3108,6 +3178,20 @@
   }
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
 
+  //=== VK_EXT_frame_boundary ===
+
+  VULKAN_HPP_INLINE std::string to_string( FrameBoundaryFlagsEXT value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & FrameBoundaryFlagBitsEXT::eFrameEnd )
+      result += "FrameEnd | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
   //=== VK_QNX_screen_surface ===
 
@@ -3147,6 +3231,20 @@
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
+  //=== VK_ARM_scheduling_controls ===
+
+  VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceSchedulingControlsFlagsARM value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & PhysicalDeviceSchedulingControlsFlagBitsARM::eShaderCoreCount )
+      result += "ShaderCoreCount | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
   //=== VK_NV_memory_decompression ===
 
   VULKAN_HPP_INLINE std::string to_string( MemoryDecompressionMethodFlagsNV value )
@@ -3173,7 +3271,7 @@
   VULKAN_HPP_INLINE std::string to_string( OpticalFlowUsageFlagsNV value )
   {
     if ( !value )
-      return "{}";
+      return "Unknown";
 
     std::string result;
     if ( value & OpticalFlowUsageFlagBitsNV::eInput )
@@ -3193,7 +3291,7 @@
   VULKAN_HPP_INLINE std::string to_string( OpticalFlowGridSizeFlagsNV value )
   {
     if ( !value )
-      return "{}";
+      return "Unknown";
 
     std::string result;
     if ( value & OpticalFlowGridSizeFlagBitsNV::e1X1 )
@@ -3240,6 +3338,172 @@
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
 
+  //=== VK_KHR_maintenance5 ===
+
+  VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags2KHR value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & PipelineCreateFlagBits2KHR::eDisableOptimization )
+      result += "DisableOptimization | ";
+    if ( value & PipelineCreateFlagBits2KHR::eAllowDerivatives )
+      result += "AllowDerivatives | ";
+    if ( value & PipelineCreateFlagBits2KHR::eDerivative )
+      result += "Derivative | ";
+    if ( value & PipelineCreateFlagBits2KHR::eViewIndexFromDeviceIndex )
+      result += "ViewIndexFromDeviceIndex | ";
+    if ( value & PipelineCreateFlagBits2KHR::eDispatchBase )
+      result += "DispatchBase | ";
+    if ( value & PipelineCreateFlagBits2KHR::eDeferCompileNV )
+      result += "DeferCompileNV | ";
+    if ( value & PipelineCreateFlagBits2KHR::eCaptureStatistics )
+      result += "CaptureStatistics | ";
+    if ( value & PipelineCreateFlagBits2KHR::eCaptureInternalRepresentations )
+      result += "CaptureInternalRepresentations | ";
+    if ( value & PipelineCreateFlagBits2KHR::eFailOnPipelineCompileRequired )
+      result += "FailOnPipelineCompileRequired | ";
+    if ( value & PipelineCreateFlagBits2KHR::eEarlyReturnOnFailure )
+      result += "EarlyReturnOnFailure | ";
+    if ( value & PipelineCreateFlagBits2KHR::eLinkTimeOptimizationEXT )
+      result += "LinkTimeOptimizationEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRetainLinkTimeOptimizationInfoEXT )
+      result += "RetainLinkTimeOptimizationInfoEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eLibrary )
+      result += "Library | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingSkipTriangles )
+      result += "RayTracingSkipTriangles | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingSkipAabbs )
+      result += "RayTracingSkipAabbs | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingNoNullAnyHitShaders )
+      result += "RayTracingNoNullAnyHitShaders | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingNoNullClosestHitShaders )
+      result += "RayTracingNoNullClosestHitShaders | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingNoNullMissShaders )
+      result += "RayTracingNoNullMissShaders | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingNoNullIntersectionShaders )
+      result += "RayTracingNoNullIntersectionShaders | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingShaderGroupHandleCaptureReplay )
+      result += "RayTracingShaderGroupHandleCaptureReplay | ";
+    if ( value & PipelineCreateFlagBits2KHR::eIndirectBindableNV )
+      result += "IndirectBindableNV | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingAllowMotionNV )
+      result += "RayTracingAllowMotionNV | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRenderingFragmentShadingRateAttachment )
+      result += "RenderingFragmentShadingRateAttachment | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRenderingFragmentDensityMapAttachmentEXT )
+      result += "RenderingFragmentDensityMapAttachmentEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingOpacityMicromapEXT )
+      result += "RayTracingOpacityMicromapEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eColorAttachmentFeedbackLoopEXT )
+      result += "ColorAttachmentFeedbackLoopEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eDepthStencilAttachmentFeedbackLoopEXT )
+      result += "DepthStencilAttachmentFeedbackLoopEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eNoProtectedAccessEXT )
+      result += "NoProtectedAccessEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eProtectedAccessOnlyEXT )
+      result += "ProtectedAccessOnlyEXT | ";
+    if ( value & PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV )
+      result += "RayTracingDisplacementMicromapNV | ";
+    if ( value & PipelineCreateFlagBits2KHR::eDescriptorBufferEXT )
+      result += "DescriptorBufferEXT | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags2KHR value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & BufferUsageFlagBits2KHR::eTransferSrc )
+      result += "TransferSrc | ";
+    if ( value & BufferUsageFlagBits2KHR::eTransferDst )
+      result += "TransferDst | ";
+    if ( value & BufferUsageFlagBits2KHR::eUniformTexelBuffer )
+      result += "UniformTexelBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eStorageTexelBuffer )
+      result += "StorageTexelBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eUniformBuffer )
+      result += "UniformBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eStorageBuffer )
+      result += "StorageBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eIndexBuffer )
+      result += "IndexBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eVertexBuffer )
+      result += "VertexBuffer | ";
+    if ( value & BufferUsageFlagBits2KHR::eIndirectBuffer )
+      result += "IndirectBuffer | ";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & BufferUsageFlagBits2KHR::eExecutionGraphScratchAMDX )
+      result += "ExecutionGraphScratchAMDX | ";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    if ( value & BufferUsageFlagBits2KHR::eConditionalRenderingEXT )
+      result += "ConditionalRenderingEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eShaderBindingTable )
+      result += "ShaderBindingTable | ";
+    if ( value & BufferUsageFlagBits2KHR::eTransformFeedbackBufferEXT )
+      result += "TransformFeedbackBufferEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eTransformFeedbackCounterBufferEXT )
+      result += "TransformFeedbackCounterBufferEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eVideoDecodeSrc )
+      result += "VideoDecodeSrc | ";
+    if ( value & BufferUsageFlagBits2KHR::eVideoDecodeDst )
+      result += "VideoDecodeDst | ";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+    if ( value & BufferUsageFlagBits2KHR::eVideoEncodeDst )
+      result += "VideoEncodeDst | ";
+    if ( value & BufferUsageFlagBits2KHR::eVideoEncodeSrc )
+      result += "VideoEncodeSrc | ";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+    if ( value & BufferUsageFlagBits2KHR::eShaderDeviceAddress )
+      result += "ShaderDeviceAddress | ";
+    if ( value & BufferUsageFlagBits2KHR::eAccelerationStructureBuildInputReadOnly )
+      result += "AccelerationStructureBuildInputReadOnly | ";
+    if ( value & BufferUsageFlagBits2KHR::eAccelerationStructureStorage )
+      result += "AccelerationStructureStorage | ";
+    if ( value & BufferUsageFlagBits2KHR::eSamplerDescriptorBufferEXT )
+      result += "SamplerDescriptorBufferEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eResourceDescriptorBufferEXT )
+      result += "ResourceDescriptorBufferEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT )
+      result += "PushDescriptorsDescriptorBufferEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT )
+      result += "MicromapBuildInputReadOnlyEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::eMicromapStorageEXT )
+      result += "MicromapStorageEXT | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  //=== VK_EXT_shader_object ===
+
+  VULKAN_HPP_INLINE std::string to_string( ShaderCreateFlagsEXT value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & ShaderCreateFlagBitsEXT::eLinkStage )
+      result += "LinkStage | ";
+    if ( value & ShaderCreateFlagBitsEXT::eAllowVaryingSubgroupSize )
+      result += "AllowVaryingSubgroupSize | ";
+    if ( value & ShaderCreateFlagBitsEXT::eRequireFullSubgroups )
+      result += "RequireFullSubgroups | ";
+    if ( value & ShaderCreateFlagBitsEXT::eNoTaskShader )
+      result += "NoTaskShader | ";
+    if ( value & ShaderCreateFlagBitsEXT::eDispatchBase )
+      result += "DispatchBase | ";
+    if ( value & ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment )
+      result += "FragmentShadingRateAttachment | ";
+    if ( value & ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment )
+      result += "FragmentDensityMapAttachment | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
   //=======================
   //=== ENUMs to_string ===
   //=======================
@@ -3292,14 +3556,12 @@
       case Result::eErrorIncompatibleDisplayKHR: return "ErrorIncompatibleDisplayKHR";
       case Result::eErrorValidationFailedEXT: return "ErrorValidationFailedEXT";
       case Result::eErrorInvalidShaderNV: return "ErrorInvalidShaderNV";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case Result::eErrorImageUsageNotSupportedKHR: return "ErrorImageUsageNotSupportedKHR";
       case Result::eErrorVideoPictureLayoutNotSupportedKHR: return "ErrorVideoPictureLayoutNotSupportedKHR";
       case Result::eErrorVideoProfileOperationNotSupportedKHR: return "ErrorVideoProfileOperationNotSupportedKHR";
       case Result::eErrorVideoProfileFormatNotSupportedKHR: return "ErrorVideoProfileFormatNotSupportedKHR";
       case Result::eErrorVideoProfileCodecNotSupportedKHR: return "ErrorVideoProfileCodecNotSupportedKHR";
       case Result::eErrorVideoStdVersionNotSupportedKHR: return "ErrorVideoStdVersionNotSupportedKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
       case Result::eErrorNotPermittedKHR: return "ErrorNotPermittedKHR";
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -3309,7 +3571,9 @@
       case Result::eThreadDoneKHR: return "ThreadDoneKHR";
       case Result::eOperationDeferredKHR: return "OperationDeferredKHR";
       case Result::eOperationNotDeferredKHR: return "OperationNotDeferredKHR";
+      case Result::eErrorInvalidVideoStdParametersKHR: return "ErrorInvalidVideoStdParametersKHR";
       case Result::eErrorCompressionExhaustedEXT: return "ErrorCompressionExhaustedEXT";
+      case Result::eErrorIncompatibleShaderBinaryEXT: return "ErrorIncompatibleShaderBinaryEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -3565,7 +3829,6 @@
       case StructureType::eDebugMarkerObjectNameInfoEXT: return "DebugMarkerObjectNameInfoEXT";
       case StructureType::eDebugMarkerObjectTagInfoEXT: return "DebugMarkerObjectTagInfoEXT";
       case StructureType::eDebugMarkerMarkerInfoEXT: return "DebugMarkerMarkerInfoEXT";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case StructureType::eVideoProfileInfoKHR: return "VideoProfileInfoKHR";
       case StructureType::eVideoCapabilitiesKHR: return "VideoCapabilitiesKHR";
       case StructureType::eVideoPictureResourceInfoKHR: return "VideoPictureResourceInfoKHR";
@@ -3586,7 +3849,6 @@
       case StructureType::eVideoDecodeInfoKHR: return "VideoDecodeInfoKHR";
       case StructureType::eVideoDecodeCapabilitiesKHR: return "VideoDecodeCapabilitiesKHR";
       case StructureType::eVideoDecodeUsageInfoKHR: return "VideoDecodeUsageInfoKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case StructureType::eDedicatedAllocationImageCreateInfoNV: return "DedicatedAllocationImageCreateInfoNV";
       case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV";
       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV";
@@ -3598,36 +3860,40 @@
       case StructureType::eCuLaunchInfoNVX: return "CuLaunchInfoNVX";
       case StructureType::eImageViewHandleInfoNVX: return "ImageViewHandleInfoNVX";
       case StructureType::eImageViewAddressPropertiesNVX: return "ImageViewAddressPropertiesNVX";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case StructureType::eVideoEncodeH264CapabilitiesEXT: return "VideoEncodeH264CapabilitiesEXT";
-      case StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT: return "VideoEncodeH264SessionParametersCreateInfoEXT";
-      case StructureType::eVideoEncodeH264SessionParametersAddInfoEXT: return "VideoEncodeH264SessionParametersAddInfoEXT";
-      case StructureType::eVideoEncodeH264VclFrameInfoEXT: return "VideoEncodeH264VclFrameInfoEXT";
-      case StructureType::eVideoEncodeH264DpbSlotInfoEXT: return "VideoEncodeH264DpbSlotInfoEXT";
-      case StructureType::eVideoEncodeH264NaluSliceInfoEXT: return "VideoEncodeH264NaluSliceInfoEXT";
-      case StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT: return "VideoEncodeH264EmitPictureParametersInfoEXT";
-      case StructureType::eVideoEncodeH264ProfileInfoEXT: return "VideoEncodeH264ProfileInfoEXT";
-      case StructureType::eVideoEncodeH264RateControlInfoEXT: return "VideoEncodeH264RateControlInfoEXT";
-      case StructureType::eVideoEncodeH264RateControlLayerInfoEXT: return "VideoEncodeH264RateControlLayerInfoEXT";
-      case StructureType::eVideoEncodeH264ReferenceListsInfoEXT: return "VideoEncodeH264ReferenceListsInfoEXT";
-      case StructureType::eVideoEncodeH265CapabilitiesEXT: return "VideoEncodeH265CapabilitiesEXT";
-      case StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT: return "VideoEncodeH265SessionParametersCreateInfoEXT";
-      case StructureType::eVideoEncodeH265SessionParametersAddInfoEXT: return "VideoEncodeH265SessionParametersAddInfoEXT";
-      case StructureType::eVideoEncodeH265VclFrameInfoEXT: return "VideoEncodeH265VclFrameInfoEXT";
-      case StructureType::eVideoEncodeH265DpbSlotInfoEXT: return "VideoEncodeH265DpbSlotInfoEXT";
-      case StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT: return "VideoEncodeH265NaluSliceSegmentInfoEXT";
-      case StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT: return "VideoEncodeH265EmitPictureParametersInfoEXT";
-      case StructureType::eVideoEncodeH265ProfileInfoEXT: return "VideoEncodeH265ProfileInfoEXT";
-      case StructureType::eVideoEncodeH265ReferenceListsInfoEXT: return "VideoEncodeH265ReferenceListsInfoEXT";
-      case StructureType::eVideoEncodeH265RateControlInfoEXT: return "VideoEncodeH265RateControlInfoEXT";
-      case StructureType::eVideoEncodeH265RateControlLayerInfoEXT: return "VideoEncodeH265RateControlLayerInfoEXT";
-      case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT";
-      case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT";
-      case StructureType::eVideoDecodeH264ProfileInfoEXT: return "VideoDecodeH264ProfileInfoEXT";
-      case StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT: return "VideoDecodeH264SessionParametersCreateInfoEXT";
-      case StructureType::eVideoDecodeH264SessionParametersAddInfoEXT: return "VideoDecodeH264SessionParametersAddInfoEXT";
-      case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case StructureType::eVideoEncodeH264CapabilitiesKHR: return "VideoEncodeH264CapabilitiesKHR";
+      case StructureType::eVideoEncodeH264SessionParametersCreateInfoKHR: return "VideoEncodeH264SessionParametersCreateInfoKHR";
+      case StructureType::eVideoEncodeH264SessionParametersAddInfoKHR: return "VideoEncodeH264SessionParametersAddInfoKHR";
+      case StructureType::eVideoEncodeH264PictureInfoKHR: return "VideoEncodeH264PictureInfoKHR";
+      case StructureType::eVideoEncodeH264DpbSlotInfoKHR: return "VideoEncodeH264DpbSlotInfoKHR";
+      case StructureType::eVideoEncodeH264NaluSliceInfoKHR: return "VideoEncodeH264NaluSliceInfoKHR";
+      case StructureType::eVideoEncodeH264GopRemainingFrameInfoKHR: return "VideoEncodeH264GopRemainingFrameInfoKHR";
+      case StructureType::eVideoEncodeH264ProfileInfoKHR: return "VideoEncodeH264ProfileInfoKHR";
+      case StructureType::eVideoEncodeH264RateControlInfoKHR: return "VideoEncodeH264RateControlInfoKHR";
+      case StructureType::eVideoEncodeH264RateControlLayerInfoKHR: return "VideoEncodeH264RateControlLayerInfoKHR";
+      case StructureType::eVideoEncodeH264SessionCreateInfoKHR: return "VideoEncodeH264SessionCreateInfoKHR";
+      case StructureType::eVideoEncodeH264QualityLevelPropertiesKHR: return "VideoEncodeH264QualityLevelPropertiesKHR";
+      case StructureType::eVideoEncodeH264SessionParametersGetInfoKHR: return "VideoEncodeH264SessionParametersGetInfoKHR";
+      case StructureType::eVideoEncodeH264SessionParametersFeedbackInfoKHR: return "VideoEncodeH264SessionParametersFeedbackInfoKHR";
+      case StructureType::eVideoEncodeH265CapabilitiesKHR: return "VideoEncodeH265CapabilitiesKHR";
+      case StructureType::eVideoEncodeH265SessionParametersCreateInfoKHR: return "VideoEncodeH265SessionParametersCreateInfoKHR";
+      case StructureType::eVideoEncodeH265SessionParametersAddInfoKHR: return "VideoEncodeH265SessionParametersAddInfoKHR";
+      case StructureType::eVideoEncodeH265PictureInfoKHR: return "VideoEncodeH265PictureInfoKHR";
+      case StructureType::eVideoEncodeH265DpbSlotInfoKHR: return "VideoEncodeH265DpbSlotInfoKHR";
+      case StructureType::eVideoEncodeH265NaluSliceSegmentInfoKHR: return "VideoEncodeH265NaluSliceSegmentInfoKHR";
+      case StructureType::eVideoEncodeH265GopRemainingFrameInfoKHR: return "VideoEncodeH265GopRemainingFrameInfoKHR";
+      case StructureType::eVideoEncodeH265ProfileInfoKHR: return "VideoEncodeH265ProfileInfoKHR";
+      case StructureType::eVideoEncodeH265RateControlInfoKHR: return "VideoEncodeH265RateControlInfoKHR";
+      case StructureType::eVideoEncodeH265RateControlLayerInfoKHR: return "VideoEncodeH265RateControlLayerInfoKHR";
+      case StructureType::eVideoEncodeH265SessionCreateInfoKHR: return "VideoEncodeH265SessionCreateInfoKHR";
+      case StructureType::eVideoEncodeH265QualityLevelPropertiesKHR: return "VideoEncodeH265QualityLevelPropertiesKHR";
+      case StructureType::eVideoEncodeH265SessionParametersGetInfoKHR: return "VideoEncodeH265SessionParametersGetInfoKHR";
+      case StructureType::eVideoEncodeH265SessionParametersFeedbackInfoKHR: return "VideoEncodeH265SessionParametersFeedbackInfoKHR";
+      case StructureType::eVideoDecodeH264CapabilitiesKHR: return "VideoDecodeH264CapabilitiesKHR";
+      case StructureType::eVideoDecodeH264PictureInfoKHR: return "VideoDecodeH264PictureInfoKHR";
+      case StructureType::eVideoDecodeH264ProfileInfoKHR: return "VideoDecodeH264ProfileInfoKHR";
+      case StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR: return "VideoDecodeH264SessionParametersCreateInfoKHR";
+      case StructureType::eVideoDecodeH264SessionParametersAddInfoKHR: return "VideoDecodeH264SessionParametersAddInfoKHR";
+      case StructureType::eVideoDecodeH264DpbSlotInfoKHR: return "VideoDecodeH264DpbSlotInfoKHR";
       case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD";
       case StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR: return "RenderingFragmentShadingRateAttachmentInfoKHR";
       case StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT: return "RenderingFragmentDensityMapAttachmentInfoEXT";
@@ -3692,6 +3958,7 @@
       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT: return "PhysicalDeviceDepthClipEnableFeaturesEXT";
       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT: return "PipelineRasterizationDepthClipStateCreateInfoEXT";
       case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT";
+      case StructureType::ePhysicalDeviceRelaxedLineRasterizationFeaturesIMG: return "PhysicalDeviceRelaxedLineRasterizationFeaturesIMG";
       case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR";
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
       case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR";
@@ -3735,6 +4002,13 @@
       case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID";
       case StructureType::eAndroidHardwareBufferFormatProperties2ANDROID: return "AndroidHardwareBufferFormatProperties2ANDROID";
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX: return "PhysicalDeviceShaderEnqueueFeaturesAMDX";
+      case StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX: return "PhysicalDeviceShaderEnqueuePropertiesAMDX";
+      case StructureType::eExecutionGraphPipelineScratchSizeAMDX: return "ExecutionGraphPipelineScratchSizeAMDX";
+      case StructureType::eExecutionGraphPipelineCreateInfoAMDX: return "ExecutionGraphPipelineCreateInfoAMDX";
+      case StructureType::ePipelineShaderStageNodeCreateInfoAMDX: return "PipelineShaderStageNodeCreateInfoAMDX";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT";
       case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT";
       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT: return "PipelineSampleLocationsStateCreateInfoEXT";
@@ -3804,23 +4078,18 @@
       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT: return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR: return "PhysicalDeviceShaderClockFeaturesKHR";
       case StructureType::ePipelineCompilerControlCreateInfoAMD: return "PipelineCompilerControlCreateInfoAMD";
-      case StructureType::eCalibratedTimestampInfoEXT: return "CalibratedTimestampInfoEXT";
       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case StructureType::eVideoDecodeH265CapabilitiesEXT: return "VideoDecodeH265CapabilitiesEXT";
-      case StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT: return "VideoDecodeH265SessionParametersCreateInfoEXT";
-      case StructureType::eVideoDecodeH265SessionParametersAddInfoEXT: return "VideoDecodeH265SessionParametersAddInfoEXT";
-      case StructureType::eVideoDecodeH265ProfileInfoEXT: return "VideoDecodeH265ProfileInfoEXT";
-      case StructureType::eVideoDecodeH265PictureInfoEXT: return "VideoDecodeH265PictureInfoEXT";
-      case StructureType::eVideoDecodeH265DpbSlotInfoEXT: return "VideoDecodeH265DpbSlotInfoEXT";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case StructureType::eVideoDecodeH265CapabilitiesKHR: return "VideoDecodeH265CapabilitiesKHR";
+      case StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR: return "VideoDecodeH265SessionParametersCreateInfoKHR";
+      case StructureType::eVideoDecodeH265SessionParametersAddInfoKHR: return "VideoDecodeH265SessionParametersAddInfoKHR";
+      case StructureType::eVideoDecodeH265ProfileInfoKHR: return "VideoDecodeH265ProfileInfoKHR";
+      case StructureType::eVideoDecodeH265PictureInfoKHR: return "VideoDecodeH265PictureInfoKHR";
+      case StructureType::eVideoDecodeH265DpbSlotInfoKHR: return "VideoDecodeH265DpbSlotInfoKHR";
       case StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR: return "DeviceQueueGlobalPriorityCreateInfoKHR";
       case StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR: return "PhysicalDeviceGlobalPriorityQueryFeaturesKHR";
       case StructureType::eQueueFamilyGlobalPriorityPropertiesKHR: return "QueueFamilyGlobalPriorityPropertiesKHR";
       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD: return "DeviceMemoryOverallocationCreateInfoAMD";
       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT: return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
-      case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT: return "PipelineVertexInputDivisorStateCreateInfoEXT";
-      case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT: return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
 #if defined( VK_USE_PLATFORM_GGP )
       case StructureType::ePresentFrameTokenGGP: return "PresentFrameTokenGGP";
 #endif /*VK_USE_PLATFORM_GGP*/
@@ -3897,6 +4166,18 @@
       case StructureType::ePipelineExecutableInfoKHR: return "PipelineExecutableInfoKHR";
       case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR";
       case StructureType::ePipelineExecutableInternalRepresentationKHR: return "PipelineExecutableInternalRepresentationKHR";
+      case StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT: return "PhysicalDeviceHostImageCopyFeaturesEXT";
+      case StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT: return "PhysicalDeviceHostImageCopyPropertiesEXT";
+      case StructureType::eMemoryToImageCopyEXT: return "MemoryToImageCopyEXT";
+      case StructureType::eImageToMemoryCopyEXT: return "ImageToMemoryCopyEXT";
+      case StructureType::eCopyImageToMemoryInfoEXT: return "CopyImageToMemoryInfoEXT";
+      case StructureType::eCopyMemoryToImageInfoEXT: return "CopyMemoryToImageInfoEXT";
+      case StructureType::eHostImageLayoutTransitionInfoEXT: return "HostImageLayoutTransitionInfoEXT";
+      case StructureType::eCopyImageToImageInfoEXT: return "CopyImageToImageInfoEXT";
+      case StructureType::eSubresourceHostMemcpySizeEXT: return "SubresourceHostMemcpySizeEXT";
+      case StructureType::eHostImageCopyDevicePerformanceQueryEXT: return "HostImageCopyDevicePerformanceQueryEXT";
+      case StructureType::eMemoryMapInfoKHR: return "MemoryMapInfoKHR";
+      case StructureType::eMemoryUnmapInfoKHR: return "MemoryUnmapInfoKHR";
       case StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT: return "PhysicalDeviceShaderAtomicFloat2FeaturesEXT";
       case StructureType::eSurfacePresentModeEXT: return "SurfacePresentModeEXT";
       case StructureType::eSurfacePresentScalingCapabilitiesEXT: return "SurfacePresentScalingCapabilitiesEXT";
@@ -3920,6 +4201,9 @@
       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT: return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM: return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
       case StructureType::eRenderPassTransformBeginInfoQCOM: return "RenderPassTransformBeginInfoQCOM";
+      case StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT: return "PhysicalDeviceDepthBiasControlFeaturesEXT";
+      case StructureType::eDepthBiasInfoEXT: return "DepthBiasInfoEXT";
+      case StructureType::eDepthBiasRepresentationInfoEXT: return "DepthBiasRepresentationInfoEXT";
       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT: return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT: return "DeviceDeviceMemoryReportCreateInfoEXT";
       case StructureType::eDeviceMemoryReportCallbackDataEXT: return "DeviceMemoryReportCallbackDataEXT";
@@ -3934,15 +4218,27 @@
       case StructureType::eSwapchainPresentBarrierCreateInfoNV: return "SwapchainPresentBarrierCreateInfoNV";
       case StructureType::ePresentIdKHR: return "PresentIdKHR";
       case StructureType::ePhysicalDevicePresentIdFeaturesKHR: return "PhysicalDevicePresentIdFeaturesKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR";
       case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR";
       case StructureType::eVideoEncodeRateControlLayerInfoKHR: return "VideoEncodeRateControlLayerInfoKHR";
       case StructureType::eVideoEncodeCapabilitiesKHR: return "VideoEncodeCapabilitiesKHR";
       case StructureType::eVideoEncodeUsageInfoKHR: return "VideoEncodeUsageInfoKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR: return "QueryPoolVideoEncodeFeedbackCreateInfoKHR";
+      case StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR: return "PhysicalDeviceVideoEncodeQualityLevelInfoKHR";
+      case StructureType::eVideoEncodeQualityLevelPropertiesKHR: return "VideoEncodeQualityLevelPropertiesKHR";
+      case StructureType::eVideoEncodeQualityLevelInfoKHR: return "VideoEncodeQualityLevelInfoKHR";
+      case StructureType::eVideoEncodeSessionParametersGetInfoKHR: return "VideoEncodeSessionParametersGetInfoKHR";
+      case StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR: return "VideoEncodeSessionParametersFeedbackInfoKHR";
       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV: return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV: return "DeviceDiagnosticsConfigCreateInfoNV";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case StructureType::eCudaModuleCreateInfoNV: return "CudaModuleCreateInfoNV";
+      case StructureType::eCudaFunctionCreateInfoNV: return "CudaFunctionCreateInfoNV";
+      case StructureType::eCudaLaunchInfoNV: return "CudaLaunchInfoNV";
+      case StructureType::ePhysicalDeviceCudaKernelLaunchFeaturesNV: return "PhysicalDeviceCudaKernelLaunchFeaturesNV";
+      case StructureType::ePhysicalDeviceCudaKernelLaunchPropertiesNV: return "PhysicalDeviceCudaKernelLaunchPropertiesNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case StructureType::eQueryLowLatencySupportNV: return "QueryLowLatencySupportNV";
 #if defined( VK_USE_PLATFORM_METAL_EXT )
       case StructureType::eExportMetalObjectCreateInfoEXT: return "ExportMetalObjectCreateInfoEXT";
       case StructureType::eExportMetalObjectsInfoEXT: return "ExportMetalObjectsInfoEXT";
@@ -3994,8 +4290,6 @@
       case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR: return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
       case StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT: return "PhysicalDeviceImageCompressionControlFeaturesEXT";
       case StructureType::eImageCompressionControlEXT: return "ImageCompressionControlEXT";
-      case StructureType::eSubresourceLayout2EXT: return "SubresourceLayout2EXT";
-      case StructureType::eImageSubresource2EXT: return "ImageSubresource2EXT";
       case StructureType::eImageCompressionPropertiesEXT: return "ImageCompressionPropertiesEXT";
       case StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT: return "PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT";
       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT: return "PhysicalDevice4444FormatsFeaturesEXT";
@@ -4040,6 +4334,8 @@
       case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV: return "PhysicalDeviceExternalMemoryRdmaFeaturesNV";
       case StructureType::ePipelinePropertiesIdentifierEXT: return "PipelinePropertiesIdentifierEXT";
       case StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT: return "PhysicalDevicePipelinePropertiesFeaturesEXT";
+      case StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT: return "PhysicalDeviceFrameBoundaryFeaturesEXT";
+      case StructureType::eFrameBoundaryEXT: return "FrameBoundaryEXT";
       case StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT: return "PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT";
       case StructureType::eSubpassResolvePerformanceQueryEXT: return "SubpassResolvePerformanceQueryEXT";
       case StructureType::eMultisampledRenderToSingleSampledInfoEXT: return "MultisampledRenderToSingleSampledInfoEXT";
@@ -4056,6 +4352,8 @@
       case StructureType::ePhysicalDeviceMultiDrawFeaturesEXT: return "PhysicalDeviceMultiDrawFeaturesEXT";
       case StructureType::ePhysicalDeviceMultiDrawPropertiesEXT: return "PhysicalDeviceMultiDrawPropertiesEXT";
       case StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT: return "PhysicalDeviceImage2DViewOf3DFeaturesEXT";
+      case StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT: return "PhysicalDeviceShaderTileImageFeaturesEXT";
+      case StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT: return "PhysicalDeviceShaderTileImagePropertiesEXT";
       case StructureType::eMicromapBuildInfoEXT: return "MicromapBuildInfoEXT";
       case StructureType::eMicromapVersionInfoEXT: return "MicromapVersionInfoEXT";
       case StructureType::eCopyMicromapInfoEXT: return "CopyMicromapInfoEXT";
@@ -4066,14 +4364,33 @@
       case StructureType::eMicromapCreateInfoEXT: return "MicromapCreateInfoEXT";
       case StructureType::eMicromapBuildSizesInfoEXT: return "MicromapBuildSizesInfoEXT";
       case StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT: return "AccelerationStructureTrianglesOpacityMicromapEXT";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV: return "PhysicalDeviceDisplacementMicromapFeaturesNV";
+      case StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV: return "PhysicalDeviceDisplacementMicromapPropertiesNV";
+      case StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV: return "AccelerationStructureTrianglesDisplacementMicromapNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI: return "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI";
+      case StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI: return "PhysicalDeviceClusterCullingShaderPropertiesHUAWEI";
+      case StructureType::ePhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI: return "PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI";
       case StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT: return "PhysicalDeviceBorderColorSwizzleFeaturesEXT";
       case StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT: return "SamplerBorderColorComponentMappingCreateInfoEXT";
       case StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT: return "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT";
+      case StructureType::ePhysicalDeviceShaderCorePropertiesARM: return "PhysicalDeviceShaderCorePropertiesARM";
+      case StructureType::eDeviceQueueShaderCoreControlCreateInfoARM: return "DeviceQueueShaderCoreControlCreateInfoARM";
+      case StructureType::ePhysicalDeviceSchedulingControlsFeaturesARM: return "PhysicalDeviceSchedulingControlsFeaturesARM";
+      case StructureType::ePhysicalDeviceSchedulingControlsPropertiesARM: return "PhysicalDeviceSchedulingControlsPropertiesARM";
+      case StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT: return "PhysicalDeviceImageSlicedViewOf3DFeaturesEXT";
+      case StructureType::eImageViewSlicedCreateInfoEXT: return "ImageViewSlicedCreateInfoEXT";
       case StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE: return "PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE";
       case StructureType::eDescriptorSetBindingReferenceVALVE: return "DescriptorSetBindingReferenceVALVE";
       case StructureType::eDescriptorSetLayoutHostMappingInfoVALVE: return "DescriptorSetLayoutHostMappingInfoVALVE";
       case StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT: return "PhysicalDeviceDepthClampZeroOneFeaturesEXT";
       case StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT: return "PhysicalDeviceNonSeamlessCubeMapFeaturesEXT";
+      case StructureType::ePhysicalDeviceRenderPassStripedFeaturesARM: return "PhysicalDeviceRenderPassStripedFeaturesARM";
+      case StructureType::ePhysicalDeviceRenderPassStripedPropertiesARM: return "PhysicalDeviceRenderPassStripedPropertiesARM";
+      case StructureType::eRenderPassStripeBeginInfoARM: return "RenderPassStripeBeginInfoARM";
+      case StructureType::eRenderPassStripeInfoARM: return "RenderPassStripeInfoARM";
+      case StructureType::eRenderPassStripeSubmitInfoARM: return "RenderPassStripeSubmitInfoARM";
       case StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM: return "PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM";
       case StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM: return "PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM";
       case StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM: return "SubpassFragmentDensityMapOffsetEndInfoQCOM";
@@ -4081,11 +4398,17 @@
       case StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV: return "PhysicalDeviceCopyMemoryIndirectPropertiesNV";
       case StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV: return "PhysicalDeviceMemoryDecompressionFeaturesNV";
       case StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV: return "PhysicalDeviceMemoryDecompressionPropertiesNV";
+      case StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV: return "PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV";
+      case StructureType::eComputePipelineIndirectBufferInfoNV: return "ComputePipelineIndirectBufferInfoNV";
+      case StructureType::ePipelineIndirectDeviceAddressInfoNV: return "PipelineIndirectDeviceAddressInfoNV";
       case StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV: return "PhysicalDeviceLinearColorAttachmentFeaturesNV";
       case StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT: return "PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT";
       case StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM: return "PhysicalDeviceImageProcessingFeaturesQCOM";
       case StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM: return "PhysicalDeviceImageProcessingPropertiesQCOM";
       case StructureType::eImageViewSampleWeightCreateInfoQCOM: return "ImageViewSampleWeightCreateInfoQCOM";
+      case StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT: return "PhysicalDeviceNestedCommandBufferFeaturesEXT";
+      case StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT: return "PhysicalDeviceNestedCommandBufferPropertiesEXT";
+      case StructureType::eExternalMemoryAcquireUnmodifiedEXT: return "ExternalMemoryAcquireUnmodifiedEXT";
       case StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT: return "PhysicalDeviceExtendedDynamicState3FeaturesEXT";
       case StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT: return "PhysicalDeviceExtendedDynamicState3PropertiesEXT";
       case StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT: return "PhysicalDeviceSubpassMergeFeedbackFeaturesEXT";
@@ -4108,6 +4431,23 @@
       case StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV: return "OpticalFlowSessionCreatePrivateDataInfoNV";
       case StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT: return "PhysicalDeviceLegacyDitheringFeaturesEXT";
       case StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT: return "PhysicalDevicePipelineProtectedAccessFeaturesEXT";
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      case StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID: return "PhysicalDeviceExternalFormatResolveFeaturesANDROID";
+      case StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID: return "PhysicalDeviceExternalFormatResolvePropertiesANDROID";
+      case StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID: return "AndroidHardwareBufferFormatResolvePropertiesANDROID";
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+      case StructureType::ePhysicalDeviceMaintenance5FeaturesKHR: return "PhysicalDeviceMaintenance5FeaturesKHR";
+      case StructureType::ePhysicalDeviceMaintenance5PropertiesKHR: return "PhysicalDeviceMaintenance5PropertiesKHR";
+      case StructureType::eRenderingAreaInfoKHR: return "RenderingAreaInfoKHR";
+      case StructureType::eDeviceImageSubresourceInfoKHR: return "DeviceImageSubresourceInfoKHR";
+      case StructureType::eSubresourceLayout2KHR: return "SubresourceLayout2KHR";
+      case StructureType::eImageSubresource2KHR: return "ImageSubresource2KHR";
+      case StructureType::ePipelineCreateFlags2CreateInfoKHR: return "PipelineCreateFlags2CreateInfoKHR";
+      case StructureType::eBufferUsageFlags2CreateInfoKHR: return "BufferUsageFlags2CreateInfoKHR";
+      case StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR: return "PhysicalDeviceRayTracingPositionFetchFeaturesKHR";
+      case StructureType::ePhysicalDeviceShaderObjectFeaturesEXT: return "PhysicalDeviceShaderObjectFeaturesEXT";
+      case StructureType::ePhysicalDeviceShaderObjectPropertiesEXT: return "PhysicalDeviceShaderObjectPropertiesEXT";
+      case StructureType::eShaderCreateInfoEXT: return "ShaderCreateInfoEXT";
       case StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM: return "PhysicalDeviceTilePropertiesFeaturesQCOM";
       case StructureType::eTilePropertiesQCOM: return "TilePropertiesQCOM";
       case StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC: return "PhysicalDeviceAmigoProfilingFeaturesSEC";
@@ -4115,10 +4455,64 @@
       case StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM: return "PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM";
       case StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV: return "PhysicalDeviceRayTracingInvocationReorderFeaturesNV";
       case StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV: return "PhysicalDeviceRayTracingInvocationReorderPropertiesNV";
+      case StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV: return "PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV";
+      case StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV: return "PhysicalDeviceExtendedSparseAddressSpacePropertiesNV";
       case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT: return "PhysicalDeviceMutableDescriptorTypeFeaturesEXT";
       case StructureType::eMutableDescriptorTypeCreateInfoEXT: return "MutableDescriptorTypeCreateInfoEXT";
+      case StructureType::eLayerSettingsCreateInfoEXT: return "LayerSettingsCreateInfoEXT";
       case StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM: return "PhysicalDeviceShaderCoreBuiltinsFeaturesARM";
       case StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM: return "PhysicalDeviceShaderCoreBuiltinsPropertiesARM";
+      case StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT: return "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT";
+      case StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT: return "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT";
+      case StructureType::eLatencySleepModeInfoNV: return "LatencySleepModeInfoNV";
+      case StructureType::eLatencySleepInfoNV: return "LatencySleepInfoNV";
+      case StructureType::eSetLatencyMarkerInfoNV: return "SetLatencyMarkerInfoNV";
+      case StructureType::eGetLatencyMarkerInfoNV: return "GetLatencyMarkerInfoNV";
+      case StructureType::eLatencyTimingsFrameReportNV: return "LatencyTimingsFrameReportNV";
+      case StructureType::eLatencySubmissionPresentIdNV: return "LatencySubmissionPresentIdNV";
+      case StructureType::eOutOfBandQueueTypeInfoNV: return "OutOfBandQueueTypeInfoNV";
+      case StructureType::eSwapchainLatencyCreateInfoNV: return "SwapchainLatencyCreateInfoNV";
+      case StructureType::eLatencySurfaceCapabilitiesNV: return "LatencySurfaceCapabilitiesNV";
+      case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR: return "PhysicalDeviceCooperativeMatrixFeaturesKHR";
+      case StructureType::eCooperativeMatrixPropertiesKHR: return "CooperativeMatrixPropertiesKHR";
+      case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR: return "PhysicalDeviceCooperativeMatrixPropertiesKHR";
+      case StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM: return "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM";
+      case StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM: return "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM";
+      case StructureType::ePhysicalDeviceVideoMaintenance1FeaturesKHR: return "PhysicalDeviceVideoMaintenance1FeaturesKHR";
+      case StructureType::eVideoInlineQueryInfoKHR: return "VideoInlineQueryInfoKHR";
+      case StructureType::ePhysicalDevicePerStageDescriptorSetFeaturesNV: return "PhysicalDevicePerStageDescriptorSetFeaturesNV";
+      case StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM: return "PhysicalDeviceImageProcessing2FeaturesQCOM";
+      case StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM: return "PhysicalDeviceImageProcessing2PropertiesQCOM";
+      case StructureType::eSamplerBlockMatchWindowCreateInfoQCOM: return "SamplerBlockMatchWindowCreateInfoQCOM";
+      case StructureType::eSamplerCubicWeightsCreateInfoQCOM: return "SamplerCubicWeightsCreateInfoQCOM";
+      case StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM: return "PhysicalDeviceCubicWeightsFeaturesQCOM";
+      case StructureType::eBlitImageCubicWeightsInfoQCOM: return "BlitImageCubicWeightsInfoQCOM";
+      case StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM: return "PhysicalDeviceYcbcrDegammaFeaturesQCOM";
+      case StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM: return "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM";
+      case StructureType::ePhysicalDeviceCubicClampFeaturesQCOM: return "PhysicalDeviceCubicClampFeaturesQCOM";
+      case StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT: return "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT";
+      case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesKHR: return "PhysicalDeviceVertexAttributeDivisorPropertiesKHR";
+      case StructureType::ePipelineVertexInputDivisorStateCreateInfoKHR: return "PipelineVertexInputDivisorStateCreateInfoKHR";
+      case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesKHR: return "PhysicalDeviceVertexAttributeDivisorFeaturesKHR";
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      case StructureType::eScreenBufferPropertiesQNX: return "ScreenBufferPropertiesQNX";
+      case StructureType::eScreenBufferFormatPropertiesQNX: return "ScreenBufferFormatPropertiesQNX";
+      case StructureType::eImportScreenBufferInfoQNX: return "ImportScreenBufferInfoQNX";
+      case StructureType::eExternalFormatQNX: return "ExternalFormatQNX";
+      case StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX: return "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX";
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+      case StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT: return "PhysicalDeviceLayeredDriverPropertiesMSFT";
+      case StructureType::eCalibratedTimestampInfoKHR: return "CalibratedTimestampInfoKHR";
+      case StructureType::ePhysicalDeviceMaintenance6FeaturesKHR: return "PhysicalDeviceMaintenance6FeaturesKHR";
+      case StructureType::ePhysicalDeviceMaintenance6PropertiesKHR: return "PhysicalDeviceMaintenance6PropertiesKHR";
+      case StructureType::eBindMemoryStatusKHR: return "BindMemoryStatusKHR";
+      case StructureType::eBindDescriptorSetsInfoKHR: return "BindDescriptorSetsInfoKHR";
+      case StructureType::ePushConstantsInfoKHR: return "PushConstantsInfoKHR";
+      case StructureType::ePushDescriptorSetInfoKHR: return "PushDescriptorSetInfoKHR";
+      case StructureType::ePushDescriptorSetWithTemplateInfoKHR: return "PushDescriptorSetWithTemplateInfoKHR";
+      case StructureType::eSetDescriptorBufferOffsetsInfoEXT: return "SetDescriptorBufferOffsetsInfoEXT";
+      case StructureType::eBindDescriptorBufferEmbeddedSamplersInfoEXT: return "BindDescriptorBufferEmbeddedSamplersInfoEXT";
+      case StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV: return "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4170,10 +4564,8 @@
       case ObjectType::eDisplayKHR: return "DisplayKHR";
       case ObjectType::eDisplayModeKHR: return "DisplayModeKHR";
       case ObjectType::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case ObjectType::eVideoSessionKHR: return "VideoSessionKHR";
       case ObjectType::eVideoSessionParametersKHR: return "VideoSessionParametersKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case ObjectType::eCuModuleNVX: return "CuModuleNVX";
       case ObjectType::eCuFunctionNVX: return "CuFunctionNVX";
       case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT";
@@ -4183,11 +4575,16 @@
       case ObjectType::ePerformanceConfigurationINTEL: return "PerformanceConfigurationINTEL";
       case ObjectType::eDeferredOperationKHR: return "DeferredOperationKHR";
       case ObjectType::eIndirectCommandsLayoutNV: return "IndirectCommandsLayoutNV";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case ObjectType::eCudaModuleNV: return "CudaModuleNV";
+      case ObjectType::eCudaFunctionNV: return "CudaFunctionNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 #if defined( VK_USE_PLATFORM_FUCHSIA )
       case ObjectType::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
       case ObjectType::eMicromapEXT: return "MicromapEXT";
       case ObjectType::eOpticalFlowSessionNV: return "OpticalFlowSessionNV";
+      case ObjectType::eShaderEXT: return "ShaderEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4202,6 +4599,7 @@
       case VendorId::eCodeplay: return "Codeplay";
       case VendorId::eMESA: return "MESA";
       case VendorId::ePocl: return "Pocl";
+      case VendorId::eMobileye: return "Mobileye";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4458,6 +4856,8 @@
       case Format::ePvrtc22BppSrgbBlockIMG: return "Pvrtc22BppSrgbBlockIMG";
       case Format::ePvrtc24BppSrgbBlockIMG: return "Pvrtc24BppSrgbBlockIMG";
       case Format::eR16G16S105NV: return "R16G16S105NV";
+      case Format::eA1B5G5R5UnormPack16KHR: return "A1B5G5R5UnormPack16KHR";
+      case Format::eA8UnormKHR: return "A8UnormKHR";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4490,18 +4890,14 @@
       case FormatFeatureFlagBits::eDisjoint: return "Disjoint";
       case FormatFeatureFlagBits::eCositedChromaSamples: return "CositedChromaSamples";
       case FormatFeatureFlagBits::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case FormatFeatureFlagBits::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
       case FormatFeatureFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
       case FormatFeatureFlagBits::eSampledImageFilterCubicEXT: return "SampledImageFilterCubicEXT";
       case FormatFeatureFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case FormatFeatureFlagBits::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
       case FormatFeatureFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4529,6 +4925,7 @@
       case ImageCreateFlagBits::eMultisampledRenderToSingleSampledEXT: return "MultisampledRenderToSingleSampledEXT";
       case ImageCreateFlagBits::e2DViewCompatibleEXT: return "2DViewCompatibleEXT";
       case ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM: return "FragmentDensityMapOffsetQCOM";
+      case ImageCreateFlagBits::eVideoProfileIndependentKHR: return "VideoProfileIndependentKHR";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4567,18 +4964,15 @@
       case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
       case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment";
       case ImageUsageFlagBits::eInputAttachment: return "InputAttachment";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case ImageUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
       case ImageUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
       case ImageUsageFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case ImageUsageFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
       case ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case ImageUsageFlagBits::eHostTransferEXT: return "HostTransferEXT";
       case ImageUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
       case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
       case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case ImageUsageFlagBits::eAttachmentFeedbackLoopEXT: return "AttachmentFeedbackLoopEXT";
       case ImageUsageFlagBits::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
       case ImageUsageFlagBits::eSampleWeightQCOM: return "SampleWeightQCOM";
@@ -4654,10 +5048,8 @@
       case QueueFlagBits::eTransfer: return "Transfer";
       case QueueFlagBits::eSparseBinding: return "SparseBinding";
       case QueueFlagBits::eProtected: return "Protected";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case QueueFlagBits::eVideoDecodeKHR: return "VideoDecodeKHR";
       case QueueFlagBits::eVideoEncodeKHR: return "VideoEncodeKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case QueueFlagBits::eOpticalFlowNV: return "OpticalFlowNV";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
@@ -4696,6 +5088,15 @@
     return "(void)";
   }
 
+  VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
+  {
+    switch ( value )
+    {
+      case DeviceQueueCreateFlagBits::eProtected: return "Protected";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
   {
     switch ( value )
@@ -4816,6 +5217,7 @@
       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations: return "ComputeShaderInvocations";
       case QueryPipelineStatisticFlagBits::eTaskShaderInvocationsEXT: return "TaskShaderInvocationsEXT";
       case QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT: return "MeshShaderInvocationsEXT";
+      case QueryPipelineStatisticFlagBits::eClusterCullingShaderInvocationsHUAWEI: return "ClusterCullingShaderInvocationsHUAWEI";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4828,9 +5230,7 @@
       case QueryResultFlagBits::eWait: return "Wait";
       case QueryResultFlagBits::eWithAvailability: return "WithAvailability";
       case QueryResultFlagBits::ePartial: return "Partial";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case QueryResultFlagBits::eWithStatusKHR: return "WithStatusKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4842,18 +5242,14 @@
       case QueryType::eOcclusion: return "Occlusion";
       case QueryType::ePipelineStatistics: return "PipelineStatistics";
       case QueryType::eTimestamp: return "Timestamp";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case QueryType::eResultStatusOnlyKHR: return "ResultStatusOnlyKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case QueryType::eTransformFeedbackStreamEXT: return "TransformFeedbackStreamEXT";
       case QueryType::ePerformanceQueryKHR: return "PerformanceQueryKHR";
       case QueryType::eAccelerationStructureCompactedSizeKHR: return "AccelerationStructureCompactedSizeKHR";
       case QueryType::eAccelerationStructureSerializationSizeKHR: return "AccelerationStructureSerializationSizeKHR";
       case QueryType::eAccelerationStructureCompactedSizeNV: return "AccelerationStructureCompactedSizeNV";
       case QueryType::ePerformanceQueryINTEL: return "PerformanceQueryINTEL";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case QueryType::eVideoEncodeBitstreamBufferRangeKHR: return "VideoEncodeBitstreamBufferRangeKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case QueryType::eVideoEncodeFeedbackKHR: return "VideoEncodeFeedbackKHR";
       case QueryType::eMeshPrimitivesGeneratedEXT: return "MeshPrimitivesGeneratedEXT";
       case QueryType::ePrimitivesGeneratedEXT: return "PrimitivesGeneratedEXT";
       case QueryType::eAccelerationStructureSerializationBottomLevelPointersKHR: return "AccelerationStructureSerializationBottomLevelPointersKHR";
@@ -4879,6 +5275,7 @@
       case BufferCreateFlagBits::eProtected: return "Protected";
       case BufferCreateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
       case BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT: return "DescriptorBufferCaptureReplayEXT";
+      case BufferCreateFlagBits::eVideoProfileIndependentKHR: return "VideoProfileIndependentKHR";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4897,20 +5294,19 @@
       case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer";
       case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer";
       case BufferUsageFlagBits::eShaderDeviceAddress: return "ShaderDeviceAddress";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case BufferUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
       case BufferUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case BufferUsageFlagBits::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT";
       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT";
       case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case BufferUsageFlagBits::eExecutionGraphScratchAMDX: return "ExecutionGraphScratchAMDX";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR: return "AccelerationStructureBuildInputReadOnlyKHR";
       case BufferUsageFlagBits::eAccelerationStructureStorageKHR: return "AccelerationStructureStorageKHR";
       case BufferUsageFlagBits::eShaderBindingTableKHR: return "ShaderBindingTableKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case BufferUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
       case BufferUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case BufferUsageFlagBits::eSamplerDescriptorBufferEXT: return "SamplerDescriptorBufferEXT";
       case BufferUsageFlagBits::eResourceDescriptorBufferEXT: return "ResourceDescriptorBufferEXT";
       case BufferUsageFlagBits::ePushDescriptorsDescriptorBufferEXT: return "PushDescriptorsDescriptorBufferEXT";
@@ -4957,19 +5353,15 @@
       case ImageLayout::eReadOnlyOptimal: return "ReadOnlyOptimal";
       case ImageLayout::eAttachmentOptimal: return "AttachmentOptimal";
       case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case ImageLayout::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
       case ImageLayout::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
       case ImageLayout::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR";
       case ImageLayout::eFragmentDensityMapOptimalEXT: return "FragmentDensityMapOptimalEXT";
       case ImageLayout::eFragmentShadingRateAttachmentOptimalKHR: return "FragmentShadingRateAttachmentOptimalKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case ImageLayout::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
       case ImageLayout::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
       case ImageLayout::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case ImageLayout::eAttachmentFeedbackLoopOptimalEXT: return "AttachmentFeedbackLoopOptimalEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
@@ -5021,6 +5413,15 @@
     return "(void)";
   }
 
+  VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
+  {
+    switch ( value )
+    {
+      case PipelineCacheCreateFlagBits::eExternallySynchronized: return "ExternallySynchronized";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
   {
     switch ( value )
@@ -5177,10 +5578,13 @@
       case DynamicState::ePrimitiveRestartEnable: return "PrimitiveRestartEnable";
       case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV";
       case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT";
+      case DynamicState::eDiscardRectangleEnableEXT: return "DiscardRectangleEnableEXT";
+      case DynamicState::eDiscardRectangleModeEXT: return "DiscardRectangleModeEXT";
       case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT";
       case DynamicState::eRayTracingPipelineStackSizeKHR: return "RayTracingPipelineStackSizeKHR";
       case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV";
       case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV";
+      case DynamicState::eExclusiveScissorEnableNV: return "ExclusiveScissorEnableNV";
       case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV";
       case DynamicState::eFragmentShadingRateKHR: return "FragmentShadingRateKHR";
       case DynamicState::eLineStippleEXT: return "LineStippleEXT";
@@ -5219,6 +5623,7 @@
       case DynamicState::eShadingRateImageEnableNV: return "ShadingRateImageEnableNV";
       case DynamicState::eRepresentativeFragmentTestEnableNV: return "RepresentativeFragmentTestEnableNV";
       case DynamicState::eCoverageReductionModeNV: return "CoverageReductionModeNV";
+      case DynamicState::eAttachmentFeedbackLoopEnableEXT: return "AttachmentFeedbackLoopEnableEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5289,6 +5694,9 @@
       case PipelineCreateFlagBits::eColorAttachmentFeedbackLoopEXT: return "ColorAttachmentFeedbackLoopEXT";
       case PipelineCreateFlagBits::eDepthStencilAttachmentFeedbackLoopEXT: return "DepthStencilAttachmentFeedbackLoopEXT";
       case PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case PipelineCreateFlagBits::eRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case PipelineCreateFlagBits::eNoProtectedAccessEXT: return "NoProtectedAccessEXT";
       case PipelineCreateFlagBits::eProtectedAccessOnlyEXT: return "ProtectedAccessOnlyEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
@@ -5357,6 +5765,7 @@
       case ShaderStageFlagBits::eTaskEXT: return "TaskEXT";
       case ShaderStageFlagBits::eMeshEXT: return "MeshEXT";
       case ShaderStageFlagBits::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
+      case ShaderStageFlagBits::eClusterCullingHUAWEI: return "ClusterCullingHUAWEI";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5387,6 +5796,25 @@
     }
   }
 
+  VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value )
+  {
+    switch ( value )
+    {
+      case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT: return "RasterizationOrderAttachmentAccessEXT";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value )
+  {
+    switch ( value )
+    {
+      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT: return "RasterizationOrderAttachmentDepthAccessEXT";
+      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT: return "RasterizationOrderAttachmentStencilAccessEXT";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
   {
     return "(void)";
@@ -5397,6 +5825,15 @@
     return "(void)";
   }
 
+  VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits value )
+  {
+    switch ( value )
+    {
+      case PipelineLayoutCreateFlagBits::eIndependentSetsEXT: return "IndependentSetsEXT";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
   {
     return "(void)";
@@ -5492,6 +5929,8 @@
       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet";
       case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
       case DescriptorPoolCreateFlagBits::eHostOnlyEXT: return "HostOnlyEXT";
+      case DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV: return "AllowOverallocationSetsNV";
+      case DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV: return "AllowOverallocationPoolsNV";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5504,7 +5943,9 @@
       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR: return "PushDescriptorKHR";
       case DescriptorSetLayoutCreateFlagBits::eDescriptorBufferEXT: return "DescriptorBufferEXT";
       case DescriptorSetLayoutCreateFlagBits::eEmbeddedImmutableSamplersEXT: return "EmbeddedImmutableSamplersEXT";
+      case DescriptorSetLayoutCreateFlagBits::eIndirectBindableNV: return "IndirectBindableNV";
       case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT: return "HostOnlyPoolEXT";
+      case DescriptorSetLayoutCreateFlagBits::ePerStageNV: return "PerStageNV";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5635,6 +6076,9 @@
     {
       case PipelineBindPoint::eGraphics: return "Graphics";
       case PipelineBindPoint::eCompute: return "Compute";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case PipelineBindPoint::eExecutionGraphAMDX: return "ExecutionGraphAMDX";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case PipelineBindPoint::eRayTracingKHR: return "RayTracingKHR";
       case PipelineBindPoint::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
@@ -5754,6 +6198,7 @@
     {
       case SubpassContents::eInline: return "Inline";
       case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers";
+      case SubpassContents::eInlineAndSecondaryCommandBuffersEXT: return "InlineAndSecondaryCommandBuffersEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5825,15 +6270,6 @@
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case DeviceQueueCreateFlagBits::eProtected: return "Protected";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
   {
     switch ( value )
@@ -5903,6 +6339,9 @@
       case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA";
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
       case ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV: return "RdmaAddressNV";
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+      case ExternalMemoryHandleTypeFlagBits::eScreenBufferQNX: return "ScreenBufferQNX";
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6014,6 +6453,8 @@
       case DriverId::eMesaVenus: return "MesaVenus";
       case DriverId::eMesaDozen: return "MesaDozen";
       case DriverId::eMesaNvk: return "MesaNvk";
+      case DriverId::eImaginationOpenSourceMESA: return "ImaginationOpenSourceMESA";
+      case DriverId::eMesaAgxv: return "MesaAgxv";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6050,6 +6491,9 @@
       case ResolveModeFlagBits::eAverage: return "Average";
       case ResolveModeFlagBits::eMin: return "Min";
       case ResolveModeFlagBits::eMax: return "Max";
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+      case ResolveModeFlagBits::eExternalFormatDownsampleANDROID: return "ExternalFormatDownsampleANDROID";
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6061,6 +6505,7 @@
       case SamplerReductionMode::eWeightedAverage: return "WeightedAverage";
       case SamplerReductionMode::eMin: return "Min";
       case SamplerReductionMode::eMax: return "Max";
+      case SamplerReductionMode::eWeightedAverageRangeclampQCOM: return "WeightedAverageRangeclampQCOM";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6146,10 +6591,8 @@
       case PipelineStageFlagBits2::eIndexInput: return "IndexInput";
       case PipelineStageFlagBits2::eVertexAttributeInput: return "VertexAttributeInput";
       case PipelineStageFlagBits2::ePreRasterizationShaders: return "PreRasterizationShaders";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case PipelineStageFlagBits2::eVideoDecodeKHR: return "VideoDecodeKHR";
       case PipelineStageFlagBits2::eVideoEncodeKHR: return "VideoEncodeKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case PipelineStageFlagBits2::eTransformFeedbackEXT: return "TransformFeedbackEXT";
       case PipelineStageFlagBits2::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
       case PipelineStageFlagBits2::eCommandPreprocessNV: return "CommandPreprocessNV";
@@ -6159,10 +6602,11 @@
       case PipelineStageFlagBits2::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
       case PipelineStageFlagBits2::eTaskShaderEXT: return "TaskShaderEXT";
       case PipelineStageFlagBits2::eMeshShaderEXT: return "MeshShaderEXT";
-      case PipelineStageFlagBits2::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
+      case PipelineStageFlagBits2::eSubpassShaderHUAWEI: return "SubpassShaderHUAWEI";
       case PipelineStageFlagBits2::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
       case PipelineStageFlagBits2::eAccelerationStructureCopyKHR: return "AccelerationStructureCopyKHR";
       case PipelineStageFlagBits2::eMicromapBuildEXT: return "MicromapBuildEXT";
+      case PipelineStageFlagBits2::eClusterCullingShaderHUAWEI: return "ClusterCullingShaderHUAWEI";
       case PipelineStageFlagBits2::eOpticalFlowNV: return "OpticalFlowNV";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
@@ -6193,12 +6637,10 @@
       case AccessFlagBits2::eShaderSampledRead: return "ShaderSampledRead";
       case AccessFlagBits2::eShaderStorageRead: return "ShaderStorageRead";
       case AccessFlagBits2::eShaderStorageWrite: return "ShaderStorageWrite";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case AccessFlagBits2::eVideoDecodeReadKHR: return "VideoDecodeReadKHR";
       case AccessFlagBits2::eVideoDecodeWriteKHR: return "VideoDecodeWriteKHR";
       case AccessFlagBits2::eVideoEncodeReadKHR: return "VideoEncodeReadKHR";
       case AccessFlagBits2::eVideoEncodeWriteKHR: return "VideoEncodeWriteKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case AccessFlagBits2::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
       case AccessFlagBits2::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
       case AccessFlagBits2::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
@@ -6237,6 +6679,7 @@
       case RenderingFlagBits::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers";
       case RenderingFlagBits::eSuspending: return "Suspending";
       case RenderingFlagBits::eResuming: return "Resuming";
+      case RenderingFlagBits::eContentsInlineEXT: return "ContentsInlineEXT";
       case RenderingFlagBits::eEnableLegacyDitheringEXT: return "EnableLegacyDitheringEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
@@ -6274,17 +6717,14 @@
       case FormatFeatureFlagBits2::eStorageReadWithoutFormat: return "StorageReadWithoutFormat";
       case FormatFeatureFlagBits2::eStorageWriteWithoutFormat: return "StorageWriteWithoutFormat";
       case FormatFeatureFlagBits2::eSampledImageDepthComparison: return "SampledImageDepthComparison";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
       case FormatFeatureFlagBits2::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
       case FormatFeatureFlagBits2::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
       case FormatFeatureFlagBits2::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
       case FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case FormatFeatureFlagBits2::eHostImageTransferEXT: return "HostImageTransferEXT";
       case FormatFeatureFlagBits2::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
       case FormatFeatureFlagBits2::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       case FormatFeatureFlagBits2::eLinearColorAttachmentNV: return "LinearColorAttachmentNV";
       case FormatFeatureFlagBits2::eWeightImageQCOM: return "WeightImageQCOM";
       case FormatFeatureFlagBits2::eWeightSampledImageQCOM: return "WeightSampledImageQCOM";
@@ -6518,6 +6958,10 @@
       case DebugReportObjectTypeEXT::eCuFunctionNVX: return "CuFunctionNVX";
       case DebugReportObjectTypeEXT::eAccelerationStructureKHR: return "AccelerationStructureKHR";
       case DebugReportObjectTypeEXT::eAccelerationStructureNV: return "AccelerationStructureNV";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case DebugReportObjectTypeEXT::eCudaModuleNV: return "CudaModuleNV";
+      case DebugReportObjectTypeEXT::eCudaFunctionNV: return "CudaFunctionNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 #if defined( VK_USE_PLATFORM_FUCHSIA )
       case DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
@@ -6537,7 +6981,6 @@
     }
   }
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagBitsKHR value )
@@ -6545,12 +6988,10 @@
     switch ( value )
     {
       case VideoCodecOperationFlagBitsKHR::eNone: return "None";
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
-      case VideoCodecOperationFlagBitsKHR::eEncodeH264EXT: return "EncodeH264EXT";
-      case VideoCodecOperationFlagBitsKHR::eEncodeH265EXT: return "EncodeH265EXT";
-      case VideoCodecOperationFlagBitsKHR::eDecodeH264EXT: return "DecodeH264EXT";
-      case VideoCodecOperationFlagBitsKHR::eDecodeH265EXT: return "DecodeH265EXT";
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case VideoCodecOperationFlagBitsKHR::eEncodeH264: return "EncodeH264";
+      case VideoCodecOperationFlagBitsKHR::eEncodeH265: return "EncodeH265";
+      case VideoCodecOperationFlagBitsKHR::eDecodeH264: return "DecodeH264";
+      case VideoCodecOperationFlagBitsKHR::eDecodeH265: return "DecodeH265";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6595,6 +7036,8 @@
     switch ( value )
     {
       case VideoSessionCreateFlagBitsKHR::eProtectedContent: return "ProtectedContent";
+      case VideoSessionCreateFlagBitsKHR::eAllowEncodeParameterOptimizations: return "AllowEncodeParameterOptimizations";
+      case VideoSessionCreateFlagBitsKHR::eInlineQueries: return "InlineQueries";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6604,10 +7047,8 @@
     switch ( value )
     {
       case VideoCodingControlFlagBitsKHR::eReset: return "Reset";
-#  if defined( VK_ENABLE_BETA_EXTENSIONS )
       case VideoCodingControlFlagBitsKHR::eEncodeRateControl: return "EncodeRateControl";
-      case VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer: return "EncodeRateControlLayer";
-#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case VideoCodingControlFlagBitsKHR::eEncodeQualityLevel: return "EncodeQualityLevel";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6619,6 +7060,7 @@
       case QueryResultStatusKHR::eError: return "Error";
       case QueryResultStatusKHR::eNotReady: return "NotReady";
       case QueryResultStatusKHR::eComplete: return "Complete";
+      case QueryResultStatusKHR::eInsufficientBitstreamBufferRange: return "InsufficientBitstreamBufferRange";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -6637,9 +7079,7 @@
   {
     return "(void)";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_decode_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoDecodeCapabilityFlagBitsKHR value )
@@ -6668,7 +7108,6 @@
   {
     return "(void)";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_EXT_transform_feedback ===
 
@@ -6677,184 +7116,163 @@
     return "(void)";
   }
 
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h264 ===
+  //=== VK_KHR_video_encode_h264 ===
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceEnabled: return "Direct8X8InferenceEnabled";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceDisabled: return "Direct8X8InferenceDisabled";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eSeparateColourPlane: return "SeparateColourPlane";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eQpprimeYZeroTransformBypass: return "QpprimeYZeroTransformBypass";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eScalingLists: return "ScalingLists";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eHrdCompliance: return "HrdCompliance";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
-      case VideoEncodeH264CapabilityFlagBitsEXT::ePicInitQpMinus26: return "PicInitQpMinus26";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPred: return "WeightedPred";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredExplicit: return "WeightedBipredExplicit";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredImplicit: return "WeightedBipredImplicit";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPredNoTable: return "WeightedPredNoTable";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eCabac: return "Cabac";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eCavlc: return "Cavlc";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDisableDirectSpatialMvPred: return "DisableDirectSpatialMvPred";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eSliceMbCount: return "SliceMbCount";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eRowUnalignedSlice: return "RowUnalignedSlice";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eDifferentSliceType: return "DifferentSliceType";
-      case VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL1List: return "BFrameInL1List";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eHrdCompliance: return "HrdCompliance";
+      case VideoEncodeH264CapabilityFlagBitsKHR::ePredictionWeightTableGenerated: return "PredictionWeightTableGenerated";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eRowUnalignedSlice: return "RowUnalignedSlice";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eDifferentSliceType: return "DifferentSliceType";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL0List: return "BFrameInL0List";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eBFrameInL1List: return "BFrameInL1List";
+      case VideoEncodeH264CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp: return "PerPictureTypeMinMaxQp";
+      case VideoEncodeH264CapabilityFlagBitsKHR::ePerSliceConstantQp: return "PerSliceConstantQp";
+      case VideoEncodeH264CapabilityFlagBitsKHR::eGeneratePrefixNalu: return "GeneratePrefixNalu";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264StdFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH264InputModeFlagBitsEXT::eFrame: return "Frame";
-      case VideoEncodeH264InputModeFlagBitsEXT::eSlice: return "Slice";
-      case VideoEncodeH264InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
+      case VideoEncodeH264StdFlagBitsKHR::eSeparateColorPlaneFlagSet: return "SeparateColorPlaneFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eQpprimeYZeroTransformBypassFlagSet: return "QpprimeYZeroTransformBypassFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eScalingMatrixPresentFlagSet: return "ScalingMatrixPresentFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eChromaQpIndexOffset: return "ChromaQpIndexOffset";
+      case VideoEncodeH264StdFlagBitsKHR::eSecondChromaQpIndexOffset: return "SecondChromaQpIndexOffset";
+      case VideoEncodeH264StdFlagBitsKHR::ePicInitQpMinus26: return "PicInitQpMinus26";
+      case VideoEncodeH264StdFlagBitsKHR::eWeightedPredFlagSet: return "WeightedPredFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcExplicit: return "WeightedBipredIdcExplicit";
+      case VideoEncodeH264StdFlagBitsKHR::eWeightedBipredIdcImplicit: return "WeightedBipredIdcImplicit";
+      case VideoEncodeH264StdFlagBitsKHR::eTransform8X8ModeFlagSet: return "Transform8X8ModeFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eDirectSpatialMvPredFlagUnset: return "DirectSpatialMvPredFlagUnset";
+      case VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagUnset: return "EntropyCodingModeFlagUnset";
+      case VideoEncodeH264StdFlagBitsKHR::eEntropyCodingModeFlagSet: return "EntropyCodingModeFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eDirect8X8InferenceFlagUnset: return "Direct8X8InferenceFlagUnset";
+      case VideoEncodeH264StdFlagBitsKHR::eConstrainedIntraPredFlagSet: return "ConstrainedIntraPredFlagSet";
+      case VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
+      case VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
+      case VideoEncodeH264StdFlagBitsKHR::eDeblockingFilterPartial: return "DeblockingFilterPartial";
+      case VideoEncodeH264StdFlagBitsKHR::eSliceQpDelta: return "SliceQpDelta";
+      case VideoEncodeH264StdFlagBitsKHR::eDifferentSliceQpDelta: return "DifferentSliceQpDelta";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264RateControlFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH264OutputModeFlagBitsEXT::eFrame: return "Frame";
-      case VideoEncodeH264OutputModeFlagBitsEXT::eSlice: return "Slice";
-      case VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
+      case VideoEncodeH264RateControlFlagBitsKHR::eAttemptHrdCompliance: return "AttemptHrdCompliance";
+      case VideoEncodeH264RateControlFlagBitsKHR::eRegularGop: return "RegularGop";
+      case VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternFlat: return "ReferencePatternFlat";
+      case VideoEncodeH264RateControlFlagBitsKHR::eReferencePatternDyadic: return "ReferencePatternDyadic";
+      case VideoEncodeH264RateControlFlagBitsKHR::eTemporalLayerPatternDyadic: return "TemporalLayerPatternDyadic";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264RateControlStructureEXT value )
+  //=== VK_KHR_video_encode_h265 ===
+
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH264RateControlStructureEXT::eUnknown: return "Unknown";
-      case VideoEncodeH264RateControlStructureEXT::eFlat: return "Flat";
-      case VideoEncodeH264RateControlStructureEXT::eDyadic: return "Dyadic";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_encode_h265 ===
-
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsEXT value )
-  {
-    switch ( value )
-    {
-      case VideoEncodeH265CapabilityFlagBitsEXT::eSeparateColourPlane: return "SeparateColourPlane";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eScalingLists: return "ScalingLists";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eSampleAdaptiveOffsetEnabled: return "SampleAdaptiveOffsetEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::ePcmEnable: return "PcmEnable";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eSpsTemporalMvpEnabled: return "SpsTemporalMvpEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eHrdCompliance: return "HrdCompliance";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eInitQpMinus26: return "InitQpMinus26";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eLog2ParallelMergeLevelMinus2: return "Log2ParallelMergeLevelMinus2";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eSignDataHidingEnabled: return "SignDataHidingEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipEnabled: return "TransformSkipEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipDisabled: return "TransformSkipDisabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::ePpsSliceChromaQpOffsetsPresent: return "PpsSliceChromaQpOffsetsPresent";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPred: return "WeightedPred";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBipred: return "WeightedBipred";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPredNoTable: return "WeightedPredNoTable";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eTransquantBypassEnabled: return "TransquantBypassEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eEntropyCodingSyncEnabled: return "EntropyCodingSyncEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterOverrideEnabled: return "DeblockingFilterOverrideEnabled";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerFrame: return "MultipleTilePerFrame";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerTile: return "MultipleSlicePerTile";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerSlice: return "MultipleTilePerSlice";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eSliceSegmentCtbCount: return "SliceSegmentCtbCount";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eRowUnalignedSliceSegment: return "RowUnalignedSliceSegment";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eDependentSliceSegment: return "DependentSliceSegment";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eDifferentSliceType: return "DifferentSliceType";
-      case VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL1List: return "BFrameInL1List";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eHrdCompliance: return "HrdCompliance";
+      case VideoEncodeH265CapabilityFlagBitsKHR::ePredictionWeightTableGenerated: return "PredictionWeightTableGenerated";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eRowUnalignedSliceSegment: return "RowUnalignedSliceSegment";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eDifferentSliceSegmentType: return "DifferentSliceSegmentType";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL0List: return "BFrameInL0List";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eBFrameInL1List: return "BFrameInL1List";
+      case VideoEncodeH265CapabilityFlagBitsKHR::ePerPictureTypeMinMaxQp: return "PerPictureTypeMinMaxQp";
+      case VideoEncodeH265CapabilityFlagBitsKHR::ePerSliceSegmentConstantQp: return "PerSliceSegmentConstantQp";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eMultipleTilesPerSliceSegment: return "MultipleTilesPerSliceSegment";
+      case VideoEncodeH265CapabilityFlagBitsKHR::eMultipleSliceSegmentsPerTile: return "MultipleSliceSegmentsPerTile";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265StdFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH265InputModeFlagBitsEXT::eFrame: return "Frame";
-      case VideoEncodeH265InputModeFlagBitsEXT::eSliceSegment: return "SliceSegment";
-      case VideoEncodeH265InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
+      case VideoEncodeH265StdFlagBitsKHR::eSeparateColorPlaneFlagSet: return "SeparateColorPlaneFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eSampleAdaptiveOffsetEnabledFlagSet: return "SampleAdaptiveOffsetEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eScalingListDataPresentFlagSet: return "ScalingListDataPresentFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::ePcmEnabledFlagSet: return "PcmEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eSpsTemporalMvpEnabledFlagSet: return "SpsTemporalMvpEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eInitQpMinus26: return "InitQpMinus26";
+      case VideoEncodeH265StdFlagBitsKHR::eWeightedPredFlagSet: return "WeightedPredFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eWeightedBipredFlagSet: return "WeightedBipredFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eLog2ParallelMergeLevelMinus2: return "Log2ParallelMergeLevelMinus2";
+      case VideoEncodeH265StdFlagBitsKHR::eSignDataHidingEnabledFlagSet: return "SignDataHidingEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagSet: return "TransformSkipEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eTransformSkipEnabledFlagUnset: return "TransformSkipEnabledFlagUnset";
+      case VideoEncodeH265StdFlagBitsKHR::ePpsSliceChromaQpOffsetsPresentFlagSet: return "PpsSliceChromaQpOffsetsPresentFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eTransquantBypassEnabledFlagSet: return "TransquantBypassEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eConstrainedIntraPredFlagSet: return "ConstrainedIntraPredFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eEntropyCodingSyncEnabledFlagSet: return "EntropyCodingSyncEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eDeblockingFilterOverrideEnabledFlagSet: return "DeblockingFilterOverrideEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentsEnabledFlagSet: return "DependentSliceSegmentsEnabledFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eDependentSliceSegmentFlagSet: return "DependentSliceSegmentFlagSet";
+      case VideoEncodeH265StdFlagBitsKHR::eSliceQpDelta: return "SliceQpDelta";
+      case VideoEncodeH265StdFlagBitsKHR::eDifferentSliceQpDelta: return "DifferentSliceQpDelta";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH265OutputModeFlagBitsEXT::eFrame: return "Frame";
-      case VideoEncodeH265OutputModeFlagBitsEXT::eSliceSegment: return "SliceSegment";
-      case VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
+      case VideoEncodeH265CtbSizeFlagBitsKHR::e16: return "16";
+      case VideoEncodeH265CtbSizeFlagBitsKHR::e32: return "32";
+      case VideoEncodeH265CtbSizeFlagBitsKHR::e64: return "64";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265TransformBlockSizeFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH265CtbSizeFlagBitsEXT::e16: return "16";
-      case VideoEncodeH265CtbSizeFlagBitsEXT::e32: return "32";
-      case VideoEncodeH265CtbSizeFlagBitsEXT::e64: return "64";
+      case VideoEncodeH265TransformBlockSizeFlagBitsKHR::e4: return "4";
+      case VideoEncodeH265TransformBlockSizeFlagBitsKHR::e8: return "8";
+      case VideoEncodeH265TransformBlockSizeFlagBitsKHR::e16: return "16";
+      case VideoEncodeH265TransformBlockSizeFlagBitsKHR::e32: return "32";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265TransformBlockSizeFlagBitsEXT value )
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265RateControlFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH265TransformBlockSizeFlagBitsEXT::e4: return "4";
-      case VideoEncodeH265TransformBlockSizeFlagBitsEXT::e8: return "8";
-      case VideoEncodeH265TransformBlockSizeFlagBitsEXT::e16: return "16";
-      case VideoEncodeH265TransformBlockSizeFlagBitsEXT::e32: return "32";
+      case VideoEncodeH265RateControlFlagBitsKHR::eAttemptHrdCompliance: return "AttemptHrdCompliance";
+      case VideoEncodeH265RateControlFlagBitsKHR::eRegularGop: return "RegularGop";
+      case VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternFlat: return "ReferencePatternFlat";
+      case VideoEncodeH265RateControlFlagBitsKHR::eReferencePatternDyadic: return "ReferencePatternDyadic";
+      case VideoEncodeH265RateControlFlagBitsKHR::eTemporalSubLayerPatternDyadic: return "TemporalSubLayerPatternDyadic";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265RateControlStructureEXT value )
+  //=== VK_KHR_video_decode_h264 ===
+
+  VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagBitsKHR value )
   {
     switch ( value )
     {
-      case VideoEncodeH265RateControlStructureEXT::eUnknown: return "Unknown";
-      case VideoEncodeH265RateControlStructureEXT::eFlat: return "Flat";
-      case VideoEncodeH265RateControlStructureEXT::eDyadic: return "Dyadic";
+      case VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive: return "Progressive";
+      case VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedInterleavedLines: return "InterlacedInterleavedLines";
+      case VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedSeparatePlanes: return "InterlacedSeparatePlanes";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
-  //=== VK_EXT_video_decode_h264 ===
-
-  VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagBitsEXT value )
-  {
-    switch ( value )
-    {
-      case VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive: return "Progressive";
-      case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines: return "InterlacedInterleavedLines";
-      case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes: return "InterlacedSeparatePlanes";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_AMD_shader_info ===
 
@@ -7264,6 +7682,10 @@
       case BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapUpdateEXT: return "AllowOpacityMicromapUpdateEXT";
       case BuildAccelerationStructureFlagBitsKHR::eAllowDisableOpacityMicromapsEXT: return "AllowDisableOpacityMicromapsEXT";
       case BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT: return "AllowOpacityMicromapDataUpdateEXT";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case BuildAccelerationStructureFlagBitsKHR::eAllowDisplacementMicromapUpdateNV: return "AllowDisplacementMicromapUpdateNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case BuildAccelerationStructureFlagBitsKHR::eAllowDataAccess: return "AllowDataAccess";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -7322,6 +7744,31 @@
     }
   }
 
+  //=== VK_KHR_ray_tracing_pipeline ===
+
+  VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
+  {
+    switch ( value )
+    {
+      case RayTracingShaderGroupTypeKHR::eGeneral: return "General";
+      case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup";
+      case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
+  {
+    switch ( value )
+    {
+      case ShaderGroupShaderKHR::eGeneral: return "General";
+      case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit";
+      case ShaderGroupShaderKHR::eAnyHit: return "AnyHit";
+      case ShaderGroupShaderKHR::eIntersection: return "Intersection";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   //=== VK_NV_framebuffer_mixed_samples ===
 
   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
@@ -7411,20 +7858,6 @@
     return "(void)";
   }
 
-  //=== VK_EXT_calibrated_timestamps ===
-
-  VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
-  {
-    switch ( value )
-    {
-      case TimeDomainEXT::eDevice: return "Device";
-      case TimeDomainEXT::eClockMonotonic: return "ClockMonotonic";
-      case TimeDomainEXT::eClockMonotonicRaw: return "ClockMonotonicRaw";
-      case TimeDomainEXT::eQueryPerformanceCounter: return "QueryPerformanceCounter";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_KHR_global_priority ===
 
   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityKHR value )
@@ -7576,39 +8009,6 @@
     }
   }
 
-  //=== VK_NV_cooperative_matrix ===
-
-  VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
-  {
-    switch ( value )
-    {
-      case ScopeNV::eDevice: return "Device";
-      case ScopeNV::eWorkgroup: return "Workgroup";
-      case ScopeNV::eSubgroup: return "Subgroup";
-      case ScopeNV::eQueueFamily: return "QueueFamily";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
-  {
-    switch ( value )
-    {
-      case ComponentTypeNV::eFloat16: return "Float16";
-      case ComponentTypeNV::eFloat32: return "Float32";
-      case ComponentTypeNV::eFloat64: return "Float64";
-      case ComponentTypeNV::eSint8: return "Sint8";
-      case ComponentTypeNV::eSint16: return "Sint16";
-      case ComponentTypeNV::eSint32: return "Sint32";
-      case ComponentTypeNV::eSint64: return "Sint64";
-      case ComponentTypeNV::eUint8: return "Uint8";
-      case ComponentTypeNV::eUint16: return "Uint16";
-      case ComponentTypeNV::eUint32: return "Uint32";
-      case ComponentTypeNV::eUint64: return "Uint64";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_NV_coverage_reduction_mode ===
 
   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
@@ -7689,6 +8089,24 @@
     }
   }
 
+  //=== VK_EXT_host_image_copy ===
+
+  VULKAN_HPP_INLINE std::string to_string( HostImageCopyFlagBitsEXT value )
+  {
+    switch ( value )
+    {
+      case HostImageCopyFlagBitsEXT::eMemcpy: return "Memcpy";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_KHR_map_memory2 ===
+
+  VULKAN_HPP_INLINE std::string to_string( MemoryUnmapFlagBitsKHR )
+  {
+    return "(void)";
+  }
+
   //=== VK_EXT_surface_maintenance1 ===
 
   VULKAN_HPP_INLINE std::string to_string( PresentScalingFlagBitsEXT value )
@@ -7737,6 +8155,8 @@
       case IndirectCommandsTokenTypeNV::eDraw: return "Draw";
       case IndirectCommandsTokenTypeNV::eDrawTasks: return "DrawTasks";
       case IndirectCommandsTokenTypeNV::eDrawMeshTasks: return "DrawMeshTasks";
+      case IndirectCommandsTokenTypeNV::ePipeline: return "Pipeline";
+      case IndirectCommandsTokenTypeNV::eDispatch: return "Dispatch";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -7752,6 +8172,19 @@
     }
   }
 
+  //=== VK_EXT_depth_bias_control ===
+
+  VULKAN_HPP_INLINE std::string to_string( DepthBiasRepresentationEXT value )
+  {
+    switch ( value )
+    {
+      case DepthBiasRepresentationEXT::eLeastRepresentableValueFormat: return "LeastRepresentableValueFormat";
+      case DepthBiasRepresentationEXT::eLeastRepresentableValueForceUnorm: return "LeastRepresentableValueForceUnorm";
+      case DepthBiasRepresentationEXT::eFloat: return "Float";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   //=== VK_EXT_device_memory_report ===
 
   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
@@ -7772,18 +8205,6 @@
     return "(void)";
   }
 
-  //=== VK_EXT_pipeline_creation_cache_control ===
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineCacheCreateFlagBits::eExternallySynchronized: return "ExternallySynchronized";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
   //=== VK_KHR_video_encode_queue ===
 
   VULKAN_HPP_INLINE std::string to_string( VideoEncodeCapabilityFlagBitsKHR value )
@@ -7791,6 +8212,18 @@
     switch ( value )
     {
       case VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes: return "PrecedingExternallyEncodedBytes";
+      case VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit: return "InsufficientstreamBufferRangeDetectionBit";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( VideoEncodeFeedbackFlagBitsKHR value )
+  {
+    switch ( value )
+    {
+      case VideoEncodeFeedbackFlagBitsKHR::estreamBufferOffsetBit: return "streamBufferOffsetBit";
+      case VideoEncodeFeedbackFlagBitsKHR::estreamBytesWrittenBit: return "streamBytesWrittenBit";
+      case VideoEncodeFeedbackFlagBitsKHR::estreamHasOverridesBit: return "streamHasOverridesBit";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -7837,7 +8270,8 @@
   {
     switch ( value )
     {
-      case VideoEncodeRateControlModeFlagBitsKHR::eNone: return "None";
+      case VideoEncodeRateControlModeFlagBitsKHR::eDefault: return "Default";
+      case VideoEncodeRateControlModeFlagBitsKHR::eDisabled: return "Disabled";
       case VideoEncodeRateControlModeFlagBitsKHR::eCbr: return "Cbr";
       case VideoEncodeRateControlModeFlagBitsKHR::eVbr: return "Vbr";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
@@ -7853,7 +8287,6 @@
   {
     return "(void)";
   }
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
 
   //=== VK_NV_device_diagnostics_config ===
 
@@ -7901,15 +8334,6 @@
     }
   }
 
-  VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineLayoutCreateFlagBits::eIndependentSetsEXT: return "IndependentSetsEXT";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_NV_fragment_shading_rate_enums ===
 
   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
@@ -8047,31 +8471,6 @@
   }
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
 
-  //=== VK_KHR_ray_tracing_pipeline ===
-
-  VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
-  {
-    switch ( value )
-    {
-      case RayTracingShaderGroupTypeKHR::eGeneral: return "General";
-      case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup";
-      case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
-  {
-    switch ( value )
-    {
-      case ShaderGroupShaderKHR::eGeneral: return "General";
-      case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit";
-      case ShaderGroupShaderKHR::eAnyHit: return "AnyHit";
-      case ShaderGroupShaderKHR::eIntersection: return "Intersection";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_EXT_device_address_binding_report ===
 
   VULKAN_HPP_INLINE std::string to_string( DeviceAddressBindingFlagBitsEXT value )
@@ -8115,6 +8514,17 @@
   }
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
 
+  //=== VK_EXT_frame_boundary ===
+
+  VULKAN_HPP_INLINE std::string to_string( FrameBoundaryFlagBitsEXT value )
+  {
+    switch ( value )
+    {
+      case FrameBoundaryFlagBitsEXT::eFrameEnd: return "FrameEnd";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
   //=== VK_QNX_screen_surface ===
 
@@ -8131,6 +8541,9 @@
     switch ( value )
     {
       case MicromapTypeEXT::eOpacityMicromap: return "OpacityMicromap";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case MicromapTypeEXT::eDisplacementMicromapNV: return "DisplacementMicromapNV";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -8198,6 +8611,32 @@
     }
   }
 
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+  //=== VK_NV_displacement_micromap ===
+
+  VULKAN_HPP_INLINE std::string to_string( DisplacementMicromapFormatNV value )
+  {
+    switch ( value )
+    {
+      case DisplacementMicromapFormatNV::e64Triangles64Bytes: return "64Triangles64Bytes";
+      case DisplacementMicromapFormatNV::e256Triangles128Bytes: return "256Triangles128Bytes";
+      case DisplacementMicromapFormatNV::e1024Triangles128Bytes: return "1024Triangles128Bytes";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+  //=== VK_ARM_scheduling_controls ===
+
+  VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceSchedulingControlsFlagBitsARM value )
+  {
+    switch ( value )
+    {
+      case PhysicalDeviceSchedulingControlsFlagBitsARM::eShaderCoreCount: return "ShaderCoreCount";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   //=== VK_NV_memory_decompression ===
 
   VULKAN_HPP_INLINE std::string to_string( MemoryDecompressionMethodFlagBitsNV value )
@@ -8250,27 +8689,6 @@
     return "(void)";
   }
 
-  //=== VK_EXT_rasterization_order_attachment_access ===
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT: return "RasterizationOrderAttachmentAccessEXT";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
-  VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value )
-  {
-    switch ( value )
-    {
-      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT: return "RasterizationOrderAttachmentDepthAccessEXT";
-      case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT: return "RasterizationOrderAttachmentStencilAccessEXT";
-      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
-    }
-  }
-
   //=== VK_NV_optical_flow ===
 
   VULKAN_HPP_INLINE std::string to_string( OpticalFlowUsageFlagBitsNV value )
@@ -8351,6 +8769,112 @@
     }
   }
 
+  //=== VK_KHR_maintenance5 ===
+
+  VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits2KHR value )
+  {
+    switch ( value )
+    {
+      case PipelineCreateFlagBits2KHR::eDisableOptimization: return "DisableOptimization";
+      case PipelineCreateFlagBits2KHR::eAllowDerivatives: return "AllowDerivatives";
+      case PipelineCreateFlagBits2KHR::eDerivative: return "Derivative";
+      case PipelineCreateFlagBits2KHR::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex";
+      case PipelineCreateFlagBits2KHR::eDispatchBase: return "DispatchBase";
+      case PipelineCreateFlagBits2KHR::eDeferCompileNV: return "DeferCompileNV";
+      case PipelineCreateFlagBits2KHR::eCaptureStatistics: return "CaptureStatistics";
+      case PipelineCreateFlagBits2KHR::eCaptureInternalRepresentations: return "CaptureInternalRepresentations";
+      case PipelineCreateFlagBits2KHR::eFailOnPipelineCompileRequired: return "FailOnPipelineCompileRequired";
+      case PipelineCreateFlagBits2KHR::eEarlyReturnOnFailure: return "EarlyReturnOnFailure";
+      case PipelineCreateFlagBits2KHR::eLinkTimeOptimizationEXT: return "LinkTimeOptimizationEXT";
+      case PipelineCreateFlagBits2KHR::eRetainLinkTimeOptimizationInfoEXT: return "RetainLinkTimeOptimizationInfoEXT";
+      case PipelineCreateFlagBits2KHR::eLibrary: return "Library";
+      case PipelineCreateFlagBits2KHR::eRayTracingSkipTriangles: return "RayTracingSkipTriangles";
+      case PipelineCreateFlagBits2KHR::eRayTracingSkipAabbs: return "RayTracingSkipAabbs";
+      case PipelineCreateFlagBits2KHR::eRayTracingNoNullAnyHitShaders: return "RayTracingNoNullAnyHitShaders";
+      case PipelineCreateFlagBits2KHR::eRayTracingNoNullClosestHitShaders: return "RayTracingNoNullClosestHitShaders";
+      case PipelineCreateFlagBits2KHR::eRayTracingNoNullMissShaders: return "RayTracingNoNullMissShaders";
+      case PipelineCreateFlagBits2KHR::eRayTracingNoNullIntersectionShaders: return "RayTracingNoNullIntersectionShaders";
+      case PipelineCreateFlagBits2KHR::eRayTracingShaderGroupHandleCaptureReplay: return "RayTracingShaderGroupHandleCaptureReplay";
+      case PipelineCreateFlagBits2KHR::eIndirectBindableNV: return "IndirectBindableNV";
+      case PipelineCreateFlagBits2KHR::eRayTracingAllowMotionNV: return "RayTracingAllowMotionNV";
+      case PipelineCreateFlagBits2KHR::eRenderingFragmentShadingRateAttachment: return "RenderingFragmentShadingRateAttachment";
+      case PipelineCreateFlagBits2KHR::eRenderingFragmentDensityMapAttachmentEXT: return "RenderingFragmentDensityMapAttachmentEXT";
+      case PipelineCreateFlagBits2KHR::eRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
+      case PipelineCreateFlagBits2KHR::eColorAttachmentFeedbackLoopEXT: return "ColorAttachmentFeedbackLoopEXT";
+      case PipelineCreateFlagBits2KHR::eDepthStencilAttachmentFeedbackLoopEXT: return "DepthStencilAttachmentFeedbackLoopEXT";
+      case PipelineCreateFlagBits2KHR::eNoProtectedAccessEXT: return "NoProtectedAccessEXT";
+      case PipelineCreateFlagBits2KHR::eProtectedAccessOnlyEXT: return "ProtectedAccessOnlyEXT";
+      case PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
+      case PipelineCreateFlagBits2KHR::eDescriptorBufferEXT: return "DescriptorBufferEXT";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits2KHR value )
+  {
+    switch ( value )
+    {
+      case BufferUsageFlagBits2KHR::eTransferSrc: return "TransferSrc";
+      case BufferUsageFlagBits2KHR::eTransferDst: return "TransferDst";
+      case BufferUsageFlagBits2KHR::eUniformTexelBuffer: return "UniformTexelBuffer";
+      case BufferUsageFlagBits2KHR::eStorageTexelBuffer: return "StorageTexelBuffer";
+      case BufferUsageFlagBits2KHR::eUniformBuffer: return "UniformBuffer";
+      case BufferUsageFlagBits2KHR::eStorageBuffer: return "StorageBuffer";
+      case BufferUsageFlagBits2KHR::eIndexBuffer: return "IndexBuffer";
+      case BufferUsageFlagBits2KHR::eVertexBuffer: return "VertexBuffer";
+      case BufferUsageFlagBits2KHR::eIndirectBuffer: return "IndirectBuffer";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case BufferUsageFlagBits2KHR::eExecutionGraphScratchAMDX: return "ExecutionGraphScratchAMDX";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case BufferUsageFlagBits2KHR::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
+      case BufferUsageFlagBits2KHR::eShaderBindingTable: return "ShaderBindingTable";
+      case BufferUsageFlagBits2KHR::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT";
+      case BufferUsageFlagBits2KHR::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT";
+      case BufferUsageFlagBits2KHR::eVideoDecodeSrc: return "VideoDecodeSrc";
+      case BufferUsageFlagBits2KHR::eVideoDecodeDst: return "VideoDecodeDst";
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+      case BufferUsageFlagBits2KHR::eVideoEncodeDst: return "VideoEncodeDst";
+      case BufferUsageFlagBits2KHR::eVideoEncodeSrc: return "VideoEncodeSrc";
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+      case BufferUsageFlagBits2KHR::eShaderDeviceAddress: return "ShaderDeviceAddress";
+      case BufferUsageFlagBits2KHR::eAccelerationStructureBuildInputReadOnly: return "AccelerationStructureBuildInputReadOnly";
+      case BufferUsageFlagBits2KHR::eAccelerationStructureStorage: return "AccelerationStructureStorage";
+      case BufferUsageFlagBits2KHR::eSamplerDescriptorBufferEXT: return "SamplerDescriptorBufferEXT";
+      case BufferUsageFlagBits2KHR::eResourceDescriptorBufferEXT: return "ResourceDescriptorBufferEXT";
+      case BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT: return "PushDescriptorsDescriptorBufferEXT";
+      case BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT: return "MicromapBuildInputReadOnlyEXT";
+      case BufferUsageFlagBits2KHR::eMicromapStorageEXT: return "MicromapStorageEXT";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_EXT_shader_object ===
+
+  VULKAN_HPP_INLINE std::string to_string( ShaderCreateFlagBitsEXT value )
+  {
+    switch ( value )
+    {
+      case ShaderCreateFlagBitsEXT::eLinkStage: return "LinkStage";
+      case ShaderCreateFlagBitsEXT::eAllowVaryingSubgroupSize: return "AllowVaryingSubgroupSize";
+      case ShaderCreateFlagBitsEXT::eRequireFullSubgroups: return "RequireFullSubgroups";
+      case ShaderCreateFlagBitsEXT::eNoTaskShader: return "NoTaskShader";
+      case ShaderCreateFlagBitsEXT::eDispatchBase: return "DispatchBase";
+      case ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
+      case ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment: return "FragmentDensityMapAttachment";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( ShaderCodeTypeEXT value )
+  {
+    switch ( value )
+    {
+      case ShaderCodeTypeEXT::eBinary: return "Binary";
+      case ShaderCodeTypeEXT::eSpirv: return "Spirv";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
   //=== VK_NV_ray_tracing_invocation_reorder ===
 
   VULKAN_HPP_INLINE std::string to_string( RayTracingInvocationReorderModeNV value )
@@ -8363,5 +8887,140 @@
     }
   }
 
+  //=== VK_EXT_layer_settings ===
+
+  VULKAN_HPP_INLINE std::string to_string( LayerSettingTypeEXT value )
+  {
+    switch ( value )
+    {
+      case LayerSettingTypeEXT::eBool32: return "Bool32";
+      case LayerSettingTypeEXT::eInt32: return "Int32";
+      case LayerSettingTypeEXT::eInt64: return "Int64";
+      case LayerSettingTypeEXT::eUint32: return "Uint32";
+      case LayerSettingTypeEXT::eUint64: return "Uint64";
+      case LayerSettingTypeEXT::eFloat32: return "Float32";
+      case LayerSettingTypeEXT::eFloat64: return "Float64";
+      case LayerSettingTypeEXT::eString: return "String";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_NV_low_latency2 ===
+
+  VULKAN_HPP_INLINE std::string to_string( LatencyMarkerNV value )
+  {
+    switch ( value )
+    {
+      case LatencyMarkerNV::eSimulationStart: return "SimulationStart";
+      case LatencyMarkerNV::eSimulationEnd: return "SimulationEnd";
+      case LatencyMarkerNV::eRendersubmitStart: return "RendersubmitStart";
+      case LatencyMarkerNV::eRendersubmitEnd: return "RendersubmitEnd";
+      case LatencyMarkerNV::ePresentStart: return "PresentStart";
+      case LatencyMarkerNV::ePresentEnd: return "PresentEnd";
+      case LatencyMarkerNV::eInputSample: return "InputSample";
+      case LatencyMarkerNV::eTriggerFlash: return "TriggerFlash";
+      case LatencyMarkerNV::eOutOfBandRendersubmitStart: return "OutOfBandRendersubmitStart";
+      case LatencyMarkerNV::eOutOfBandRendersubmitEnd: return "OutOfBandRendersubmitEnd";
+      case LatencyMarkerNV::eOutOfBandPresentStart: return "OutOfBandPresentStart";
+      case LatencyMarkerNV::eOutOfBandPresentEnd: return "OutOfBandPresentEnd";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( OutOfBandQueueTypeNV value )
+  {
+    switch ( value )
+    {
+      case OutOfBandQueueTypeNV::eRender: return "Render";
+      case OutOfBandQueueTypeNV::ePresent: return "Present";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_KHR_cooperative_matrix ===
+
+  VULKAN_HPP_INLINE std::string to_string( ScopeKHR value )
+  {
+    switch ( value )
+    {
+      case ScopeKHR::eDevice: return "Device";
+      case ScopeKHR::eWorkgroup: return "Workgroup";
+      case ScopeKHR::eSubgroup: return "Subgroup";
+      case ScopeKHR::eQueueFamily: return "QueueFamily";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( ComponentTypeKHR value )
+  {
+    switch ( value )
+    {
+      case ComponentTypeKHR::eFloat16: return "Float16";
+      case ComponentTypeKHR::eFloat32: return "Float32";
+      case ComponentTypeKHR::eFloat64: return "Float64";
+      case ComponentTypeKHR::eSint8: return "Sint8";
+      case ComponentTypeKHR::eSint16: return "Sint16";
+      case ComponentTypeKHR::eSint32: return "Sint32";
+      case ComponentTypeKHR::eSint64: return "Sint64";
+      case ComponentTypeKHR::eUint8: return "Uint8";
+      case ComponentTypeKHR::eUint16: return "Uint16";
+      case ComponentTypeKHR::eUint32: return "Uint32";
+      case ComponentTypeKHR::eUint64: return "Uint64";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_QCOM_image_processing2 ===
+
+  VULKAN_HPP_INLINE std::string to_string( BlockMatchWindowCompareModeQCOM value )
+  {
+    switch ( value )
+    {
+      case BlockMatchWindowCompareModeQCOM::eMin: return "Min";
+      case BlockMatchWindowCompareModeQCOM::eMax: return "Max";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_QCOM_filter_cubic_weights ===
+
+  VULKAN_HPP_INLINE std::string to_string( CubicFilterWeightsQCOM value )
+  {
+    switch ( value )
+    {
+      case CubicFilterWeightsQCOM::eCatmullRom: return "CatmullRom";
+      case CubicFilterWeightsQCOM::eZeroTangentCardinal: return "ZeroTangentCardinal";
+      case CubicFilterWeightsQCOM::eBSpline: return "BSpline";
+      case CubicFilterWeightsQCOM::eMitchellNetravali: return "MitchellNetravali";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_MSFT_layered_driver ===
+
+  VULKAN_HPP_INLINE std::string to_string( LayeredDriverUnderlyingApiMSFT value )
+  {
+    switch ( value )
+    {
+      case LayeredDriverUnderlyingApiMSFT::eNone: return "None";
+      case LayeredDriverUnderlyingApiMSFT::eD3D12: return "D3D12";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_KHR_calibrated_timestamps ===
+
+  VULKAN_HPP_INLINE std::string to_string( TimeDomainKHR value )
+  {
+    switch ( value )
+    {
+      case TimeDomainKHR::eDevice: return "Device";
+      case TimeDomainKHR::eClockMonotonic: return "ClockMonotonic";
+      case TimeDomainKHR::eClockMonotonicRaw: return "ClockMonotonicRaw";
+      case TimeDomainKHR::eQueryPerformanceCounter: return "QueryPerformanceCounter";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
 }  // namespace VULKAN_HPP_NAMESPACE
 #endif
diff --git a/include/vulkan/vulkan_vi.h b/include/vulkan/vulkan_vi.h
index 0355e7a..c145f4a 100644
--- a/include/vulkan/vulkan_vi.h
+++ b/include/vulkan/vulkan_vi.h
@@ -2,7 +2,7 @@
 #define VULKAN_VI_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_NN_vi_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_NN_vi_surface 1
 #define VK_NN_VI_SURFACE_SPEC_VERSION     1
 #define VK_NN_VI_SURFACE_EXTENSION_NAME   "VK_NN_vi_surface"
diff --git a/include/vulkan/vulkan_video.hpp b/include/vulkan/vulkan_video.hpp
new file mode 100644
index 0000000..570dfa4
--- /dev/null
+++ b/include/vulkan/vulkan_video.hpp
@@ -0,0 +1,2702 @@
+// Copyright 2021-2023 The Khronos Group Inc.
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+//
+
+// This header is generated from the Khronos Vulkan XML API Registry.
+
+#ifndef VULKAN_VIDEO_HPP
+#define VULKAN_VIDEO_HPP
+
+#include <vk_video/vulkan_video_codec_h264std.h>
+#include <vk_video/vulkan_video_codec_h264std_decode.h>
+#include <vk_video/vulkan_video_codec_h264std_encode.h>
+#include <vk_video/vulkan_video_codec_h265std.h>
+#include <vk_video/vulkan_video_codec_h265std_decode.h>
+#include <vk_video/vulkan_video_codec_h265std_encode.h>
+#include <vk_video/vulkan_video_codecs_common.h>
+#include <vulkan/vulkan.hpp>
+
+#if !defined( VULKAN_HPP_VIDEO_NAMESPACE )
+#  define VULKAN_HPP_VIDEO_NAMESPACE video
+#endif
+
+namespace VULKAN_HPP_NAMESPACE
+{
+  namespace VULKAN_HPP_VIDEO_NAMESPACE
+  {
+
+    //=============
+    //=== ENUMs ===
+    //=============
+
+    //=== vulkan_video_codec_h264std ===
+
+    enum class H264ChromaFormatIdc
+    {
+      eMonochrome = STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME,
+      e420        = STD_VIDEO_H264_CHROMA_FORMAT_IDC_420,
+      e422        = STD_VIDEO_H264_CHROMA_FORMAT_IDC_422,
+      e444        = STD_VIDEO_H264_CHROMA_FORMAT_IDC_444,
+      eInvalid    = STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID
+    };
+
+    enum class H264ProfileIdc
+    {
+      eBaseline          = STD_VIDEO_H264_PROFILE_IDC_BASELINE,
+      eMain              = STD_VIDEO_H264_PROFILE_IDC_MAIN,
+      eHigh              = STD_VIDEO_H264_PROFILE_IDC_HIGH,
+      eHigh444Predictive = STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE,
+      eInvalid           = STD_VIDEO_H264_PROFILE_IDC_INVALID
+    };
+
+    enum class H264LevelIdc
+    {
+      e1_0     = STD_VIDEO_H264_LEVEL_IDC_1_0,
+      e1_1     = STD_VIDEO_H264_LEVEL_IDC_1_1,
+      e1_2     = STD_VIDEO_H264_LEVEL_IDC_1_2,
+      e1_3     = STD_VIDEO_H264_LEVEL_IDC_1_3,
+      e2_0     = STD_VIDEO_H264_LEVEL_IDC_2_0,
+      e2_1     = STD_VIDEO_H264_LEVEL_IDC_2_1,
+      e2_2     = STD_VIDEO_H264_LEVEL_IDC_2_2,
+      e3_0     = STD_VIDEO_H264_LEVEL_IDC_3_0,
+      e3_1     = STD_VIDEO_H264_LEVEL_IDC_3_1,
+      e3_2     = STD_VIDEO_H264_LEVEL_IDC_3_2,
+      e4_0     = STD_VIDEO_H264_LEVEL_IDC_4_0,
+      e4_1     = STD_VIDEO_H264_LEVEL_IDC_4_1,
+      e4_2     = STD_VIDEO_H264_LEVEL_IDC_4_2,
+      e5_0     = STD_VIDEO_H264_LEVEL_IDC_5_0,
+      e5_1     = STD_VIDEO_H264_LEVEL_IDC_5_1,
+      e5_2     = STD_VIDEO_H264_LEVEL_IDC_5_2,
+      e6_0     = STD_VIDEO_H264_LEVEL_IDC_6_0,
+      e6_1     = STD_VIDEO_H264_LEVEL_IDC_6_1,
+      e6_2     = STD_VIDEO_H264_LEVEL_IDC_6_2,
+      eInvalid = STD_VIDEO_H264_LEVEL_IDC_INVALID
+    };
+
+    enum class H264PocType
+    {
+      e0       = STD_VIDEO_H264_POC_TYPE_0,
+      e1       = STD_VIDEO_H264_POC_TYPE_1,
+      e2       = STD_VIDEO_H264_POC_TYPE_2,
+      eInvalid = STD_VIDEO_H264_POC_TYPE_INVALID
+    };
+
+    enum class H264AspectRatioIdc
+    {
+      eUnspecified = STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED,
+      eSquare      = STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE,
+      e12_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11,
+      e10_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11,
+      e16_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11,
+      e40_33       = STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33,
+      e24_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11,
+      e20_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11,
+      e32_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11,
+      e80_33       = STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33,
+      e18_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11,
+      e15_11       = STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11,
+      e64_33       = STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33,
+      e160_99      = STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99,
+      e4_3         = STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3,
+      e3_2         = STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2,
+      e2_1         = STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1,
+      eExtendedSar = STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR,
+      eInvalid     = STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID
+    };
+
+    enum class H264WeightedBipredIdc
+    {
+      eDefault  = STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT,
+      eExplicit = STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT,
+      eImplicit = STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT,
+      eInvalid  = STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID
+    };
+
+    enum class H264ModificationOfPicNumsIdc
+    {
+      eShortTermSubtract = STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT,
+      eShortTermAdd      = STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD,
+      eLongTerm          = STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM,
+      eEnd               = STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END,
+      eInvalid           = STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID
+    };
+
+    enum class H264MemMgmtControlOp
+    {
+      eEnd                   = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END,
+      eUnmarkShortTerm       = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM,
+      eUnmarkLongTerm        = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM,
+      eMarkLongTerm          = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM,
+      eSetMaxLongTermIndex   = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX,
+      eUnmarkAll             = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL,
+      eMarkCurrentAsLongTerm = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM,
+      eInvalid               = STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID
+    };
+
+    enum class H264CabacInitIdc
+    {
+      e0       = STD_VIDEO_H264_CABAC_INIT_IDC_0,
+      e1       = STD_VIDEO_H264_CABAC_INIT_IDC_1,
+      e2       = STD_VIDEO_H264_CABAC_INIT_IDC_2,
+      eInvalid = STD_VIDEO_H264_CABAC_INIT_IDC_INVALID
+    };
+
+    enum class H264DisableDeblockingFilterIdc
+    {
+      eDisabled = STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED,
+      eEnabled  = STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED,
+      ePartial  = STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL,
+      eInvalid  = STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID
+    };
+
+    enum class H264SliceType
+    {
+      eP       = STD_VIDEO_H264_SLICE_TYPE_P,
+      eB       = STD_VIDEO_H264_SLICE_TYPE_B,
+      eI       = STD_VIDEO_H264_SLICE_TYPE_I,
+      eInvalid = STD_VIDEO_H264_SLICE_TYPE_INVALID
+    };
+
+    enum class H264PictureType
+    {
+      eP       = STD_VIDEO_H264_PICTURE_TYPE_P,
+      eB       = STD_VIDEO_H264_PICTURE_TYPE_B,
+      eI       = STD_VIDEO_H264_PICTURE_TYPE_I,
+      eIdr     = STD_VIDEO_H264_PICTURE_TYPE_IDR,
+      eInvalid = STD_VIDEO_H264_PICTURE_TYPE_INVALID
+    };
+
+    enum class H264NonVclNaluType
+    {
+      eSps           = STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS,
+      ePps           = STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS,
+      eAud           = STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD,
+      ePrefix        = STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX,
+      eEndOfSequence = STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE,
+      eEndOfStream   = STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM,
+      ePrecoded      = STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED,
+      eInvalid       = STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID
+    };
+
+    //=== vulkan_video_codec_h264std_decode ===
+
+    enum class DecodeH264FieldOrderCount
+    {
+      eTop     = STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP,
+      eBottom  = STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM,
+      eInvalid = STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID
+    };
+
+    //=== vulkan_video_codec_h265std ===
+
+    enum class H265ChromaFormatIdc
+    {
+      eMonochrome = STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME,
+      e420        = STD_VIDEO_H265_CHROMA_FORMAT_IDC_420,
+      e422        = STD_VIDEO_H265_CHROMA_FORMAT_IDC_422,
+      e444        = STD_VIDEO_H265_CHROMA_FORMAT_IDC_444,
+      eInvalid    = STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID
+    };
+
+    enum class H265ProfileIdc
+    {
+      eMain                  = STD_VIDEO_H265_PROFILE_IDC_MAIN,
+      eMain10                = STD_VIDEO_H265_PROFILE_IDC_MAIN_10,
+      eMainStillPicture      = STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE,
+      eFormatRangeExtensions = STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS,
+      eSccExtensions         = STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS,
+      eInvalid               = STD_VIDEO_H265_PROFILE_IDC_INVALID
+    };
+
+    enum class H265LevelIdc
+    {
+      e1_0     = STD_VIDEO_H265_LEVEL_IDC_1_0,
+      e2_0     = STD_VIDEO_H265_LEVEL_IDC_2_0,
+      e2_1     = STD_VIDEO_H265_LEVEL_IDC_2_1,
+      e3_0     = STD_VIDEO_H265_LEVEL_IDC_3_0,
+      e3_1     = STD_VIDEO_H265_LEVEL_IDC_3_1,
+      e4_0     = STD_VIDEO_H265_LEVEL_IDC_4_0,
+      e4_1     = STD_VIDEO_H265_LEVEL_IDC_4_1,
+      e5_0     = STD_VIDEO_H265_LEVEL_IDC_5_0,
+      e5_1     = STD_VIDEO_H265_LEVEL_IDC_5_1,
+      e5_2     = STD_VIDEO_H265_LEVEL_IDC_5_2,
+      e6_0     = STD_VIDEO_H265_LEVEL_IDC_6_0,
+      e6_1     = STD_VIDEO_H265_LEVEL_IDC_6_1,
+      e6_2     = STD_VIDEO_H265_LEVEL_IDC_6_2,
+      eInvalid = STD_VIDEO_H265_LEVEL_IDC_INVALID
+    };
+
+    enum class H265SliceType
+    {
+      eB       = STD_VIDEO_H265_SLICE_TYPE_B,
+      eP       = STD_VIDEO_H265_SLICE_TYPE_P,
+      eI       = STD_VIDEO_H265_SLICE_TYPE_I,
+      eInvalid = STD_VIDEO_H265_SLICE_TYPE_INVALID
+    };
+
+    enum class H265PictureType
+    {
+      eP       = STD_VIDEO_H265_PICTURE_TYPE_P,
+      eB       = STD_VIDEO_H265_PICTURE_TYPE_B,
+      eI       = STD_VIDEO_H265_PICTURE_TYPE_I,
+      eIdr     = STD_VIDEO_H265_PICTURE_TYPE_IDR,
+      eInvalid = STD_VIDEO_H265_PICTURE_TYPE_INVALID
+    };
+
+    enum class H265AspectRatioIdc
+    {
+      eUnspecified = STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED,
+      eSquare      = STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE,
+      e12_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11,
+      e10_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11,
+      e16_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11,
+      e40_33       = STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33,
+      e24_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11,
+      e20_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11,
+      e32_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11,
+      e80_33       = STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33,
+      e18_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11,
+      e15_11       = STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11,
+      e64_33       = STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33,
+      e160_99      = STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99,
+      e4_3         = STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3,
+      e3_2         = STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2,
+      e2_1         = STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1,
+      eExtendedSar = STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR,
+      eInvalid     = STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID
+    };
+
+    //===============
+    //=== STRUCTS ===
+    //===============
+
+    //=== vulkan_video_codec_h264std ===
+
+    struct H264SpsVuiFlags
+    {
+      using NativeType = StdVideoH264SpsVuiFlags;
+
+      operator StdVideoH264SpsVuiFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264SpsVuiFlags *>( this );
+      }
+
+      operator StdVideoH264SpsVuiFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264SpsVuiFlags *>( this );
+      }
+
+      bool operator==( H264SpsVuiFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( aspect_ratio_info_present_flag == rhs.aspect_ratio_info_present_flag ) && ( overscan_info_present_flag == rhs.overscan_info_present_flag ) &&
+               ( overscan_appropriate_flag == rhs.overscan_appropriate_flag ) && ( video_signal_type_present_flag == rhs.video_signal_type_present_flag ) &&
+               ( video_full_range_flag == rhs.video_full_range_flag ) && ( color_description_present_flag == rhs.color_description_present_flag ) &&
+               ( chroma_loc_info_present_flag == rhs.chroma_loc_info_present_flag ) && ( timing_info_present_flag == rhs.timing_info_present_flag ) &&
+               ( fixed_frame_rate_flag == rhs.fixed_frame_rate_flag ) && ( bitstream_restriction_flag == rhs.bitstream_restriction_flag ) &&
+               ( nal_hrd_parameters_present_flag == rhs.nal_hrd_parameters_present_flag ) &&
+               ( vcl_hrd_parameters_present_flag == rhs.vcl_hrd_parameters_present_flag );
+      }
+
+      bool operator!=( H264SpsVuiFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t aspect_ratio_info_present_flag  : 1;
+      uint32_t overscan_info_present_flag      : 1;
+      uint32_t overscan_appropriate_flag       : 1;
+      uint32_t video_signal_type_present_flag  : 1;
+      uint32_t video_full_range_flag           : 1;
+      uint32_t color_description_present_flag  : 1;
+      uint32_t chroma_loc_info_present_flag    : 1;
+      uint32_t timing_info_present_flag        : 1;
+      uint32_t fixed_frame_rate_flag           : 1;
+      uint32_t bitstream_restriction_flag      : 1;
+      uint32_t nal_hrd_parameters_present_flag : 1;
+      uint32_t vcl_hrd_parameters_present_flag : 1;
+    };
+
+    struct H264HrdParameters
+    {
+      using NativeType = StdVideoH264HrdParameters;
+
+      operator StdVideoH264HrdParameters const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264HrdParameters *>( this );
+      }
+
+      operator StdVideoH264HrdParameters &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264HrdParameters *>( this );
+      }
+
+      bool operator==( H264HrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( cpb_cnt_minus1 == rhs.cpb_cnt_minus1 ) && ( bit_rate_scale == rhs.bit_rate_scale ) && ( cpb_size_scale == rhs.cpb_size_scale ) &&
+               ( reserved1 == rhs.reserved1 ) && ( bit_rate_value_minus1 == rhs.bit_rate_value_minus1 ) &&
+               ( cpb_size_value_minus1 == rhs.cpb_size_value_minus1 ) && ( cbr_flag == rhs.cbr_flag ) &&
+               ( initial_cpb_removal_delay_length_minus1 == rhs.initial_cpb_removal_delay_length_minus1 ) &&
+               ( cpb_removal_delay_length_minus1 == rhs.cpb_removal_delay_length_minus1 ) &&
+               ( dpb_output_delay_length_minus1 == rhs.dpb_output_delay_length_minus1 ) && ( time_offset_length == rhs.time_offset_length );
+      }
+
+      bool operator!=( H264HrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint8_t                                                                          cpb_cnt_minus1                          = {};
+      uint8_t                                                                          bit_rate_scale                          = {};
+      uint8_t                                                                          cpb_size_scale                          = {};
+      uint8_t                                                                          reserved1                               = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> bit_rate_value_minus1                   = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> cpb_size_value_minus1                   = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE>  cbr_flag                                = {};
+      uint32_t                                                                         initial_cpb_removal_delay_length_minus1 = {};
+      uint32_t                                                                         cpb_removal_delay_length_minus1         = {};
+      uint32_t                                                                         dpb_output_delay_length_minus1          = {};
+      uint32_t                                                                         time_offset_length                      = {};
+    };
+
+    struct H264SequenceParameterSetVui
+    {
+      using NativeType = StdVideoH264SequenceParameterSetVui;
+
+      operator StdVideoH264SequenceParameterSetVui const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264SequenceParameterSetVui *>( this );
+      }
+
+      operator StdVideoH264SequenceParameterSetVui &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264SequenceParameterSetVui *>( this );
+      }
+
+      bool operator==( H264SequenceParameterSetVui const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( aspect_ratio_idc == rhs.aspect_ratio_idc ) && ( sar_width == rhs.sar_width ) && ( sar_height == rhs.sar_height ) &&
+               ( video_format == rhs.video_format ) && ( colour_primaries == rhs.colour_primaries ) &&
+               ( transfer_characteristics == rhs.transfer_characteristics ) && ( matrix_coefficients == rhs.matrix_coefficients ) &&
+               ( num_units_in_tick == rhs.num_units_in_tick ) && ( time_scale == rhs.time_scale ) && ( max_num_reorder_frames == rhs.max_num_reorder_frames ) &&
+               ( max_dec_frame_buffering == rhs.max_dec_frame_buffering ) && ( chroma_sample_loc_type_top_field == rhs.chroma_sample_loc_type_top_field ) &&
+               ( chroma_sample_loc_type_bottom_field == rhs.chroma_sample_loc_type_bottom_field ) && ( reserved1 == rhs.reserved1 ) &&
+               ( pHrdParameters == rhs.pHrdParameters );
+      }
+
+      bool operator!=( H264SequenceParameterSetVui const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags    flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc aspect_ratio_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc::eUnspecified;
+      uint16_t                                                                    sar_width                           = {};
+      uint16_t                                                                    sar_height                          = {};
+      uint8_t                                                                     video_format                        = {};
+      uint8_t                                                                     colour_primaries                    = {};
+      uint8_t                                                                     transfer_characteristics            = {};
+      uint8_t                                                                     matrix_coefficients                 = {};
+      uint32_t                                                                    num_units_in_tick                   = {};
+      uint32_t                                                                    time_scale                          = {};
+      uint8_t                                                                     max_num_reorder_frames              = {};
+      uint8_t                                                                     max_dec_frame_buffering             = {};
+      uint8_t                                                                     chroma_sample_loc_type_top_field    = {};
+      uint8_t                                                                     chroma_sample_loc_type_bottom_field = {};
+      uint32_t                                                                    reserved1                           = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters * pHrdParameters                      = {};
+    };
+
+    struct H264SpsFlags
+    {
+      using NativeType = StdVideoH264SpsFlags;
+
+      operator StdVideoH264SpsFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264SpsFlags *>( this );
+      }
+
+      operator StdVideoH264SpsFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264SpsFlags *>( this );
+      }
+
+      bool operator==( H264SpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( constraint_set0_flag == rhs.constraint_set0_flag ) && ( constraint_set1_flag == rhs.constraint_set1_flag ) &&
+               ( constraint_set2_flag == rhs.constraint_set2_flag ) && ( constraint_set3_flag == rhs.constraint_set3_flag ) &&
+               ( constraint_set4_flag == rhs.constraint_set4_flag ) && ( constraint_set5_flag == rhs.constraint_set5_flag ) &&
+               ( direct_8x8_inference_flag == rhs.direct_8x8_inference_flag ) && ( mb_adaptive_frame_field_flag == rhs.mb_adaptive_frame_field_flag ) &&
+               ( frame_mbs_only_flag == rhs.frame_mbs_only_flag ) && ( delta_pic_order_always_zero_flag == rhs.delta_pic_order_always_zero_flag ) &&
+               ( separate_colour_plane_flag == rhs.separate_colour_plane_flag ) &&
+               ( gaps_in_frame_num_value_allowed_flag == rhs.gaps_in_frame_num_value_allowed_flag ) &&
+               ( qpprime_y_zero_transform_bypass_flag == rhs.qpprime_y_zero_transform_bypass_flag ) && ( frame_cropping_flag == rhs.frame_cropping_flag ) &&
+               ( seq_scaling_matrix_present_flag == rhs.seq_scaling_matrix_present_flag ) && ( vui_parameters_present_flag == rhs.vui_parameters_present_flag );
+      }
+
+      bool operator!=( H264SpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t constraint_set0_flag                 : 1;
+      uint32_t constraint_set1_flag                 : 1;
+      uint32_t constraint_set2_flag                 : 1;
+      uint32_t constraint_set3_flag                 : 1;
+      uint32_t constraint_set4_flag                 : 1;
+      uint32_t constraint_set5_flag                 : 1;
+      uint32_t direct_8x8_inference_flag            : 1;
+      uint32_t mb_adaptive_frame_field_flag         : 1;
+      uint32_t frame_mbs_only_flag                  : 1;
+      uint32_t delta_pic_order_always_zero_flag     : 1;
+      uint32_t separate_colour_plane_flag           : 1;
+      uint32_t gaps_in_frame_num_value_allowed_flag : 1;
+      uint32_t qpprime_y_zero_transform_bypass_flag : 1;
+      uint32_t frame_cropping_flag                  : 1;
+      uint32_t seq_scaling_matrix_present_flag      : 1;
+      uint32_t vui_parameters_present_flag          : 1;
+    };
+
+    struct H264ScalingLists
+    {
+      using NativeType = StdVideoH264ScalingLists;
+
+      operator StdVideoH264ScalingLists const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264ScalingLists *>( this );
+      }
+
+      operator StdVideoH264ScalingLists &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264ScalingLists *>( this );
+      }
+
+      bool operator==( H264ScalingLists const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( scaling_list_present_mask == rhs.scaling_list_present_mask ) && ( use_default_scaling_matrix_mask == rhs.use_default_scaling_matrix_mask ) &&
+               ( ScalingList4x4 == rhs.ScalingList4x4 ) && ( ScalingList8x8 == rhs.ScalingList8x8 );
+      }
+
+      bool operator!=( H264ScalingLists const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint16_t scaling_list_present_mask       = {};
+      uint16_t use_default_scaling_matrix_mask = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS>
+        ScalingList4x4 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS>
+        ScalingList8x8 = {};
+    };
+
+    struct H264SequenceParameterSet
+    {
+      using NativeType = StdVideoH264SequenceParameterSet;
+
+      operator StdVideoH264SequenceParameterSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264SequenceParameterSet *>( this );
+      }
+
+      operator StdVideoH264SequenceParameterSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264SequenceParameterSet *>( this );
+      }
+
+      bool operator==( H264SequenceParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( profile_idc == rhs.profile_idc ) && ( level_idc == rhs.level_idc ) &&
+               ( chroma_format_idc == rhs.chroma_format_idc ) && ( seq_parameter_set_id == rhs.seq_parameter_set_id ) &&
+               ( bit_depth_luma_minus8 == rhs.bit_depth_luma_minus8 ) && ( bit_depth_chroma_minus8 == rhs.bit_depth_chroma_minus8 ) &&
+               ( log2_max_frame_num_minus4 == rhs.log2_max_frame_num_minus4 ) && ( pic_order_cnt_type == rhs.pic_order_cnt_type ) &&
+               ( offset_for_non_ref_pic == rhs.offset_for_non_ref_pic ) && ( offset_for_top_to_bottom_field == rhs.offset_for_top_to_bottom_field ) &&
+               ( log2_max_pic_order_cnt_lsb_minus4 == rhs.log2_max_pic_order_cnt_lsb_minus4 ) &&
+               ( num_ref_frames_in_pic_order_cnt_cycle == rhs.num_ref_frames_in_pic_order_cnt_cycle ) && ( max_num_ref_frames == rhs.max_num_ref_frames ) &&
+               ( reserved1 == rhs.reserved1 ) && ( pic_width_in_mbs_minus1 == rhs.pic_width_in_mbs_minus1 ) &&
+               ( pic_height_in_map_units_minus1 == rhs.pic_height_in_map_units_minus1 ) && ( frame_crop_left_offset == rhs.frame_crop_left_offset ) &&
+               ( frame_crop_right_offset == rhs.frame_crop_right_offset ) && ( frame_crop_top_offset == rhs.frame_crop_top_offset ) &&
+               ( frame_crop_bottom_offset == rhs.frame_crop_bottom_offset ) && ( reserved2 == rhs.reserved2 ) &&
+               ( pOffsetForRefFrame == rhs.pOffsetForRefFrame ) && ( pScalingLists == rhs.pScalingLists ) &&
+               ( pSequenceParameterSetVui == rhs.pSequenceParameterSetVui );
+      }
+
+      bool operator!=( H264SequenceParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags   flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc profile_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc::eBaseline;
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264LevelIdc        level_idc = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264LevelIdc::e1_0;
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc chroma_format_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc::eMonochrome;
+      uint8_t                                                       seq_parameter_set_id      = {};
+      uint8_t                                                       bit_depth_luma_minus8     = {};
+      uint8_t                                                       bit_depth_chroma_minus8   = {};
+      uint8_t                                                       log2_max_frame_num_minus4 = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PocType pic_order_cnt_type     = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PocType::e0;
+      int32_t                                                       offset_for_non_ref_pic = {};
+      int32_t                                                       offset_for_top_to_bottom_field                   = {};
+      uint8_t                                                       log2_max_pic_order_cnt_lsb_minus4                = {};
+      uint8_t                                                       num_ref_frames_in_pic_order_cnt_cycle            = {};
+      uint8_t                                                       max_num_ref_frames                               = {};
+      uint8_t                                                       reserved1                                        = {};
+      uint32_t                                                      pic_width_in_mbs_minus1                          = {};
+      uint32_t                                                      pic_height_in_map_units_minus1                   = {};
+      uint32_t                                                      frame_crop_left_offset                           = {};
+      uint32_t                                                      frame_crop_right_offset                          = {};
+      uint32_t                                                      frame_crop_top_offset                            = {};
+      uint32_t                                                      frame_crop_bottom_offset                         = {};
+      uint32_t                                                      reserved2                                        = {};
+      const int32_t *                                               pOffsetForRefFrame                               = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists *            pScalingLists            = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui * pSequenceParameterSetVui = {};
+    };
+
+    struct H264PpsFlags
+    {
+      using NativeType = StdVideoH264PpsFlags;
+
+      operator StdVideoH264PpsFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264PpsFlags *>( this );
+      }
+
+      operator StdVideoH264PpsFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264PpsFlags *>( this );
+      }
+
+      bool operator==( H264PpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( transform_8x8_mode_flag == rhs.transform_8x8_mode_flag ) && ( redundant_pic_cnt_present_flag == rhs.redundant_pic_cnt_present_flag ) &&
+               ( constrained_intra_pred_flag == rhs.constrained_intra_pred_flag ) &&
+               ( deblocking_filter_control_present_flag == rhs.deblocking_filter_control_present_flag ) && ( weighted_pred_flag == rhs.weighted_pred_flag ) &&
+               ( bottom_field_pic_order_in_frame_present_flag == rhs.bottom_field_pic_order_in_frame_present_flag ) &&
+               ( entropy_coding_mode_flag == rhs.entropy_coding_mode_flag ) && ( pic_scaling_matrix_present_flag == rhs.pic_scaling_matrix_present_flag );
+      }
+
+      bool operator!=( H264PpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t transform_8x8_mode_flag                      : 1;
+      uint32_t redundant_pic_cnt_present_flag               : 1;
+      uint32_t constrained_intra_pred_flag                  : 1;
+      uint32_t deblocking_filter_control_present_flag       : 1;
+      uint32_t weighted_pred_flag                           : 1;
+      uint32_t bottom_field_pic_order_in_frame_present_flag : 1;
+      uint32_t entropy_coding_mode_flag                     : 1;
+      uint32_t pic_scaling_matrix_present_flag              : 1;
+    };
+
+    struct H264PictureParameterSet
+    {
+      using NativeType = StdVideoH264PictureParameterSet;
+
+      operator StdVideoH264PictureParameterSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH264PictureParameterSet *>( this );
+      }
+
+      operator StdVideoH264PictureParameterSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH264PictureParameterSet *>( this );
+      }
+
+      bool operator==( H264PictureParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( seq_parameter_set_id == rhs.seq_parameter_set_id ) && ( pic_parameter_set_id == rhs.pic_parameter_set_id ) &&
+               ( num_ref_idx_l0_default_active_minus1 == rhs.num_ref_idx_l0_default_active_minus1 ) &&
+               ( num_ref_idx_l1_default_active_minus1 == rhs.num_ref_idx_l1_default_active_minus1 ) && ( weighted_bipred_idc == rhs.weighted_bipred_idc ) &&
+               ( pic_init_qp_minus26 == rhs.pic_init_qp_minus26 ) && ( pic_init_qs_minus26 == rhs.pic_init_qs_minus26 ) &&
+               ( chroma_qp_index_offset == rhs.chroma_qp_index_offset ) && ( second_chroma_qp_index_offset == rhs.second_chroma_qp_index_offset ) &&
+               ( pScalingLists == rhs.pScalingLists );
+      }
+
+      bool operator!=( H264PictureParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags          flags                                = {};
+      uint8_t                                                                 seq_parameter_set_id                 = {};
+      uint8_t                                                                 pic_parameter_set_id                 = {};
+      uint8_t                                                                 num_ref_idx_l0_default_active_minus1 = {};
+      uint8_t                                                                 num_ref_idx_l1_default_active_minus1 = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc weighted_bipred_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc::eDefault;
+      int8_t                                                                     pic_init_qp_minus26           = {};
+      int8_t                                                                     pic_init_qs_minus26           = {};
+      int8_t                                                                     chroma_qp_index_offset        = {};
+      int8_t                                                                     second_chroma_qp_index_offset = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists * pScalingLists                 = {};
+    };
+
+    //=== vulkan_video_codec_h264std_decode ===
+
+    struct DecodeH264PictureInfoFlags
+    {
+      using NativeType = StdVideoDecodeH264PictureInfoFlags;
+
+      operator StdVideoDecodeH264PictureInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH264PictureInfoFlags *>( this );
+      }
+
+      operator StdVideoDecodeH264PictureInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH264PictureInfoFlags *>( this );
+      }
+
+      bool operator==( DecodeH264PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( field_pic_flag == rhs.field_pic_flag ) && ( is_intra == rhs.is_intra ) && ( IdrPicFlag == rhs.IdrPicFlag ) &&
+               ( bottom_field_flag == rhs.bottom_field_flag ) && ( is_reference == rhs.is_reference ) &&
+               ( complementary_field_pair == rhs.complementary_field_pair );
+      }
+
+      bool operator!=( DecodeH264PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t field_pic_flag           : 1;
+      uint32_t is_intra                 : 1;
+      uint32_t IdrPicFlag               : 1;
+      uint32_t bottom_field_flag        : 1;
+      uint32_t is_reference             : 1;
+      uint32_t complementary_field_pair : 1;
+    };
+
+    struct DecodeH264PictureInfo
+    {
+      using NativeType = StdVideoDecodeH264PictureInfo;
+
+      operator StdVideoDecodeH264PictureInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH264PictureInfo *>( this );
+      }
+
+      operator StdVideoDecodeH264PictureInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH264PictureInfo *>( this );
+      }
+
+      bool operator==( DecodeH264PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( seq_parameter_set_id == rhs.seq_parameter_set_id ) && ( pic_parameter_set_id == rhs.pic_parameter_set_id ) &&
+               ( reserved1 == rhs.reserved1 ) && ( reserved2 == rhs.reserved2 ) && ( frame_num == rhs.frame_num ) && ( idr_pic_id == rhs.idr_pic_id ) &&
+               ( PicOrderCnt == rhs.PicOrderCnt );
+      }
+
+      bool operator!=( DecodeH264PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags                     flags                = {};
+      uint8_t                                                                                          seq_parameter_set_id = {};
+      uint8_t                                                                                          pic_parameter_set_id = {};
+      uint8_t                                                                                          reserved1            = {};
+      uint8_t                                                                                          reserved2            = {};
+      uint16_t                                                                                         frame_num            = {};
+      uint16_t                                                                                         idr_pic_id           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt          = {};
+    };
+
+    struct DecodeH264ReferenceInfoFlags
+    {
+      using NativeType = StdVideoDecodeH264ReferenceInfoFlags;
+
+      operator StdVideoDecodeH264ReferenceInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH264ReferenceInfoFlags *>( this );
+      }
+
+      operator StdVideoDecodeH264ReferenceInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH264ReferenceInfoFlags *>( this );
+      }
+
+      bool operator==( DecodeH264ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( top_field_flag == rhs.top_field_flag ) && ( bottom_field_flag == rhs.bottom_field_flag ) &&
+               ( used_for_long_term_reference == rhs.used_for_long_term_reference ) && ( is_non_existing == rhs.is_non_existing );
+      }
+
+      bool operator!=( DecodeH264ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t top_field_flag               : 1;
+      uint32_t bottom_field_flag            : 1;
+      uint32_t used_for_long_term_reference : 1;
+      uint32_t is_non_existing              : 1;
+    };
+
+    struct DecodeH264ReferenceInfo
+    {
+      using NativeType = StdVideoDecodeH264ReferenceInfo;
+
+      operator StdVideoDecodeH264ReferenceInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH264ReferenceInfo *>( this );
+      }
+
+      operator StdVideoDecodeH264ReferenceInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH264ReferenceInfo *>( this );
+      }
+
+      bool operator==( DecodeH264ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( FrameNum == rhs.FrameNum ) && ( reserved == rhs.reserved ) && ( PicOrderCnt == rhs.PicOrderCnt );
+      }
+
+      bool operator!=( DecodeH264ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags                   flags       = {};
+      uint16_t                                                                                         FrameNum    = {};
+      uint16_t                                                                                         reserved    = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt = {};
+    };
+
+    //=== vulkan_video_codec_h264std_encode ===
+
+    struct EncodeH264WeightTableFlags
+    {
+      using NativeType = StdVideoEncodeH264WeightTableFlags;
+
+      operator StdVideoEncodeH264WeightTableFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264WeightTableFlags *>( this );
+      }
+
+      operator StdVideoEncodeH264WeightTableFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264WeightTableFlags *>( this );
+      }
+
+      bool operator==( EncodeH264WeightTableFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( luma_weight_l0_flag == rhs.luma_weight_l0_flag ) && ( chroma_weight_l0_flag == rhs.chroma_weight_l0_flag ) &&
+               ( luma_weight_l1_flag == rhs.luma_weight_l1_flag ) && ( chroma_weight_l1_flag == rhs.chroma_weight_l1_flag );
+      }
+
+      bool operator!=( EncodeH264WeightTableFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t luma_weight_l0_flag   = {};
+      uint32_t chroma_weight_l0_flag = {};
+      uint32_t luma_weight_l1_flag   = {};
+      uint32_t chroma_weight_l1_flag = {};
+    };
+
+    struct EncodeH264WeightTable
+    {
+      using NativeType = StdVideoEncodeH264WeightTable;
+
+      operator StdVideoEncodeH264WeightTable const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264WeightTable *>( this );
+      }
+
+      operator StdVideoEncodeH264WeightTable &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264WeightTable *>( this );
+      }
+
+      bool operator==( EncodeH264WeightTable const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( luma_log2_weight_denom == rhs.luma_log2_weight_denom ) &&
+               ( chroma_log2_weight_denom == rhs.chroma_log2_weight_denom ) && ( luma_weight_l0 == rhs.luma_weight_l0 ) &&
+               ( luma_offset_l0 == rhs.luma_offset_l0 ) && ( chroma_weight_l0 == rhs.chroma_weight_l0 ) && ( chroma_offset_l0 == rhs.chroma_offset_l0 ) &&
+               ( luma_weight_l1 == rhs.luma_weight_l1 ) && ( luma_offset_l1 == rhs.luma_offset_l1 ) && ( chroma_weight_l1 == rhs.chroma_weight_l1 ) &&
+               ( chroma_offset_l1 == rhs.chroma_offset_l1 );
+      }
+
+      bool operator!=( EncodeH264WeightTable const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags                                    flags                    = {};
+      uint8_t                                                                                                         luma_log2_weight_denom   = {};
+      uint8_t                                                                                                         chroma_log2_weight_denom = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>                                   luma_weight_l0           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>                                   luma_offset_l0           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l0         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l0         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>                                   luma_weight_l1           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>                                   luma_offset_l1           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l1         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l1         = {};
+    };
+
+    struct EncodeH264SliceHeaderFlags
+    {
+      using NativeType = StdVideoEncodeH264SliceHeaderFlags;
+
+      operator StdVideoEncodeH264SliceHeaderFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264SliceHeaderFlags *>( this );
+      }
+
+      operator StdVideoEncodeH264SliceHeaderFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264SliceHeaderFlags *>( this );
+      }
+
+      bool operator==( EncodeH264SliceHeaderFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( direct_spatial_mv_pred_flag == rhs.direct_spatial_mv_pred_flag ) &&
+               ( num_ref_idx_active_override_flag == rhs.num_ref_idx_active_override_flag ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH264SliceHeaderFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t direct_spatial_mv_pred_flag      : 1;
+      uint32_t num_ref_idx_active_override_flag : 1;
+      uint32_t reserved                         : 30;
+    };
+
+    struct EncodeH264PictureInfoFlags
+    {
+      using NativeType = StdVideoEncodeH264PictureInfoFlags;
+
+      operator StdVideoEncodeH264PictureInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264PictureInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH264PictureInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264PictureInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH264PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( IdrPicFlag == rhs.IdrPicFlag ) && ( is_reference == rhs.is_reference ) &&
+               ( no_output_of_prior_pics_flag == rhs.no_output_of_prior_pics_flag ) && ( long_term_reference_flag == rhs.long_term_reference_flag ) &&
+               ( adaptive_ref_pic_marking_mode_flag == rhs.adaptive_ref_pic_marking_mode_flag ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH264PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t IdrPicFlag                         : 1;
+      uint32_t is_reference                       : 1;
+      uint32_t no_output_of_prior_pics_flag       : 1;
+      uint32_t long_term_reference_flag           : 1;
+      uint32_t adaptive_ref_pic_marking_mode_flag : 1;
+      uint32_t reserved                           : 27;
+    };
+
+    struct EncodeH264ReferenceInfoFlags
+    {
+      using NativeType = StdVideoEncodeH264ReferenceInfoFlags;
+
+      operator StdVideoEncodeH264ReferenceInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264ReferenceInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH264ReferenceInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264ReferenceInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH264ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( used_for_long_term_reference == rhs.used_for_long_term_reference ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH264ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t used_for_long_term_reference : 1;
+      uint32_t reserved                     : 31;
+    };
+
+    struct EncodeH264ReferenceListsInfoFlags
+    {
+      using NativeType = StdVideoEncodeH264ReferenceListsInfoFlags;
+
+      operator StdVideoEncodeH264ReferenceListsInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264ReferenceListsInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH264ReferenceListsInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264ReferenceListsInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH264ReferenceListsInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( ref_pic_list_modification_flag_l0 == rhs.ref_pic_list_modification_flag_l0 ) &&
+               ( ref_pic_list_modification_flag_l1 == rhs.ref_pic_list_modification_flag_l1 ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH264ReferenceListsInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t ref_pic_list_modification_flag_l0 : 1;
+      uint32_t ref_pic_list_modification_flag_l1 : 1;
+      uint32_t reserved                          : 30;
+    };
+
+    struct EncodeH264RefListModEntry
+    {
+      using NativeType = StdVideoEncodeH264RefListModEntry;
+
+      operator StdVideoEncodeH264RefListModEntry const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264RefListModEntry *>( this );
+      }
+
+      operator StdVideoEncodeH264RefListModEntry &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264RefListModEntry *>( this );
+      }
+
+      bool operator==( EncodeH264RefListModEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( modification_of_pic_nums_idc == rhs.modification_of_pic_nums_idc ) && ( abs_diff_pic_num_minus1 == rhs.abs_diff_pic_num_minus1 ) &&
+               ( long_term_pic_num == rhs.long_term_pic_num );
+      }
+
+      bool operator!=( EncodeH264RefListModEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ModificationOfPicNumsIdc modification_of_pic_nums_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ModificationOfPicNumsIdc::eShortTermSubtract;
+      uint16_t abs_diff_pic_num_minus1 = {};
+      uint16_t long_term_pic_num       = {};
+    };
+
+    struct EncodeH264RefPicMarkingEntry
+    {
+      using NativeType = StdVideoEncodeH264RefPicMarkingEntry;
+
+      operator StdVideoEncodeH264RefPicMarkingEntry const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264RefPicMarkingEntry *>( this );
+      }
+
+      operator StdVideoEncodeH264RefPicMarkingEntry &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264RefPicMarkingEntry *>( this );
+      }
+
+      bool operator==( EncodeH264RefPicMarkingEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( memory_management_control_operation == rhs.memory_management_control_operation ) &&
+               ( difference_of_pic_nums_minus1 == rhs.difference_of_pic_nums_minus1 ) && ( long_term_pic_num == rhs.long_term_pic_num ) &&
+               ( long_term_frame_idx == rhs.long_term_frame_idx ) && ( max_long_term_frame_idx_plus1 == rhs.max_long_term_frame_idx_plus1 );
+      }
+
+      bool operator!=( EncodeH264RefPicMarkingEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp memory_management_control_operation =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp::eEnd;
+      uint16_t difference_of_pic_nums_minus1 = {};
+      uint16_t long_term_pic_num             = {};
+      uint16_t long_term_frame_idx           = {};
+      uint16_t max_long_term_frame_idx_plus1 = {};
+    };
+
+    struct EncodeH264ReferenceListsInfo
+    {
+      using NativeType = StdVideoEncodeH264ReferenceListsInfo;
+
+      operator StdVideoEncodeH264ReferenceListsInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264ReferenceListsInfo *>( this );
+      }
+
+      operator StdVideoEncodeH264ReferenceListsInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264ReferenceListsInfo *>( this );
+      }
+
+      bool operator==( EncodeH264ReferenceListsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( num_ref_idx_l0_active_minus1 == rhs.num_ref_idx_l0_active_minus1 ) &&
+               ( num_ref_idx_l1_active_minus1 == rhs.num_ref_idx_l1_active_minus1 ) && ( RefPicList0 == rhs.RefPicList0 ) &&
+               ( RefPicList1 == rhs.RefPicList1 ) && ( refList0ModOpCount == rhs.refList0ModOpCount ) && ( refList1ModOpCount == rhs.refList1ModOpCount ) &&
+               ( refPicMarkingOpCount == rhs.refPicMarkingOpCount ) && ( reserved1 == rhs.reserved1 ) &&
+               ( pRefList0ModOperations == rhs.pRefList0ModOperations ) && ( pRefList1ModOperations == rhs.pRefList1ModOperations ) &&
+               ( pRefPicMarkingOperations == rhs.pRefPicMarkingOperations );
+      }
+
+      bool operator!=( EncodeH264ReferenceListsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfoFlags    flags                        = {};
+      uint8_t                                                                                num_ref_idx_l0_active_minus1 = {};
+      uint8_t                                                                                num_ref_idx_l1_active_minus1 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>         RefPicList0                  = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF>         RefPicList1                  = {};
+      uint8_t                                                                                refList0ModOpCount           = {};
+      uint8_t                                                                                refList1ModOpCount           = {};
+      uint8_t                                                                                refPicMarkingOpCount         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 7>                                       reserved1                    = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry *    pRefList0ModOperations       = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry *    pRefList1ModOperations       = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefPicMarkingEntry * pRefPicMarkingOperations     = {};
+    };
+
+    struct EncodeH264PictureInfo
+    {
+      using NativeType = StdVideoEncodeH264PictureInfo;
+
+      operator StdVideoEncodeH264PictureInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264PictureInfo *>( this );
+      }
+
+      operator StdVideoEncodeH264PictureInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264PictureInfo *>( this );
+      }
+
+      bool operator==( EncodeH264PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( seq_parameter_set_id == rhs.seq_parameter_set_id ) && ( pic_parameter_set_id == rhs.pic_parameter_set_id ) &&
+               ( idr_pic_id == rhs.idr_pic_id ) && ( primary_pic_type == rhs.primary_pic_type ) && ( frame_num == rhs.frame_num ) &&
+               ( PicOrderCnt == rhs.PicOrderCnt ) && ( temporal_id == rhs.temporal_id ) && ( reserved1 == rhs.reserved1 ) && ( pRefLists == rhs.pRefLists );
+      }
+
+      bool operator!=( EncodeH264PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfoFlags flags                = {};
+      uint8_t                                                                      seq_parameter_set_id = {};
+      uint8_t                                                                      pic_parameter_set_id = {};
+      uint16_t                                                                     idr_pic_id           = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType            primary_pic_type =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType::eP;
+      uint32_t                                                                               frame_num   = {};
+      int32_t                                                                                PicOrderCnt = {};
+      uint8_t                                                                                temporal_id = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 3>                                       reserved1   = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfo * pRefLists   = {};
+    };
+
+    struct EncodeH264ReferenceInfo
+    {
+      using NativeType = StdVideoEncodeH264ReferenceInfo;
+
+      operator StdVideoEncodeH264ReferenceInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264ReferenceInfo *>( this );
+      }
+
+      operator StdVideoEncodeH264ReferenceInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264ReferenceInfo *>( this );
+      }
+
+      bool operator==( EncodeH264ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( primary_pic_type == rhs.primary_pic_type ) && ( FrameNum == rhs.FrameNum ) && ( PicOrderCnt == rhs.PicOrderCnt ) &&
+               ( long_term_pic_num == rhs.long_term_pic_num ) && ( long_term_frame_idx == rhs.long_term_frame_idx ) && ( temporal_id == rhs.temporal_id );
+      }
+
+      bool operator!=( EncodeH264ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfoFlags flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType              primary_pic_type =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType::eP;
+      uint32_t FrameNum            = {};
+      int32_t  PicOrderCnt         = {};
+      uint16_t long_term_pic_num   = {};
+      uint16_t long_term_frame_idx = {};
+      uint8_t  temporal_id         = {};
+    };
+
+    struct EncodeH264SliceHeader
+    {
+      using NativeType = StdVideoEncodeH264SliceHeader;
+
+      operator StdVideoEncodeH264SliceHeader const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH264SliceHeader *>( this );
+      }
+
+      operator StdVideoEncodeH264SliceHeader &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH264SliceHeader *>( this );
+      }
+
+      bool operator==( EncodeH264SliceHeader const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( first_mb_in_slice == rhs.first_mb_in_slice ) && ( slice_type == rhs.slice_type ) &&
+               ( slice_alpha_c0_offset_div2 == rhs.slice_alpha_c0_offset_div2 ) && ( slice_beta_offset_div2 == rhs.slice_beta_offset_div2 ) &&
+               ( slice_qp_delta == rhs.slice_qp_delta ) && ( reserved1 == rhs.reserved1 ) && ( cabac_init_idc == rhs.cabac_init_idc ) &&
+               ( disable_deblocking_filter_idc == rhs.disable_deblocking_filter_idc ) && ( pWeightTable == rhs.pWeightTable );
+      }
+
+      bool operator!=( EncodeH264SliceHeader const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeaderFlags flags             = {};
+      uint32_t                                                                     first_mb_in_slice = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType    slice_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType::eP;
+      int8_t                                                             slice_alpha_c0_offset_div2 = {};
+      int8_t                                                             slice_beta_offset_div2     = {};
+      int8_t                                                             slice_qp_delta             = {};
+      uint8_t                                                            reserved1                  = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc cabac_init_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc::e0;
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc disable_deblocking_filter_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc::eDisabled;
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable * pWeightTable = {};
+    };
+
+    //=== vulkan_video_codec_h265std ===
+
+    struct H265DecPicBufMgr
+    {
+      using NativeType = StdVideoH265DecPicBufMgr;
+
+      operator StdVideoH265DecPicBufMgr const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265DecPicBufMgr *>( this );
+      }
+
+      operator StdVideoH265DecPicBufMgr &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265DecPicBufMgr *>( this );
+      }
+
+      bool operator==( H265DecPicBufMgr const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( max_latency_increase_plus1 == rhs.max_latency_increase_plus1 ) && ( max_dec_pic_buffering_minus1 == rhs.max_dec_pic_buffering_minus1 ) &&
+               ( max_num_reorder_pics == rhs.max_num_reorder_pics );
+      }
+
+      bool operator!=( H265DecPicBufMgr const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_latency_increase_plus1   = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE>  max_dec_pic_buffering_minus1 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE>  max_num_reorder_pics         = {};
+    };
+
+    struct H265SubLayerHrdParameters
+    {
+      using NativeType = StdVideoH265SubLayerHrdParameters;
+
+      operator StdVideoH265SubLayerHrdParameters const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265SubLayerHrdParameters *>( this );
+      }
+
+      operator StdVideoH265SubLayerHrdParameters &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265SubLayerHrdParameters *>( this );
+      }
+
+      bool operator==( H265SubLayerHrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( bit_rate_value_minus1 == rhs.bit_rate_value_minus1 ) && ( cpb_size_value_minus1 == rhs.cpb_size_value_minus1 ) &&
+               ( cpb_size_du_value_minus1 == rhs.cpb_size_du_value_minus1 ) && ( bit_rate_du_value_minus1 == rhs.bit_rate_du_value_minus1 ) &&
+               ( cbr_flag == rhs.cbr_flag );
+      }
+
+      bool operator!=( H265SubLayerHrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_value_minus1    = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_value_minus1    = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_du_value_minus1 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_du_value_minus1 = {};
+      uint32_t                                                                         cbr_flag                 = {};
+    };
+
+    struct H265HrdFlags
+    {
+      using NativeType = StdVideoH265HrdFlags;
+
+      operator StdVideoH265HrdFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265HrdFlags *>( this );
+      }
+
+      operator StdVideoH265HrdFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265HrdFlags *>( this );
+      }
+
+      bool operator==( H265HrdFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( nal_hrd_parameters_present_flag == rhs.nal_hrd_parameters_present_flag ) &&
+               ( vcl_hrd_parameters_present_flag == rhs.vcl_hrd_parameters_present_flag ) &&
+               ( sub_pic_hrd_params_present_flag == rhs.sub_pic_hrd_params_present_flag ) &&
+               ( sub_pic_cpb_params_in_pic_timing_sei_flag == rhs.sub_pic_cpb_params_in_pic_timing_sei_flag ) &&
+               ( fixed_pic_rate_general_flag == rhs.fixed_pic_rate_general_flag ) && ( fixed_pic_rate_within_cvs_flag == rhs.fixed_pic_rate_within_cvs_flag ) &&
+               ( low_delay_hrd_flag == rhs.low_delay_hrd_flag );
+      }
+
+      bool operator!=( H265HrdFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t nal_hrd_parameters_present_flag           : 1;
+      uint32_t vcl_hrd_parameters_present_flag           : 1;
+      uint32_t sub_pic_hrd_params_present_flag           : 1;
+      uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1;
+      uint32_t fixed_pic_rate_general_flag               : 8;
+      uint32_t fixed_pic_rate_within_cvs_flag            : 8;
+      uint32_t low_delay_hrd_flag                        : 8;
+    };
+
+    struct H265HrdParameters
+    {
+      using NativeType = StdVideoH265HrdParameters;
+
+      operator StdVideoH265HrdParameters const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265HrdParameters *>( this );
+      }
+
+      operator StdVideoH265HrdParameters &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265HrdParameters *>( this );
+      }
+
+      bool operator==( H265HrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( tick_divisor_minus2 == rhs.tick_divisor_minus2 ) &&
+               ( du_cpb_removal_delay_increment_length_minus1 == rhs.du_cpb_removal_delay_increment_length_minus1 ) &&
+               ( dpb_output_delay_du_length_minus1 == rhs.dpb_output_delay_du_length_minus1 ) && ( bit_rate_scale == rhs.bit_rate_scale ) &&
+               ( cpb_size_scale == rhs.cpb_size_scale ) && ( cpb_size_du_scale == rhs.cpb_size_du_scale ) &&
+               ( initial_cpb_removal_delay_length_minus1 == rhs.initial_cpb_removal_delay_length_minus1 ) &&
+               ( au_cpb_removal_delay_length_minus1 == rhs.au_cpb_removal_delay_length_minus1 ) &&
+               ( dpb_output_delay_length_minus1 == rhs.dpb_output_delay_length_minus1 ) && ( cpb_cnt_minus1 == rhs.cpb_cnt_minus1 ) &&
+               ( elemental_duration_in_tc_minus1 == rhs.elemental_duration_in_tc_minus1 ) && ( reserved == rhs.reserved ) &&
+               ( pSubLayerHrdParametersNal == rhs.pSubLayerHrdParametersNal ) && ( pSubLayerHrdParametersVcl == rhs.pSubLayerHrdParametersVcl );
+      }
+
+      bool operator!=( H265HrdParameters const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdFlags                      flags                                        = {};
+      uint8_t                                                                             tick_divisor_minus2                          = {};
+      uint8_t                                                                             du_cpb_removal_delay_increment_length_minus1 = {};
+      uint8_t                                                                             dpb_output_delay_du_length_minus1            = {};
+      uint8_t                                                                             bit_rate_scale                               = {};
+      uint8_t                                                                             cpb_size_scale                               = {};
+      uint8_t                                                                             cpb_size_du_scale                            = {};
+      uint8_t                                                                             initial_cpb_removal_delay_length_minus1      = {};
+      uint8_t                                                                             au_cpb_removal_delay_length_minus1           = {};
+      uint8_t                                                                             dpb_output_delay_length_minus1               = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE>   cpb_cnt_minus1                               = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE>  elemental_duration_in_tc_minus1              = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, 3>                                   reserved                                     = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters * pSubLayerHrdParametersNal                    = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters * pSubLayerHrdParametersVcl                    = {};
+    };
+
+    struct H265VpsFlags
+    {
+      using NativeType = StdVideoH265VpsFlags;
+
+      operator StdVideoH265VpsFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265VpsFlags *>( this );
+      }
+
+      operator StdVideoH265VpsFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265VpsFlags *>( this );
+      }
+
+      bool operator==( H265VpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( vps_temporal_id_nesting_flag == rhs.vps_temporal_id_nesting_flag ) &&
+               ( vps_sub_layer_ordering_info_present_flag == rhs.vps_sub_layer_ordering_info_present_flag ) &&
+               ( vps_timing_info_present_flag == rhs.vps_timing_info_present_flag ) &&
+               ( vps_poc_proportional_to_timing_flag == rhs.vps_poc_proportional_to_timing_flag );
+      }
+
+      bool operator!=( H265VpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t vps_temporal_id_nesting_flag             : 1;
+      uint32_t vps_sub_layer_ordering_info_present_flag : 1;
+      uint32_t vps_timing_info_present_flag             : 1;
+      uint32_t vps_poc_proportional_to_timing_flag      : 1;
+    };
+
+    struct H265ProfileTierLevelFlags
+    {
+      using NativeType = StdVideoH265ProfileTierLevelFlags;
+
+      operator StdVideoH265ProfileTierLevelFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265ProfileTierLevelFlags *>( this );
+      }
+
+      operator StdVideoH265ProfileTierLevelFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265ProfileTierLevelFlags *>( this );
+      }
+
+      bool operator==( H265ProfileTierLevelFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( general_tier_flag == rhs.general_tier_flag ) && ( general_progressive_source_flag == rhs.general_progressive_source_flag ) &&
+               ( general_interlaced_source_flag == rhs.general_interlaced_source_flag ) &&
+               ( general_non_packed_constraint_flag == rhs.general_non_packed_constraint_flag ) &&
+               ( general_frame_only_constraint_flag == rhs.general_frame_only_constraint_flag );
+      }
+
+      bool operator!=( H265ProfileTierLevelFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t general_tier_flag                  : 1;
+      uint32_t general_progressive_source_flag    : 1;
+      uint32_t general_interlaced_source_flag     : 1;
+      uint32_t general_non_packed_constraint_flag : 1;
+      uint32_t general_frame_only_constraint_flag : 1;
+    };
+
+    struct H265ProfileTierLevel
+    {
+      using NativeType = StdVideoH265ProfileTierLevel;
+
+      operator StdVideoH265ProfileTierLevel const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265ProfileTierLevel *>( this );
+      }
+
+      operator StdVideoH265ProfileTierLevel &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265ProfileTierLevel *>( this );
+      }
+
+      bool operator==( H265ProfileTierLevel const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( general_profile_idc == rhs.general_profile_idc ) && ( general_level_idc == rhs.general_level_idc );
+      }
+
+      bool operator!=( H265ProfileTierLevel const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevelFlags flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc            general_profile_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc::eMain;
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc general_level_idc = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc::e1_0;
+    };
+
+    struct H265VideoParameterSet
+    {
+      using NativeType = StdVideoH265VideoParameterSet;
+
+      operator StdVideoH265VideoParameterSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265VideoParameterSet *>( this );
+      }
+
+      operator StdVideoH265VideoParameterSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265VideoParameterSet *>( this );
+      }
+
+      bool operator==( H265VideoParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( vps_video_parameter_set_id == rhs.vps_video_parameter_set_id ) &&
+               ( vps_max_sub_layers_minus1 == rhs.vps_max_sub_layers_minus1 ) && ( reserved1 == rhs.reserved1 ) && ( reserved2 == rhs.reserved2 ) &&
+               ( vps_num_units_in_tick == rhs.vps_num_units_in_tick ) && ( vps_time_scale == rhs.vps_time_scale ) &&
+               ( vps_num_ticks_poc_diff_one_minus1 == rhs.vps_num_ticks_poc_diff_one_minus1 ) && ( reserved3 == rhs.reserved3 ) &&
+               ( pDecPicBufMgr == rhs.pDecPicBufMgr ) && ( pHrdParameters == rhs.pHrdParameters ) && ( pProfileTierLevel == rhs.pProfileTierLevel );
+      }
+
+      bool operator!=( H265VideoParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VpsFlags                 flags                             = {};
+      uint8_t                                                                        vps_video_parameter_set_id        = {};
+      uint8_t                                                                        vps_max_sub_layers_minus1         = {};
+      uint8_t                                                                        reserved1                         = {};
+      uint8_t                                                                        reserved2                         = {};
+      uint32_t                                                                       vps_num_units_in_tick             = {};
+      uint32_t                                                                       vps_time_scale                    = {};
+      uint32_t                                                                       vps_num_ticks_poc_diff_one_minus1 = {};
+      uint32_t                                                                       reserved3                         = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr *     pDecPicBufMgr                     = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters *    pHrdParameters                    = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel * pProfileTierLevel                 = {};
+    };
+
+    struct H265ScalingLists
+    {
+      using NativeType = StdVideoH265ScalingLists;
+
+      operator StdVideoH265ScalingLists const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265ScalingLists *>( this );
+      }
+
+      operator StdVideoH265ScalingLists &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265ScalingLists *>( this );
+      }
+
+      bool operator==( H265ScalingLists const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( ScalingList4x4 == rhs.ScalingList4x4 ) && ( ScalingList8x8 == rhs.ScalingList8x8 ) && ( ScalingList16x16 == rhs.ScalingList16x16 ) &&
+               ( ScalingList32x32 == rhs.ScalingList32x32 ) && ( ScalingListDCCoef16x16 == rhs.ScalingListDCCoef16x16 ) &&
+               ( ScalingListDCCoef32x32 == rhs.ScalingListDCCoef32x32 );
+      }
+
+      bool operator!=( H265ScalingLists const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS>
+        ScalingList4x4 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS>
+        ScalingList8x8 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS>
+        ScalingList16x16 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS>
+                                                                                                 ScalingList32x32       = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS> ScalingListDCCoef16x16 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS> ScalingListDCCoef32x32 = {};
+    };
+
+    struct H265SpsVuiFlags
+    {
+      using NativeType = StdVideoH265SpsVuiFlags;
+
+      operator StdVideoH265SpsVuiFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265SpsVuiFlags *>( this );
+      }
+
+      operator StdVideoH265SpsVuiFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265SpsVuiFlags *>( this );
+      }
+
+      bool operator==( H265SpsVuiFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( aspect_ratio_info_present_flag == rhs.aspect_ratio_info_present_flag ) && ( overscan_info_present_flag == rhs.overscan_info_present_flag ) &&
+               ( overscan_appropriate_flag == rhs.overscan_appropriate_flag ) && ( video_signal_type_present_flag == rhs.video_signal_type_present_flag ) &&
+               ( video_full_range_flag == rhs.video_full_range_flag ) && ( colour_description_present_flag == rhs.colour_description_present_flag ) &&
+               ( chroma_loc_info_present_flag == rhs.chroma_loc_info_present_flag ) &&
+               ( neutral_chroma_indication_flag == rhs.neutral_chroma_indication_flag ) && ( field_seq_flag == rhs.field_seq_flag ) &&
+               ( frame_field_info_present_flag == rhs.frame_field_info_present_flag ) && ( default_display_window_flag == rhs.default_display_window_flag ) &&
+               ( vui_timing_info_present_flag == rhs.vui_timing_info_present_flag ) &&
+               ( vui_poc_proportional_to_timing_flag == rhs.vui_poc_proportional_to_timing_flag ) &&
+               ( vui_hrd_parameters_present_flag == rhs.vui_hrd_parameters_present_flag ) && ( bitstream_restriction_flag == rhs.bitstream_restriction_flag ) &&
+               ( tiles_fixed_structure_flag == rhs.tiles_fixed_structure_flag ) &&
+               ( motion_vectors_over_pic_boundaries_flag == rhs.motion_vectors_over_pic_boundaries_flag ) &&
+               ( restricted_ref_pic_lists_flag == rhs.restricted_ref_pic_lists_flag );
+      }
+
+      bool operator!=( H265SpsVuiFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t aspect_ratio_info_present_flag          : 1;
+      uint32_t overscan_info_present_flag              : 1;
+      uint32_t overscan_appropriate_flag               : 1;
+      uint32_t video_signal_type_present_flag          : 1;
+      uint32_t video_full_range_flag                   : 1;
+      uint32_t colour_description_present_flag         : 1;
+      uint32_t chroma_loc_info_present_flag            : 1;
+      uint32_t neutral_chroma_indication_flag          : 1;
+      uint32_t field_seq_flag                          : 1;
+      uint32_t frame_field_info_present_flag           : 1;
+      uint32_t default_display_window_flag             : 1;
+      uint32_t vui_timing_info_present_flag            : 1;
+      uint32_t vui_poc_proportional_to_timing_flag     : 1;
+      uint32_t vui_hrd_parameters_present_flag         : 1;
+      uint32_t bitstream_restriction_flag              : 1;
+      uint32_t tiles_fixed_structure_flag              : 1;
+      uint32_t motion_vectors_over_pic_boundaries_flag : 1;
+      uint32_t restricted_ref_pic_lists_flag           : 1;
+    };
+
+    struct H265SequenceParameterSetVui
+    {
+      using NativeType = StdVideoH265SequenceParameterSetVui;
+
+      operator StdVideoH265SequenceParameterSetVui const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265SequenceParameterSetVui *>( this );
+      }
+
+      operator StdVideoH265SequenceParameterSetVui &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265SequenceParameterSetVui *>( this );
+      }
+
+      bool operator==( H265SequenceParameterSetVui const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( aspect_ratio_idc == rhs.aspect_ratio_idc ) && ( sar_width == rhs.sar_width ) && ( sar_height == rhs.sar_height ) &&
+               ( video_format == rhs.video_format ) && ( colour_primaries == rhs.colour_primaries ) &&
+               ( transfer_characteristics == rhs.transfer_characteristics ) && ( matrix_coeffs == rhs.matrix_coeffs ) &&
+               ( chroma_sample_loc_type_top_field == rhs.chroma_sample_loc_type_top_field ) &&
+               ( chroma_sample_loc_type_bottom_field == rhs.chroma_sample_loc_type_bottom_field ) && ( reserved1 == rhs.reserved1 ) &&
+               ( reserved2 == rhs.reserved2 ) && ( def_disp_win_left_offset == rhs.def_disp_win_left_offset ) &&
+               ( def_disp_win_right_offset == rhs.def_disp_win_right_offset ) && ( def_disp_win_top_offset == rhs.def_disp_win_top_offset ) &&
+               ( def_disp_win_bottom_offset == rhs.def_disp_win_bottom_offset ) && ( vui_num_units_in_tick == rhs.vui_num_units_in_tick ) &&
+               ( vui_time_scale == rhs.vui_time_scale ) && ( vui_num_ticks_poc_diff_one_minus1 == rhs.vui_num_ticks_poc_diff_one_minus1 ) &&
+               ( min_spatial_segmentation_idc == rhs.min_spatial_segmentation_idc ) && ( reserved3 == rhs.reserved3 ) &&
+               ( max_bytes_per_pic_denom == rhs.max_bytes_per_pic_denom ) && ( max_bits_per_min_cu_denom == rhs.max_bits_per_min_cu_denom ) &&
+               ( log2_max_mv_length_horizontal == rhs.log2_max_mv_length_horizontal ) && ( log2_max_mv_length_vertical == rhs.log2_max_mv_length_vertical ) &&
+               ( pHrdParameters == rhs.pHrdParameters );
+      }
+
+      bool operator!=( H265SequenceParameterSetVui const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsVuiFlags    flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc aspect_ratio_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc::eUnspecified;
+      uint16_t                                                                    sar_width                           = {};
+      uint16_t                                                                    sar_height                          = {};
+      uint8_t                                                                     video_format                        = {};
+      uint8_t                                                                     colour_primaries                    = {};
+      uint8_t                                                                     transfer_characteristics            = {};
+      uint8_t                                                                     matrix_coeffs                       = {};
+      uint8_t                                                                     chroma_sample_loc_type_top_field    = {};
+      uint8_t                                                                     chroma_sample_loc_type_bottom_field = {};
+      uint8_t                                                                     reserved1                           = {};
+      uint8_t                                                                     reserved2                           = {};
+      uint16_t                                                                    def_disp_win_left_offset            = {};
+      uint16_t                                                                    def_disp_win_right_offset           = {};
+      uint16_t                                                                    def_disp_win_top_offset             = {};
+      uint16_t                                                                    def_disp_win_bottom_offset          = {};
+      uint32_t                                                                    vui_num_units_in_tick               = {};
+      uint32_t                                                                    vui_time_scale                      = {};
+      uint32_t                                                                    vui_num_ticks_poc_diff_one_minus1   = {};
+      uint16_t                                                                    min_spatial_segmentation_idc        = {};
+      uint16_t                                                                    reserved3                           = {};
+      uint8_t                                                                     max_bytes_per_pic_denom             = {};
+      uint8_t                                                                     max_bits_per_min_cu_denom           = {};
+      uint8_t                                                                     log2_max_mv_length_horizontal       = {};
+      uint8_t                                                                     log2_max_mv_length_vertical         = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters * pHrdParameters                      = {};
+    };
+
+    struct H265PredictorPaletteEntries
+    {
+      using NativeType = StdVideoH265PredictorPaletteEntries;
+
+      operator StdVideoH265PredictorPaletteEntries const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265PredictorPaletteEntries *>( this );
+      }
+
+      operator StdVideoH265PredictorPaletteEntries &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265PredictorPaletteEntries *>( this );
+      }
+
+      bool operator==( H265PredictorPaletteEntries const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( PredictorPaletteEntries == rhs.PredictorPaletteEntries );
+      }
+
+      bool operator!=( H265PredictorPaletteEntries const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::
+        ArrayWrapper2D<uint16_t, STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE, STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE>
+          PredictorPaletteEntries = {};
+    };
+
+    struct H265SpsFlags
+    {
+      using NativeType = StdVideoH265SpsFlags;
+
+      operator StdVideoH265SpsFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265SpsFlags *>( this );
+      }
+
+      operator StdVideoH265SpsFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265SpsFlags *>( this );
+      }
+
+      bool operator==( H265SpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( sps_temporal_id_nesting_flag == rhs.sps_temporal_id_nesting_flag ) && ( separate_colour_plane_flag == rhs.separate_colour_plane_flag ) &&
+               ( conformance_window_flag == rhs.conformance_window_flag ) &&
+               ( sps_sub_layer_ordering_info_present_flag == rhs.sps_sub_layer_ordering_info_present_flag ) &&
+               ( scaling_list_enabled_flag == rhs.scaling_list_enabled_flag ) &&
+               ( sps_scaling_list_data_present_flag == rhs.sps_scaling_list_data_present_flag ) && ( amp_enabled_flag == rhs.amp_enabled_flag ) &&
+               ( sample_adaptive_offset_enabled_flag == rhs.sample_adaptive_offset_enabled_flag ) && ( pcm_enabled_flag == rhs.pcm_enabled_flag ) &&
+               ( pcm_loop_filter_disabled_flag == rhs.pcm_loop_filter_disabled_flag ) &&
+               ( long_term_ref_pics_present_flag == rhs.long_term_ref_pics_present_flag ) &&
+               ( sps_temporal_mvp_enabled_flag == rhs.sps_temporal_mvp_enabled_flag ) &&
+               ( strong_intra_smoothing_enabled_flag == rhs.strong_intra_smoothing_enabled_flag ) &&
+               ( vui_parameters_present_flag == rhs.vui_parameters_present_flag ) && ( sps_extension_present_flag == rhs.sps_extension_present_flag ) &&
+               ( sps_range_extension_flag == rhs.sps_range_extension_flag ) &&
+               ( transform_skip_rotation_enabled_flag == rhs.transform_skip_rotation_enabled_flag ) &&
+               ( transform_skip_context_enabled_flag == rhs.transform_skip_context_enabled_flag ) &&
+               ( implicit_rdpcm_enabled_flag == rhs.implicit_rdpcm_enabled_flag ) && ( explicit_rdpcm_enabled_flag == rhs.explicit_rdpcm_enabled_flag ) &&
+               ( extended_precision_processing_flag == rhs.extended_precision_processing_flag ) &&
+               ( intra_smoothing_disabled_flag == rhs.intra_smoothing_disabled_flag ) &&
+               ( high_precision_offsets_enabled_flag == rhs.high_precision_offsets_enabled_flag ) &&
+               ( persistent_rice_adaptation_enabled_flag == rhs.persistent_rice_adaptation_enabled_flag ) &&
+               ( cabac_bypass_alignment_enabled_flag == rhs.cabac_bypass_alignment_enabled_flag ) && ( sps_scc_extension_flag == rhs.sps_scc_extension_flag ) &&
+               ( sps_curr_pic_ref_enabled_flag == rhs.sps_curr_pic_ref_enabled_flag ) && ( palette_mode_enabled_flag == rhs.palette_mode_enabled_flag ) &&
+               ( sps_palette_predictor_initializers_present_flag == rhs.sps_palette_predictor_initializers_present_flag ) &&
+               ( intra_boundary_filtering_disabled_flag == rhs.intra_boundary_filtering_disabled_flag );
+      }
+
+      bool operator!=( H265SpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t sps_temporal_id_nesting_flag                    : 1;
+      uint32_t separate_colour_plane_flag                      : 1;
+      uint32_t conformance_window_flag                         : 1;
+      uint32_t sps_sub_layer_ordering_info_present_flag        : 1;
+      uint32_t scaling_list_enabled_flag                       : 1;
+      uint32_t sps_scaling_list_data_present_flag              : 1;
+      uint32_t amp_enabled_flag                                : 1;
+      uint32_t sample_adaptive_offset_enabled_flag             : 1;
+      uint32_t pcm_enabled_flag                                : 1;
+      uint32_t pcm_loop_filter_disabled_flag                   : 1;
+      uint32_t long_term_ref_pics_present_flag                 : 1;
+      uint32_t sps_temporal_mvp_enabled_flag                   : 1;
+      uint32_t strong_intra_smoothing_enabled_flag             : 1;
+      uint32_t vui_parameters_present_flag                     : 1;
+      uint32_t sps_extension_present_flag                      : 1;
+      uint32_t sps_range_extension_flag                        : 1;
+      uint32_t transform_skip_rotation_enabled_flag            : 1;
+      uint32_t transform_skip_context_enabled_flag             : 1;
+      uint32_t implicit_rdpcm_enabled_flag                     : 1;
+      uint32_t explicit_rdpcm_enabled_flag                     : 1;
+      uint32_t extended_precision_processing_flag              : 1;
+      uint32_t intra_smoothing_disabled_flag                   : 1;
+      uint32_t high_precision_offsets_enabled_flag             : 1;
+      uint32_t persistent_rice_adaptation_enabled_flag         : 1;
+      uint32_t cabac_bypass_alignment_enabled_flag             : 1;
+      uint32_t sps_scc_extension_flag                          : 1;
+      uint32_t sps_curr_pic_ref_enabled_flag                   : 1;
+      uint32_t palette_mode_enabled_flag                       : 1;
+      uint32_t sps_palette_predictor_initializers_present_flag : 1;
+      uint32_t intra_boundary_filtering_disabled_flag          : 1;
+    };
+
+    struct H265ShortTermRefPicSetFlags
+    {
+      using NativeType = StdVideoH265ShortTermRefPicSetFlags;
+
+      operator StdVideoH265ShortTermRefPicSetFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265ShortTermRefPicSetFlags *>( this );
+      }
+
+      operator StdVideoH265ShortTermRefPicSetFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265ShortTermRefPicSetFlags *>( this );
+      }
+
+      bool operator==( H265ShortTermRefPicSetFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( inter_ref_pic_set_prediction_flag == rhs.inter_ref_pic_set_prediction_flag ) && ( delta_rps_sign == rhs.delta_rps_sign );
+      }
+
+      bool operator!=( H265ShortTermRefPicSetFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t inter_ref_pic_set_prediction_flag : 1;
+      uint32_t delta_rps_sign                    : 1;
+    };
+
+    struct H265ShortTermRefPicSet
+    {
+      using NativeType = StdVideoH265ShortTermRefPicSet;
+
+      operator StdVideoH265ShortTermRefPicSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265ShortTermRefPicSet *>( this );
+      }
+
+      operator StdVideoH265ShortTermRefPicSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265ShortTermRefPicSet *>( this );
+      }
+
+      bool operator==( H265ShortTermRefPicSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( delta_idx_minus1 == rhs.delta_idx_minus1 ) && ( use_delta_flag == rhs.use_delta_flag ) &&
+               ( abs_delta_rps_minus1 == rhs.abs_delta_rps_minus1 ) && ( used_by_curr_pic_flag == rhs.used_by_curr_pic_flag ) &&
+               ( used_by_curr_pic_s0_flag == rhs.used_by_curr_pic_s0_flag ) && ( used_by_curr_pic_s1_flag == rhs.used_by_curr_pic_s1_flag ) &&
+               ( reserved1 == rhs.reserved1 ) && ( reserved2 == rhs.reserved2 ) && ( reserved3 == rhs.reserved3 ) &&
+               ( num_negative_pics == rhs.num_negative_pics ) && ( num_positive_pics == rhs.num_positive_pics ) &&
+               ( delta_poc_s0_minus1 == rhs.delta_poc_s0_minus1 ) && ( delta_poc_s1_minus1 == rhs.delta_poc_s1_minus1 );
+      }
+
+      bool operator!=( H265ShortTermRefPicSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSetFlags flags                    = {};
+      uint32_t                                                                      delta_idx_minus1         = {};
+      uint16_t                                                                      use_delta_flag           = {};
+      uint16_t                                                                      abs_delta_rps_minus1     = {};
+      uint16_t                                                                      used_by_curr_pic_flag    = {};
+      uint16_t                                                                      used_by_curr_pic_s0_flag = {};
+      uint16_t                                                                      used_by_curr_pic_s1_flag = {};
+      uint16_t                                                                      reserved1                = {};
+      uint8_t                                                                       reserved2                = {};
+      uint8_t                                                                       reserved3                = {};
+      uint8_t                                                                       num_negative_pics        = {};
+      uint8_t                                                                       num_positive_pics        = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE>   delta_poc_s0_minus1      = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE>   delta_poc_s1_minus1      = {};
+    };
+
+    struct H265LongTermRefPicsSps
+    {
+      using NativeType = StdVideoH265LongTermRefPicsSps;
+
+      operator StdVideoH265LongTermRefPicsSps const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265LongTermRefPicsSps *>( this );
+      }
+
+      operator StdVideoH265LongTermRefPicsSps &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265LongTermRefPicsSps *>( this );
+      }
+
+      bool operator==( H265LongTermRefPicsSps const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( used_by_curr_pic_lt_sps_flag == rhs.used_by_curr_pic_lt_sps_flag ) && ( lt_ref_pic_poc_lsb_sps == rhs.lt_ref_pic_poc_lsb_sps );
+      }
+
+      bool operator!=( H265LongTermRefPicsSps const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t                                                                                  used_by_curr_pic_lt_sps_flag = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_ref_pic_poc_lsb_sps       = {};
+    };
+
+    struct H265SequenceParameterSet
+    {
+      using NativeType = StdVideoH265SequenceParameterSet;
+
+      operator StdVideoH265SequenceParameterSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265SequenceParameterSet *>( this );
+      }
+
+      operator StdVideoH265SequenceParameterSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265SequenceParameterSet *>( this );
+      }
+
+      bool operator==( H265SequenceParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( chroma_format_idc == rhs.chroma_format_idc ) && ( pic_width_in_luma_samples == rhs.pic_width_in_luma_samples ) &&
+               ( pic_height_in_luma_samples == rhs.pic_height_in_luma_samples ) && ( sps_video_parameter_set_id == rhs.sps_video_parameter_set_id ) &&
+               ( sps_max_sub_layers_minus1 == rhs.sps_max_sub_layers_minus1 ) && ( sps_seq_parameter_set_id == rhs.sps_seq_parameter_set_id ) &&
+               ( bit_depth_luma_minus8 == rhs.bit_depth_luma_minus8 ) && ( bit_depth_chroma_minus8 == rhs.bit_depth_chroma_minus8 ) &&
+               ( log2_max_pic_order_cnt_lsb_minus4 == rhs.log2_max_pic_order_cnt_lsb_minus4 ) &&
+               ( log2_min_luma_coding_block_size_minus3 == rhs.log2_min_luma_coding_block_size_minus3 ) &&
+               ( log2_diff_max_min_luma_coding_block_size == rhs.log2_diff_max_min_luma_coding_block_size ) &&
+               ( log2_min_luma_transform_block_size_minus2 == rhs.log2_min_luma_transform_block_size_minus2 ) &&
+               ( log2_diff_max_min_luma_transform_block_size == rhs.log2_diff_max_min_luma_transform_block_size ) &&
+               ( max_transform_hierarchy_depth_inter == rhs.max_transform_hierarchy_depth_inter ) &&
+               ( max_transform_hierarchy_depth_intra == rhs.max_transform_hierarchy_depth_intra ) &&
+               ( num_short_term_ref_pic_sets == rhs.num_short_term_ref_pic_sets ) && ( num_long_term_ref_pics_sps == rhs.num_long_term_ref_pics_sps ) &&
+               ( pcm_sample_bit_depth_luma_minus1 == rhs.pcm_sample_bit_depth_luma_minus1 ) &&
+               ( pcm_sample_bit_depth_chroma_minus1 == rhs.pcm_sample_bit_depth_chroma_minus1 ) &&
+               ( log2_min_pcm_luma_coding_block_size_minus3 == rhs.log2_min_pcm_luma_coding_block_size_minus3 ) &&
+               ( log2_diff_max_min_pcm_luma_coding_block_size == rhs.log2_diff_max_min_pcm_luma_coding_block_size ) && ( reserved1 == rhs.reserved1 ) &&
+               ( reserved2 == rhs.reserved2 ) && ( palette_max_size == rhs.palette_max_size ) &&
+               ( delta_palette_max_predictor_size == rhs.delta_palette_max_predictor_size ) &&
+               ( motion_vector_resolution_control_idc == rhs.motion_vector_resolution_control_idc ) &&
+               ( sps_num_palette_predictor_initializers_minus1 == rhs.sps_num_palette_predictor_initializers_minus1 ) &&
+               ( conf_win_left_offset == rhs.conf_win_left_offset ) && ( conf_win_right_offset == rhs.conf_win_right_offset ) &&
+               ( conf_win_top_offset == rhs.conf_win_top_offset ) && ( conf_win_bottom_offset == rhs.conf_win_bottom_offset ) &&
+               ( pProfileTierLevel == rhs.pProfileTierLevel ) && ( pDecPicBufMgr == rhs.pDecPicBufMgr ) && ( pScalingLists == rhs.pScalingLists ) &&
+               ( pShortTermRefPicSet == rhs.pShortTermRefPicSet ) && ( pLongTermRefPicsSps == rhs.pLongTermRefPicsSps ) &&
+               ( pSequenceParameterSetVui == rhs.pSequenceParameterSetVui ) && ( pPredictorPaletteEntries == rhs.pPredictorPaletteEntries );
+      }
+
+      bool operator!=( H265SequenceParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsFlags        flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc chroma_format_idc =
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc::eMonochrome;
+      uint32_t                                                                              pic_width_in_luma_samples                     = {};
+      uint32_t                                                                              pic_height_in_luma_samples                    = {};
+      uint8_t                                                                               sps_video_parameter_set_id                    = {};
+      uint8_t                                                                               sps_max_sub_layers_minus1                     = {};
+      uint8_t                                                                               sps_seq_parameter_set_id                      = {};
+      uint8_t                                                                               bit_depth_luma_minus8                         = {};
+      uint8_t                                                                               bit_depth_chroma_minus8                       = {};
+      uint8_t                                                                               log2_max_pic_order_cnt_lsb_minus4             = {};
+      uint8_t                                                                               log2_min_luma_coding_block_size_minus3        = {};
+      uint8_t                                                                               log2_diff_max_min_luma_coding_block_size      = {};
+      uint8_t                                                                               log2_min_luma_transform_block_size_minus2     = {};
+      uint8_t                                                                               log2_diff_max_min_luma_transform_block_size   = {};
+      uint8_t                                                                               max_transform_hierarchy_depth_inter           = {};
+      uint8_t                                                                               max_transform_hierarchy_depth_intra           = {};
+      uint8_t                                                                               num_short_term_ref_pic_sets                   = {};
+      uint8_t                                                                               num_long_term_ref_pics_sps                    = {};
+      uint8_t                                                                               pcm_sample_bit_depth_luma_minus1              = {};
+      uint8_t                                                                               pcm_sample_bit_depth_chroma_minus1            = {};
+      uint8_t                                                                               log2_min_pcm_luma_coding_block_size_minus3    = {};
+      uint8_t                                                                               log2_diff_max_min_pcm_luma_coding_block_size  = {};
+      uint8_t                                                                               reserved1                                     = {};
+      uint8_t                                                                               reserved2                                     = {};
+      uint8_t                                                                               palette_max_size                              = {};
+      uint8_t                                                                               delta_palette_max_predictor_size              = {};
+      uint8_t                                                                               motion_vector_resolution_control_idc          = {};
+      uint8_t                                                                               sps_num_palette_predictor_initializers_minus1 = {};
+      uint32_t                                                                              conf_win_left_offset                          = {};
+      uint32_t                                                                              conf_win_right_offset                         = {};
+      uint32_t                                                                              conf_win_top_offset                           = {};
+      uint32_t                                                                              conf_win_bottom_offset                        = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel *        pProfileTierLevel                             = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr *            pDecPicBufMgr                                 = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists *            pScalingLists                                 = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet *      pShortTermRefPicSet                           = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LongTermRefPicsSps *      pLongTermRefPicsSps                           = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSetVui * pSequenceParameterSetVui                      = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries * pPredictorPaletteEntries                      = {};
+    };
+
+    struct H265PpsFlags
+    {
+      using NativeType = StdVideoH265PpsFlags;
+
+      operator StdVideoH265PpsFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265PpsFlags *>( this );
+      }
+
+      operator StdVideoH265PpsFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265PpsFlags *>( this );
+      }
+
+      bool operator==( H265PpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( dependent_slice_segments_enabled_flag == rhs.dependent_slice_segments_enabled_flag ) &&
+               ( output_flag_present_flag == rhs.output_flag_present_flag ) && ( sign_data_hiding_enabled_flag == rhs.sign_data_hiding_enabled_flag ) &&
+               ( cabac_init_present_flag == rhs.cabac_init_present_flag ) && ( constrained_intra_pred_flag == rhs.constrained_intra_pred_flag ) &&
+               ( transform_skip_enabled_flag == rhs.transform_skip_enabled_flag ) && ( cu_qp_delta_enabled_flag == rhs.cu_qp_delta_enabled_flag ) &&
+               ( pps_slice_chroma_qp_offsets_present_flag == rhs.pps_slice_chroma_qp_offsets_present_flag ) &&
+               ( weighted_pred_flag == rhs.weighted_pred_flag ) && ( weighted_bipred_flag == rhs.weighted_bipred_flag ) &&
+               ( transquant_bypass_enabled_flag == rhs.transquant_bypass_enabled_flag ) && ( tiles_enabled_flag == rhs.tiles_enabled_flag ) &&
+               ( entropy_coding_sync_enabled_flag == rhs.entropy_coding_sync_enabled_flag ) && ( uniform_spacing_flag == rhs.uniform_spacing_flag ) &&
+               ( loop_filter_across_tiles_enabled_flag == rhs.loop_filter_across_tiles_enabled_flag ) &&
+               ( pps_loop_filter_across_slices_enabled_flag == rhs.pps_loop_filter_across_slices_enabled_flag ) &&
+               ( deblocking_filter_control_present_flag == rhs.deblocking_filter_control_present_flag ) &&
+               ( deblocking_filter_override_enabled_flag == rhs.deblocking_filter_override_enabled_flag ) &&
+               ( pps_deblocking_filter_disabled_flag == rhs.pps_deblocking_filter_disabled_flag ) &&
+               ( pps_scaling_list_data_present_flag == rhs.pps_scaling_list_data_present_flag ) &&
+               ( lists_modification_present_flag == rhs.lists_modification_present_flag ) &&
+               ( slice_segment_header_extension_present_flag == rhs.slice_segment_header_extension_present_flag ) &&
+               ( pps_extension_present_flag == rhs.pps_extension_present_flag ) &&
+               ( cross_component_prediction_enabled_flag == rhs.cross_component_prediction_enabled_flag ) &&
+               ( chroma_qp_offset_list_enabled_flag == rhs.chroma_qp_offset_list_enabled_flag ) &&
+               ( pps_curr_pic_ref_enabled_flag == rhs.pps_curr_pic_ref_enabled_flag ) &&
+               ( residual_adaptive_colour_transform_enabled_flag == rhs.residual_adaptive_colour_transform_enabled_flag ) &&
+               ( pps_slice_act_qp_offsets_present_flag == rhs.pps_slice_act_qp_offsets_present_flag ) &&
+               ( pps_palette_predictor_initializers_present_flag == rhs.pps_palette_predictor_initializers_present_flag ) &&
+               ( monochrome_palette_flag == rhs.monochrome_palette_flag ) && ( pps_range_extension_flag == rhs.pps_range_extension_flag );
+      }
+
+      bool operator!=( H265PpsFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t dependent_slice_segments_enabled_flag           : 1;
+      uint32_t output_flag_present_flag                        : 1;
+      uint32_t sign_data_hiding_enabled_flag                   : 1;
+      uint32_t cabac_init_present_flag                         : 1;
+      uint32_t constrained_intra_pred_flag                     : 1;
+      uint32_t transform_skip_enabled_flag                     : 1;
+      uint32_t cu_qp_delta_enabled_flag                        : 1;
+      uint32_t pps_slice_chroma_qp_offsets_present_flag        : 1;
+      uint32_t weighted_pred_flag                              : 1;
+      uint32_t weighted_bipred_flag                            : 1;
+      uint32_t transquant_bypass_enabled_flag                  : 1;
+      uint32_t tiles_enabled_flag                              : 1;
+      uint32_t entropy_coding_sync_enabled_flag                : 1;
+      uint32_t uniform_spacing_flag                            : 1;
+      uint32_t loop_filter_across_tiles_enabled_flag           : 1;
+      uint32_t pps_loop_filter_across_slices_enabled_flag      : 1;
+      uint32_t deblocking_filter_control_present_flag          : 1;
+      uint32_t deblocking_filter_override_enabled_flag         : 1;
+      uint32_t pps_deblocking_filter_disabled_flag             : 1;
+      uint32_t pps_scaling_list_data_present_flag              : 1;
+      uint32_t lists_modification_present_flag                 : 1;
+      uint32_t slice_segment_header_extension_present_flag     : 1;
+      uint32_t pps_extension_present_flag                      : 1;
+      uint32_t cross_component_prediction_enabled_flag         : 1;
+      uint32_t chroma_qp_offset_list_enabled_flag              : 1;
+      uint32_t pps_curr_pic_ref_enabled_flag                   : 1;
+      uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
+      uint32_t pps_slice_act_qp_offsets_present_flag           : 1;
+      uint32_t pps_palette_predictor_initializers_present_flag : 1;
+      uint32_t monochrome_palette_flag                         : 1;
+      uint32_t pps_range_extension_flag                        : 1;
+    };
+
+    struct H265PictureParameterSet
+    {
+      using NativeType = StdVideoH265PictureParameterSet;
+
+      operator StdVideoH265PictureParameterSet const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoH265PictureParameterSet *>( this );
+      }
+
+      operator StdVideoH265PictureParameterSet &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoH265PictureParameterSet *>( this );
+      }
+
+      bool operator==( H265PictureParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( pps_pic_parameter_set_id == rhs.pps_pic_parameter_set_id ) &&
+               ( pps_seq_parameter_set_id == rhs.pps_seq_parameter_set_id ) && ( sps_video_parameter_set_id == rhs.sps_video_parameter_set_id ) &&
+               ( num_extra_slice_header_bits == rhs.num_extra_slice_header_bits ) &&
+               ( num_ref_idx_l0_default_active_minus1 == rhs.num_ref_idx_l0_default_active_minus1 ) &&
+               ( num_ref_idx_l1_default_active_minus1 == rhs.num_ref_idx_l1_default_active_minus1 ) && ( init_qp_minus26 == rhs.init_qp_minus26 ) &&
+               ( diff_cu_qp_delta_depth == rhs.diff_cu_qp_delta_depth ) && ( pps_cb_qp_offset == rhs.pps_cb_qp_offset ) &&
+               ( pps_cr_qp_offset == rhs.pps_cr_qp_offset ) && ( pps_beta_offset_div2 == rhs.pps_beta_offset_div2 ) &&
+               ( pps_tc_offset_div2 == rhs.pps_tc_offset_div2 ) && ( log2_parallel_merge_level_minus2 == rhs.log2_parallel_merge_level_minus2 ) &&
+               ( log2_max_transform_skip_block_size_minus2 == rhs.log2_max_transform_skip_block_size_minus2 ) &&
+               ( diff_cu_chroma_qp_offset_depth == rhs.diff_cu_chroma_qp_offset_depth ) &&
+               ( chroma_qp_offset_list_len_minus1 == rhs.chroma_qp_offset_list_len_minus1 ) && ( cb_qp_offset_list == rhs.cb_qp_offset_list ) &&
+               ( cr_qp_offset_list == rhs.cr_qp_offset_list ) && ( log2_sao_offset_scale_luma == rhs.log2_sao_offset_scale_luma ) &&
+               ( log2_sao_offset_scale_chroma == rhs.log2_sao_offset_scale_chroma ) && ( pps_act_y_qp_offset_plus5 == rhs.pps_act_y_qp_offset_plus5 ) &&
+               ( pps_act_cb_qp_offset_plus5 == rhs.pps_act_cb_qp_offset_plus5 ) && ( pps_act_cr_qp_offset_plus3 == rhs.pps_act_cr_qp_offset_plus3 ) &&
+               ( pps_num_palette_predictor_initializers == rhs.pps_num_palette_predictor_initializers ) &&
+               ( luma_bit_depth_entry_minus8 == rhs.luma_bit_depth_entry_minus8 ) && ( chroma_bit_depth_entry_minus8 == rhs.chroma_bit_depth_entry_minus8 ) &&
+               ( num_tile_columns_minus1 == rhs.num_tile_columns_minus1 ) && ( num_tile_rows_minus1 == rhs.num_tile_rows_minus1 ) &&
+               ( reserved1 == rhs.reserved1 ) && ( reserved2 == rhs.reserved2 ) && ( column_width_minus1 == rhs.column_width_minus1 ) &&
+               ( row_height_minus1 == rhs.row_height_minus1 ) && ( reserved3 == rhs.reserved3 ) && ( pScalingLists == rhs.pScalingLists ) &&
+               ( pPredictorPaletteEntries == rhs.pPredictorPaletteEntries );
+      }
+
+      bool operator!=( H265PictureParameterSet const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PpsFlags                                      flags                                     = {};
+      uint8_t                                                                                             pps_pic_parameter_set_id                  = {};
+      uint8_t                                                                                             pps_seq_parameter_set_id                  = {};
+      uint8_t                                                                                             sps_video_parameter_set_id                = {};
+      uint8_t                                                                                             num_extra_slice_header_bits               = {};
+      uint8_t                                                                                             num_ref_idx_l0_default_active_minus1      = {};
+      uint8_t                                                                                             num_ref_idx_l1_default_active_minus1      = {};
+      int8_t                                                                                              init_qp_minus26                           = {};
+      uint8_t                                                                                             diff_cu_qp_delta_depth                    = {};
+      int8_t                                                                                              pps_cb_qp_offset                          = {};
+      int8_t                                                                                              pps_cr_qp_offset                          = {};
+      int8_t                                                                                              pps_beta_offset_div2                      = {};
+      int8_t                                                                                              pps_tc_offset_div2                        = {};
+      uint8_t                                                                                             log2_parallel_merge_level_minus2          = {};
+      uint8_t                                                                                             log2_max_transform_skip_block_size_minus2 = {};
+      uint8_t                                                                                             diff_cu_chroma_qp_offset_depth            = {};
+      uint8_t                                                                                             chroma_qp_offset_list_len_minus1          = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE>             cb_qp_offset_list                         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE>             cr_qp_offset_list                         = {};
+      uint8_t                                                                                             log2_sao_offset_scale_luma                = {};
+      uint8_t                                                                                             log2_sao_offset_scale_chroma              = {};
+      int8_t                                                                                              pps_act_y_qp_offset_plus5                 = {};
+      int8_t                                                                                              pps_act_cb_qp_offset_plus5                = {};
+      int8_t                                                                                              pps_act_cr_qp_offset_plus3                = {};
+      uint8_t                                                                                             pps_num_palette_predictor_initializers    = {};
+      uint8_t                                                                                             luma_bit_depth_entry_minus8               = {};
+      uint8_t                                                                                             chroma_bit_depth_entry_minus8             = {};
+      uint8_t                                                                                             num_tile_columns_minus1                   = {};
+      uint8_t                                                                                             num_tile_rows_minus1                      = {};
+      uint8_t                                                                                             reserved1                                 = {};
+      uint8_t                                                                                             reserved2                                 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE> column_width_minus1                       = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE> row_height_minus1                         = {};
+      uint32_t                                                                                            reserved3                                 = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists *                          pScalingLists                             = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries *               pPredictorPaletteEntries                  = {};
+    };
+
+    //=== vulkan_video_codec_h265std_decode ===
+
+    struct DecodeH265PictureInfoFlags
+    {
+      using NativeType = StdVideoDecodeH265PictureInfoFlags;
+
+      operator StdVideoDecodeH265PictureInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH265PictureInfoFlags *>( this );
+      }
+
+      operator StdVideoDecodeH265PictureInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH265PictureInfoFlags *>( this );
+      }
+
+      bool operator==( DecodeH265PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( IrapPicFlag == rhs.IrapPicFlag ) && ( IdrPicFlag == rhs.IdrPicFlag ) && ( IsReference == rhs.IsReference ) &&
+               ( short_term_ref_pic_set_sps_flag == rhs.short_term_ref_pic_set_sps_flag );
+      }
+
+      bool operator!=( DecodeH265PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t IrapPicFlag                     : 1;
+      uint32_t IdrPicFlag                      : 1;
+      uint32_t IsReference                     : 1;
+      uint32_t short_term_ref_pic_set_sps_flag : 1;
+    };
+
+    struct DecodeH265PictureInfo
+    {
+      using NativeType = StdVideoDecodeH265PictureInfo;
+
+      operator StdVideoDecodeH265PictureInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH265PictureInfo *>( this );
+      }
+
+      operator StdVideoDecodeH265PictureInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH265PictureInfo *>( this );
+      }
+
+      bool operator==( DecodeH265PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( sps_video_parameter_set_id == rhs.sps_video_parameter_set_id ) &&
+               ( pps_seq_parameter_set_id == rhs.pps_seq_parameter_set_id ) && ( pps_pic_parameter_set_id == rhs.pps_pic_parameter_set_id ) &&
+               ( NumDeltaPocsOfRefRpsIdx == rhs.NumDeltaPocsOfRefRpsIdx ) && ( PicOrderCntVal == rhs.PicOrderCntVal ) &&
+               ( NumBitsForSTRefPicSetInSlice == rhs.NumBitsForSTRefPicSetInSlice ) && ( reserved == rhs.reserved ) &&
+               ( RefPicSetStCurrBefore == rhs.RefPicSetStCurrBefore ) && ( RefPicSetStCurrAfter == rhs.RefPicSetStCurrAfter ) &&
+               ( RefPicSetLtCurr == rhs.RefPicSetLtCurr );
+      }
+
+      bool operator!=( DecodeH265PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags               flags                        = {};
+      uint8_t                                                                                    sps_video_parameter_set_id   = {};
+      uint8_t                                                                                    pps_seq_parameter_set_id     = {};
+      uint8_t                                                                                    pps_pic_parameter_set_id     = {};
+      uint8_t                                                                                    NumDeltaPocsOfRefRpsIdx      = {};
+      int32_t                                                                                    PicOrderCntVal               = {};
+      uint16_t                                                                                   NumBitsForSTRefPicSetInSlice = {};
+      uint16_t                                                                                   reserved                     = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrBefore        = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrAfter         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetLtCurr              = {};
+    };
+
+    struct DecodeH265ReferenceInfoFlags
+    {
+      using NativeType = StdVideoDecodeH265ReferenceInfoFlags;
+
+      operator StdVideoDecodeH265ReferenceInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH265ReferenceInfoFlags *>( this );
+      }
+
+      operator StdVideoDecodeH265ReferenceInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH265ReferenceInfoFlags *>( this );
+      }
+
+      bool operator==( DecodeH265ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( used_for_long_term_reference == rhs.used_for_long_term_reference ) && ( unused_for_reference == rhs.unused_for_reference );
+      }
+
+      bool operator!=( DecodeH265ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t used_for_long_term_reference : 1;
+      uint32_t unused_for_reference         : 1;
+    };
+
+    struct DecodeH265ReferenceInfo
+    {
+      using NativeType = StdVideoDecodeH265ReferenceInfo;
+
+      operator StdVideoDecodeH265ReferenceInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoDecodeH265ReferenceInfo *>( this );
+      }
+
+      operator StdVideoDecodeH265ReferenceInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoDecodeH265ReferenceInfo *>( this );
+      }
+
+      bool operator==( DecodeH265ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( PicOrderCntVal == rhs.PicOrderCntVal );
+      }
+
+      bool operator!=( DecodeH265ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags flags          = {};
+      int32_t                                                                        PicOrderCntVal = {};
+    };
+
+    //=== vulkan_video_codec_h265std_encode ===
+
+    struct EncodeH265WeightTableFlags
+    {
+      using NativeType = StdVideoEncodeH265WeightTableFlags;
+
+      operator StdVideoEncodeH265WeightTableFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265WeightTableFlags *>( this );
+      }
+
+      operator StdVideoEncodeH265WeightTableFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265WeightTableFlags *>( this );
+      }
+
+      bool operator==( EncodeH265WeightTableFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( luma_weight_l0_flag == rhs.luma_weight_l0_flag ) && ( chroma_weight_l0_flag == rhs.chroma_weight_l0_flag ) &&
+               ( luma_weight_l1_flag == rhs.luma_weight_l1_flag ) && ( chroma_weight_l1_flag == rhs.chroma_weight_l1_flag );
+      }
+
+      bool operator!=( EncodeH265WeightTableFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint16_t luma_weight_l0_flag   = {};
+      uint16_t chroma_weight_l0_flag = {};
+      uint16_t luma_weight_l1_flag   = {};
+      uint16_t chroma_weight_l1_flag = {};
+    };
+
+    struct EncodeH265WeightTable
+    {
+      using NativeType = StdVideoEncodeH265WeightTable;
+
+      operator StdVideoEncodeH265WeightTable const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265WeightTable *>( this );
+      }
+
+      operator StdVideoEncodeH265WeightTable &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265WeightTable *>( this );
+      }
+
+      bool operator==( EncodeH265WeightTable const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( luma_log2_weight_denom == rhs.luma_log2_weight_denom ) &&
+               ( delta_chroma_log2_weight_denom == rhs.delta_chroma_log2_weight_denom ) && ( delta_luma_weight_l0 == rhs.delta_luma_weight_l0 ) &&
+               ( luma_offset_l0 == rhs.luma_offset_l0 ) && ( delta_chroma_weight_l0 == rhs.delta_chroma_weight_l0 ) &&
+               ( delta_chroma_offset_l0 == rhs.delta_chroma_offset_l0 ) && ( delta_luma_weight_l1 == rhs.delta_luma_weight_l1 ) &&
+               ( luma_offset_l1 == rhs.luma_offset_l1 ) && ( delta_chroma_weight_l1 == rhs.delta_chroma_weight_l1 ) &&
+               ( delta_chroma_offset_l1 == rhs.delta_chroma_offset_l1 );
+      }
+
+      bool operator!=( EncodeH265WeightTable const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags                                    flags                          = {};
+      uint8_t                                                                                                         luma_log2_weight_denom         = {};
+      int8_t                                                                                                          delta_chroma_log2_weight_denom = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>                                   delta_luma_weight_l0           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>                                   luma_offset_l0                 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l0         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l0         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>                                   delta_luma_weight_l1           = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>                                   luma_offset_l1                 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l1         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l1         = {};
+    };
+
+    struct EncodeH265SliceSegmentHeaderFlags
+    {
+      using NativeType = StdVideoEncodeH265SliceSegmentHeaderFlags;
+
+      operator StdVideoEncodeH265SliceSegmentHeaderFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265SliceSegmentHeaderFlags *>( this );
+      }
+
+      operator StdVideoEncodeH265SliceSegmentHeaderFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265SliceSegmentHeaderFlags *>( this );
+      }
+
+      bool operator==( EncodeH265SliceSegmentHeaderFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( first_slice_segment_in_pic_flag == rhs.first_slice_segment_in_pic_flag ) &&
+               ( dependent_slice_segment_flag == rhs.dependent_slice_segment_flag ) && ( slice_sao_luma_flag == rhs.slice_sao_luma_flag ) &&
+               ( slice_sao_chroma_flag == rhs.slice_sao_chroma_flag ) && ( num_ref_idx_active_override_flag == rhs.num_ref_idx_active_override_flag ) &&
+               ( mvd_l1_zero_flag == rhs.mvd_l1_zero_flag ) && ( cabac_init_flag == rhs.cabac_init_flag ) &&
+               ( cu_chroma_qp_offset_enabled_flag == rhs.cu_chroma_qp_offset_enabled_flag ) &&
+               ( deblocking_filter_override_flag == rhs.deblocking_filter_override_flag ) &&
+               ( slice_deblocking_filter_disabled_flag == rhs.slice_deblocking_filter_disabled_flag ) &&
+               ( collocated_from_l0_flag == rhs.collocated_from_l0_flag ) &&
+               ( slice_loop_filter_across_slices_enabled_flag == rhs.slice_loop_filter_across_slices_enabled_flag ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH265SliceSegmentHeaderFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t first_slice_segment_in_pic_flag              : 1;
+      uint32_t dependent_slice_segment_flag                 : 1;
+      uint32_t slice_sao_luma_flag                          : 1;
+      uint32_t slice_sao_chroma_flag                        : 1;
+      uint32_t num_ref_idx_active_override_flag             : 1;
+      uint32_t mvd_l1_zero_flag                             : 1;
+      uint32_t cabac_init_flag                              : 1;
+      uint32_t cu_chroma_qp_offset_enabled_flag             : 1;
+      uint32_t deblocking_filter_override_flag              : 1;
+      uint32_t slice_deblocking_filter_disabled_flag        : 1;
+      uint32_t collocated_from_l0_flag                      : 1;
+      uint32_t slice_loop_filter_across_slices_enabled_flag : 1;
+      uint32_t reserved                                     : 20;
+    };
+
+    struct EncodeH265SliceSegmentHeader
+    {
+      using NativeType = StdVideoEncodeH265SliceSegmentHeader;
+
+      operator StdVideoEncodeH265SliceSegmentHeader const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265SliceSegmentHeader *>( this );
+      }
+
+      operator StdVideoEncodeH265SliceSegmentHeader &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265SliceSegmentHeader *>( this );
+      }
+
+      bool operator==( EncodeH265SliceSegmentHeader const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( slice_type == rhs.slice_type ) && ( slice_segment_address == rhs.slice_segment_address ) &&
+               ( collocated_ref_idx == rhs.collocated_ref_idx ) && ( MaxNumMergeCand == rhs.MaxNumMergeCand ) &&
+               ( slice_cb_qp_offset == rhs.slice_cb_qp_offset ) && ( slice_cr_qp_offset == rhs.slice_cr_qp_offset ) &&
+               ( slice_beta_offset_div2 == rhs.slice_beta_offset_div2 ) && ( slice_tc_offset_div2 == rhs.slice_tc_offset_div2 ) &&
+               ( slice_act_y_qp_offset == rhs.slice_act_y_qp_offset ) && ( slice_act_cb_qp_offset == rhs.slice_act_cb_qp_offset ) &&
+               ( slice_act_cr_qp_offset == rhs.slice_act_cr_qp_offset ) && ( slice_qp_delta == rhs.slice_qp_delta ) && ( reserved1 == rhs.reserved1 ) &&
+               ( pWeightTable == rhs.pWeightTable );
+      }
+
+      bool operator!=( EncodeH265SliceSegmentHeader const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType slice_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType::eB;
+      uint32_t                                                        slice_segment_address        = {};
+      uint8_t                                                         collocated_ref_idx           = {};
+      uint8_t                                                         MaxNumMergeCand              = {};
+      int8_t                                                          slice_cb_qp_offset           = {};
+      int8_t                                                          slice_cr_qp_offset           = {};
+      int8_t                                                          slice_beta_offset_div2       = {};
+      int8_t                                                          slice_tc_offset_div2         = {};
+      int8_t                                                          slice_act_y_qp_offset        = {};
+      int8_t                                                          slice_act_cb_qp_offset       = {};
+      int8_t                                                          slice_act_cr_qp_offset       = {};
+      int8_t                                                          slice_qp_delta               = {};
+      uint16_t                                                        reserved1                    = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable * pWeightTable = {};
+    };
+
+    struct EncodeH265ReferenceListsInfoFlags
+    {
+      using NativeType = StdVideoEncodeH265ReferenceListsInfoFlags;
+
+      operator StdVideoEncodeH265ReferenceListsInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265ReferenceListsInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH265ReferenceListsInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265ReferenceListsInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH265ReferenceListsInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( ref_pic_list_modification_flag_l0 == rhs.ref_pic_list_modification_flag_l0 ) &&
+               ( ref_pic_list_modification_flag_l1 == rhs.ref_pic_list_modification_flag_l1 ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH265ReferenceListsInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t ref_pic_list_modification_flag_l0 : 1;
+      uint32_t ref_pic_list_modification_flag_l1 : 1;
+      uint32_t reserved                          : 30;
+    };
+
+    struct EncodeH265ReferenceListsInfo
+    {
+      using NativeType = StdVideoEncodeH265ReferenceListsInfo;
+
+      operator StdVideoEncodeH265ReferenceListsInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265ReferenceListsInfo *>( this );
+      }
+
+      operator StdVideoEncodeH265ReferenceListsInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265ReferenceListsInfo *>( this );
+      }
+
+      bool operator==( EncodeH265ReferenceListsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( num_ref_idx_l0_active_minus1 == rhs.num_ref_idx_l0_active_minus1 ) &&
+               ( num_ref_idx_l1_active_minus1 == rhs.num_ref_idx_l1_active_minus1 ) && ( RefPicList0 == rhs.RefPicList0 ) &&
+               ( RefPicList1 == rhs.RefPicList1 ) && ( list_entry_l0 == rhs.list_entry_l0 ) && ( list_entry_l1 == rhs.list_entry_l1 );
+      }
+
+      bool operator!=( EncodeH265ReferenceListsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags flags                        = {};
+      uint8_t                                                                             num_ref_idx_l0_active_minus1 = {};
+      uint8_t                                                                             num_ref_idx_l1_active_minus1 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>      RefPicList0                  = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>      RefPicList1                  = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>      list_entry_l0                = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF>      list_entry_l1                = {};
+    };
+
+    struct EncodeH265PictureInfoFlags
+    {
+      using NativeType = StdVideoEncodeH265PictureInfoFlags;
+
+      operator StdVideoEncodeH265PictureInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265PictureInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH265PictureInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265PictureInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH265PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( is_reference == rhs.is_reference ) && ( IrapPicFlag == rhs.IrapPicFlag ) &&
+               ( used_for_long_term_reference == rhs.used_for_long_term_reference ) && ( discardable_flag == rhs.discardable_flag ) &&
+               ( cross_layer_bla_flag == rhs.cross_layer_bla_flag ) && ( pic_output_flag == rhs.pic_output_flag ) &&
+               ( no_output_of_prior_pics_flag == rhs.no_output_of_prior_pics_flag ) &&
+               ( short_term_ref_pic_set_sps_flag == rhs.short_term_ref_pic_set_sps_flag ) &&
+               ( slice_temporal_mvp_enabled_flag == rhs.slice_temporal_mvp_enabled_flag ) && ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH265PictureInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t is_reference                    : 1;
+      uint32_t IrapPicFlag                     : 1;
+      uint32_t used_for_long_term_reference    : 1;
+      uint32_t discardable_flag                : 1;
+      uint32_t cross_layer_bla_flag            : 1;
+      uint32_t pic_output_flag                 : 1;
+      uint32_t no_output_of_prior_pics_flag    : 1;
+      uint32_t short_term_ref_pic_set_sps_flag : 1;
+      uint32_t slice_temporal_mvp_enabled_flag : 1;
+      uint32_t reserved                        : 23;
+    };
+
+    struct EncodeH265LongTermRefPics
+    {
+      using NativeType = StdVideoEncodeH265LongTermRefPics;
+
+      operator StdVideoEncodeH265LongTermRefPics const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265LongTermRefPics *>( this );
+      }
+
+      operator StdVideoEncodeH265LongTermRefPics &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265LongTermRefPics *>( this );
+      }
+
+      bool operator==( EncodeH265LongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( num_long_term_sps == rhs.num_long_term_sps ) && ( num_long_term_pics == rhs.num_long_term_pics ) && ( lt_idx_sps == rhs.lt_idx_sps ) &&
+               ( poc_lsb_lt == rhs.poc_lsb_lt ) && ( used_by_curr_pic_lt_flag == rhs.used_by_curr_pic_lt_flag ) &&
+               ( delta_poc_msb_present_flag == rhs.delta_poc_msb_present_flag ) && ( delta_poc_msb_cycle_lt == rhs.delta_poc_msb_cycle_lt );
+      }
+
+      bool operator!=( EncodeH265LongTermRefPics const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint8_t                                                                                  num_long_term_sps          = {};
+      uint8_t                                                                                  num_long_term_pics         = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_idx_sps                 = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_PICS>         poc_lsb_lt                 = {};
+      uint16_t                                                                                 used_by_curr_pic_lt_flag   = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC>              delta_poc_msb_present_flag = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC>              delta_poc_msb_cycle_lt     = {};
+    };
+
+    struct EncodeH265PictureInfo
+    {
+      using NativeType = StdVideoEncodeH265PictureInfo;
+
+      operator StdVideoEncodeH265PictureInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265PictureInfo *>( this );
+      }
+
+      operator StdVideoEncodeH265PictureInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265PictureInfo *>( this );
+      }
+
+      bool operator==( EncodeH265PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( pic_type == rhs.pic_type ) && ( sps_video_parameter_set_id == rhs.sps_video_parameter_set_id ) &&
+               ( pps_seq_parameter_set_id == rhs.pps_seq_parameter_set_id ) && ( pps_pic_parameter_set_id == rhs.pps_pic_parameter_set_id ) &&
+               ( short_term_ref_pic_set_idx == rhs.short_term_ref_pic_set_idx ) && ( PicOrderCntVal == rhs.PicOrderCntVal ) &&
+               ( TemporalId == rhs.TemporalId ) && ( reserved1 == rhs.reserved1 ) && ( pRefLists == rhs.pRefLists ) &&
+               ( pShortTermRefPicSet == rhs.pShortTermRefPicSet ) && ( pLongTermRefPics == rhs.pLongTermRefPics );
+      }
+
+      bool operator!=( EncodeH265PictureInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType pic_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType::eP;
+      uint8_t                                                           sps_video_parameter_set_id               = {};
+      uint8_t                                                           pps_seq_parameter_set_id                 = {};
+      uint8_t                                                           pps_pic_parameter_set_id                 = {};
+      uint8_t                                                           short_term_ref_pic_set_idx               = {};
+      int32_t                                                           PicOrderCntVal                           = {};
+      uint8_t                                                           TemporalId                               = {};
+      VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 7>                  reserved1                                = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo * pRefLists           = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet *       pShortTermRefPicSet = {};
+      const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics *    pLongTermRefPics    = {};
+    };
+
+    struct EncodeH265ReferenceInfoFlags
+    {
+      using NativeType = StdVideoEncodeH265ReferenceInfoFlags;
+
+      operator StdVideoEncodeH265ReferenceInfoFlags const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265ReferenceInfoFlags *>( this );
+      }
+
+      operator StdVideoEncodeH265ReferenceInfoFlags &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265ReferenceInfoFlags *>( this );
+      }
+
+      bool operator==( EncodeH265ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( used_for_long_term_reference == rhs.used_for_long_term_reference ) && ( unused_for_reference == rhs.unused_for_reference ) &&
+               ( reserved == rhs.reserved );
+      }
+
+      bool operator!=( EncodeH265ReferenceInfoFlags const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      uint32_t used_for_long_term_reference : 1;
+      uint32_t unused_for_reference         : 1;
+      uint32_t reserved                     : 30;
+    };
+
+    struct EncodeH265ReferenceInfo
+    {
+      using NativeType = StdVideoEncodeH265ReferenceInfo;
+
+      operator StdVideoEncodeH265ReferenceInfo const &() const VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<const StdVideoEncodeH265ReferenceInfo *>( this );
+      }
+
+      operator StdVideoEncodeH265ReferenceInfo &() VULKAN_HPP_NOEXCEPT
+      {
+        return *reinterpret_cast<StdVideoEncodeH265ReferenceInfo *>( this );
+      }
+
+      bool operator==( EncodeH265ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return ( flags == rhs.flags ) && ( pic_type == rhs.pic_type ) && ( PicOrderCntVal == rhs.PicOrderCntVal ) && ( TemporalId == rhs.TemporalId );
+      }
+
+      bool operator!=( EncodeH265ReferenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
+      {
+        return !operator==( rhs );
+      }
+
+    public:
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags flags = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType pic_type       = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType::eP;
+      int32_t                                                           PicOrderCntVal = {};
+      uint8_t                                                           TemporalId     = {};
+    };
+
+  }  // namespace VULKAN_HPP_VIDEO_NAMESPACE
+}  // namespace VULKAN_HPP_NAMESPACE
+#endif
diff --git a/include/vulkan/vulkan_wayland.h b/include/vulkan/vulkan_wayland.h
index 9afd0b7..ec706a1 100644
--- a/include/vulkan/vulkan_wayland.h
+++ b/include/vulkan/vulkan_wayland.h
@@ -2,7 +2,7 @@
 #define VULKAN_WAYLAND_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_KHR_wayland_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_wayland_surface 1
 #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
diff --git a/include/vulkan/vulkan_win32.h b/include/vulkan/vulkan_win32.h
index a8e46c8..d7a0b2b 100644
--- a/include/vulkan/vulkan_win32.h
+++ b/include/vulkan/vulkan_win32.h
@@ -2,7 +2,7 @@
 #define VULKAN_WIN32_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_KHR_win32_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_win32_surface 1
 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
@@ -47,6 +48,7 @@
 #endif
 
 
+// VK_KHR_external_memory_win32 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_memory_win32 1
 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
@@ -96,6 +98,7 @@
 #endif
 
 
+// VK_KHR_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_win32_keyed_mutex 1
 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
@@ -113,6 +116,7 @@
 
 
 
+// VK_KHR_external_semaphore_win32 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_semaphore_win32 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
@@ -165,6 +169,7 @@
 #endif
 
 
+// VK_KHR_external_fence_win32 is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_external_fence_win32 1
 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
@@ -208,6 +213,7 @@
 #endif
 
 
+// VK_NV_external_memory_win32 is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_external_memory_win32 1
 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
@@ -236,6 +242,7 @@
 #endif
 
 
+// VK_NV_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_win32_keyed_mutex 1
 #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
@@ -253,6 +260,7 @@
 
 
 
+// VK_EXT_full_screen_exclusive is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_full_screen_exclusive 1
 #define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
 #define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
@@ -309,6 +317,7 @@
 #endif
 
 
+// VK_NV_acquire_winrt_display is a preprocessor guard. Do not pass it to API calls.
 #define VK_NV_acquire_winrt_display 1
 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
diff --git a/include/vulkan/vulkan_xcb.h b/include/vulkan/vulkan_xcb.h
index 68e61b8..cdf6b52 100644
--- a/include/vulkan/vulkan_xcb.h
+++ b/include/vulkan/vulkan_xcb.h
@@ -2,7 +2,7 @@
 #define VULKAN_XCB_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_KHR_xcb_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_xcb_surface 1
 #define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
 #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
diff --git a/include/vulkan/vulkan_xlib.h b/include/vulkan/vulkan_xlib.h
index ea5360a..b3c3e27 100644
--- a/include/vulkan/vulkan_xlib.h
+++ b/include/vulkan/vulkan_xlib.h
@@ -2,7 +2,7 @@
 #define VULKAN_XLIB_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_KHR_xlib_surface is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_xlib_surface 1
 #define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
 #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
diff --git a/include/vulkan/vulkan_xlib_xrandr.h b/include/vulkan/vulkan_xlib_xrandr.h
index 8fc35cf..8e99190 100644
--- a/include/vulkan/vulkan_xlib_xrandr.h
+++ b/include/vulkan/vulkan_xlib_xrandr.h
@@ -2,7 +2,7 @@
 #define VULKAN_XLIB_XRANDR_H_ 1
 
 /*
-** Copyright 2015-2022 The Khronos Group Inc.
+** Copyright 2015-2024 The Khronos Group Inc.
 **
 ** SPDX-License-Identifier: Apache-2.0
 */
@@ -19,6 +19,7 @@
 
 
 
+// VK_EXT_acquire_xlib_display is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_acquire_xlib_display 1
 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
diff --git a/registry/apiconventions.py b/registry/apiconventions.py
index 0b02f8f..00ae02c 100644
--- a/registry/apiconventions.py
+++ b/registry/apiconventions.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2021-2022 The Khronos Group Inc.
+# Copyright 2021-2024 The Khronos Group Inc.
 # SPDX-License-Identifier: Apache-2.0
 
 # Generic alias for working group-specific API conventions interface.
@@ -8,4 +8,14 @@
 # This import should be changed at the repository / working group level to
 # specify the correct API's conventions.
 
-from vkconventions import VulkanConventions as APIConventions
+
+import os
+
+defaultAPI = 'vulkan'
+
+VulkanAPI = os.getenv('VULKAN_API', default=defaultAPI)
+
+if VulkanAPI == 'vulkansc':
+    from vkconventions import VulkanSCConventions as APIConventions
+else:
+    from vkconventions import VulkanConventions as APIConventions
diff --git a/registry/cgenerator.py b/registry/cgenerator.py
index b8ac6f5..f86658e 100644
--- a/registry/cgenerator.py
+++ b/registry/cgenerator.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2013-2022 The Khronos Group Inc.
+# Copyright 2013-2024 The Khronos Group Inc.
 #
 # SPDX-License-Identifier: Apache-2.0
 
@@ -255,6 +255,8 @@
                         write('#ifdef', self.featureExtraProtect, file=self.outFile)
                     self.newline()
 
+                    # Generate warning of possible use in IDEs
+                    write(f'// {self.featureName} is a preprocessor guard. Do not pass it to API calls.', file=self.outFile)
                     write('#define', self.featureName, '1', file=self.outFile)
                     for section in self.TYPE_SECTIONS:
                         contents = self.sections[section]
@@ -346,6 +348,8 @@
                         body += self.genOpts.apientry + noneStr(elem.tail)
                     else:
                         body += noneStr(elem.text) + noneStr(elem.tail)
+                if category == 'define' and self.misracppstyle():
+                    body = body.replace("(uint32_t)", "static_cast<uint32_t>")
             if body:
                 # Add extra newline after multi-line entries.
                 if '\n' in body[0:-1]:
diff --git a/registry/generator.py b/registry/generator.py
index 97c4d37..dea2ffa 100644
--- a/registry/generator.py
+++ b/registry/generator.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2013-2022 The Khronos Group Inc.
+# Copyright 2013-2024 The Khronos Group Inc.
 #
 # SPDX-License-Identifier: Apache-2.0
 """Base class for source/header/doc generators, as well as some utility functions."""
@@ -64,9 +64,8 @@
             return 0.5
         else:
             return 0
-    if (feature.category == 'ARB'
-        or feature.category == 'KHR'
-            or feature.category == 'OES'):
+
+    if feature.category.upper() in ['ARB', 'KHR', 'OES']:
         return 1
 
     return 2
@@ -153,6 +152,7 @@
                  directory='.',
                  genpath=None,
                  apiname=None,
+                 mergeApiNames=None,
                  profile=None,
                  versions='.*',
                  emitversions='.*',
@@ -165,6 +165,7 @@
                  reparentEnums=True,
                  sortProcedure=regSortFeatures,
                  requireCommandAliases=False,
+                 requireDepends=True,
                 ):
         """Constructor.
 
@@ -176,6 +177,8 @@
         - directory - directory in which to generate filename
         - genpath - path to previously generated files, such as apimap.py
         - apiname - string matching `<api>` 'apiname' attribute, e.g. 'gl'.
+        - mergeApiNames - If not None, a comma separated list of API names
+          to merge into the API specified by 'apiname'
         - profile - string specifying API profile , e.g. 'core', or None.
         - versions - regex matching API versions to process interfaces for.
         Normally `'.*'` or `'[0-9][.][0-9]'` to match all defined versions.
@@ -205,6 +208,11 @@
         or <extension> being complete. Defaults to True.
         - sortProcedure - takes a list of FeatureInfo objects and sorts
         them in place to a preferred order in the generated output.
+        - requireCommandAliases - if True, treat command aliases
+        as required dependencies.
+        - requireDepends - whether to follow API dependencies when emitting
+        APIs.
+
         Default is
           - core API versions
           - Khronos (ARB/KHR/OES) extensions
@@ -229,6 +237,9 @@
         self.apiname = apiname
         "string matching `<api>` 'apiname' attribute, e.g. 'gl'."
 
+        self.mergeApiNames = mergeApiNames
+        "comma separated list of API names to merge into the API specified by 'apiname'"
+
         self.profile = profile
         "string specifying API profile , e.g. 'core', or None."
 
@@ -289,6 +300,9 @@
         """True if alias= attributes of <command> tags are transitively
         required."""
 
+        self.requireDepends = requireDepends
+        """True if dependencies of API tags are transitively required."""
+
     def emptyRegex(self, pat):
         """Substitute a regular expression which matches no version
         or extension names for None or the empty string."""
@@ -1015,6 +1029,30 @@
         Extend to generate as desired in your derived class."""
         return
 
+    def genSyncStage(self, stageinfo):
+        """Generate interface for a sync stage element.
+
+        - stageinfo - SyncStageInfo
+
+        Extend to generate as desired in your derived class."""
+        return
+
+    def genSyncAccess(self, accessinfo):
+        """Generate interface for a sync stage element.
+
+        - accessinfo - AccessInfo
+
+        Extend to generate as desired in your derived class."""
+        return
+
+    def genSyncPipeline(self, pipelineinfo):
+        """Generate interface for a sync stage element.
+
+        - pipelineinfo - SyncPipelineInfo
+
+        Extend to generate as desired in your derived class."""
+        return
+
     def makeProtoName(self, name, tail):
         """Turn a `<proto>` `<name>` into C-language prototype
         and typedef declarations for that name.
diff --git a/registry/genvk.py b/registry/genvk.py
deleted file mode 100755
index 5198bd9..0000000
--- a/registry/genvk.py
+++ /dev/null
@@ -1,811 +0,0 @@
-#!/usr/bin/python3
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-import argparse
-import os
-import pdb
-import re
-import sys
-import time
-import xml.etree.ElementTree as etree
-
-sys.path.append(os.path.abspath(os.path.dirname(__file__)))
-
-from cgenerator import CGeneratorOptions, COutputGenerator
-
-from docgenerator import DocGeneratorOptions, DocOutputGenerator
-from extensionmetadocgenerator import (ExtensionMetaDocGeneratorOptions,
-                                       ExtensionMetaDocOutputGenerator)
-from interfacedocgenerator import InterfaceDocGenerator
-from generator import write
-from spirvcapgenerator import SpirvCapabilityOutputGenerator
-from hostsyncgenerator import HostSynchronizationOutputGenerator
-from formatsgenerator import FormatsOutputGenerator
-from pygenerator import PyOutputGenerator
-from rubygenerator import RubyOutputGenerator
-from reflib import logDiag, logWarn, logErr, setLogFile
-from reg import Registry
-from validitygenerator import ValidityOutputGenerator
-from apiconventions import APIConventions
-
-# Simple timer functions
-startTime = None
-
-
-def startTimer(timeit):
-    global startTime
-    if timeit:
-        startTime = time.process_time()
-
-
-def endTimer(timeit, msg):
-    global startTime
-    if timeit and startTime is not None:
-        endTime = time.process_time()
-        logDiag(msg, endTime - startTime)
-        startTime = None
-
-
-def makeREstring(strings, default=None, strings_are_regex=False):
-    """Turn a list of strings into a regexp string matching exactly those strings."""
-    if strings or default is None:
-        if not strings_are_regex:
-            strings = (re.escape(s) for s in strings)
-        return '^(' + '|'.join(strings) + ')$'
-    return default
-
-
-def makeGenOpts(args):
-    """Returns a directory of [ generator function, generator options ] indexed
-    by specified short names. The generator options incorporate the following
-    parameters:
-
-    args is an parsed argument object; see below for the fields that are used."""
-    global genOpts
-    genOpts = {}
-
-    # Default class of extensions to include, or None
-    defaultExtensions = args.defaultExtensions
-
-    # Additional extensions to include (list of extensions)
-    extensions = args.extension
-
-    # Extensions to remove (list of extensions)
-    removeExtensions = args.removeExtensions
-
-    # Extensions to emit (list of extensions)
-    emitExtensions = args.emitExtensions
-
-    # SPIR-V capabilities / features to emit (list of extensions & capabilities)
-    emitSpirv = args.emitSpirv
-
-    # Vulkan Formats to emit
-    emitFormats = args.emitFormats
-
-    # Features to include (list of features)
-    features = args.feature
-
-    # Whether to disable inclusion protect in headers
-    protect = args.protect
-
-    # Output target directory
-    directory = args.directory
-
-    # Path to generated files, particularly apimap.py
-    genpath = args.genpath
-
-    # Generate MISRA C-friendly headers
-    misracstyle = args.misracstyle;
-
-    # Generate MISRA C++-friendly headers
-    misracppstyle = args.misracppstyle;
-
-    # Descriptive names for various regexp patterns used to select
-    # versions and extensions
-    allFormats = allSpirv = allFeatures = allExtensions = r'.*'
-
-    # Turn lists of names/patterns into matching regular expressions
-    addExtensionsPat     = makeREstring(extensions, None)
-    removeExtensionsPat  = makeREstring(removeExtensions, None)
-    emitExtensionsPat    = makeREstring(emitExtensions, allExtensions)
-    emitSpirvPat         = makeREstring(emitSpirv, allSpirv)
-    emitFormatsPat       = makeREstring(emitFormats, allFormats)
-    featuresPat          = makeREstring(features, allFeatures)
-
-    # Copyright text prefixing all headers (list of strings).
-    # The SPDX formatting below works around constraints of the 'reuse' tool
-    prefixStrings = [
-        '/*',
-        '** Copyright 2015-2022 The Khronos Group Inc.',
-        '**',
-        '** SPDX-License-Identifier' + ': Apache-2.0',
-        '*/',
-        ''
-    ]
-
-    # Text specific to Vulkan headers
-    vkPrefixStrings = [
-        '/*',
-        '** This header is generated from the Khronos Vulkan XML API Registry.',
-        '**',
-        '*/',
-        ''
-    ]
-
-    # Defaults for generating re-inclusion protection wrappers (or not)
-    protectFile = protect
-
-    # An API style conventions object
-    conventions = APIConventions()
-
-    defaultAPIName = conventions.xml_api_name
-
-    # API include files for spec and ref pages
-    # Overwrites include subdirectories in spec source tree
-    # The generated include files do not include the calling convention
-    # macros (apientry etc.), unlike the header files.
-    # Because the 1.0 core branch includes ref pages for extensions,
-    # all the extension interfaces need to be generated, even though
-    # none are used by the core spec itself.
-    genOpts['apiinc'] = [
-          DocOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = genpath,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            apicall           = '',
-            apientry          = '',
-            apientryp         = '*',
-            alignFuncParam    = 48,
-            expandEnumerants  = False)
-        ]
-
-    # Python and Ruby representations of API information, used by scripts
-    # that do not need to load the full XML.
-    genOpts['apimap.py'] = [
-          PyOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'apimap.py',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            reparentEnums     = False)
-        ]
-
-    genOpts['apimap.rb'] = [
-          RubyOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'apimap.rb',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            reparentEnums     = False)
-        ]
-
-
-    # API validity files for spec
-    #
-    # requireCommandAliases is set to True because we need validity files
-    # for the command something is promoted to even when the promoted-to
-    # feature is not included. This avoids wordy includes of validity files.
-    genOpts['validinc'] = [
-          ValidityOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            requireCommandAliases = True,
-            )
-        ]
-
-    # API host sync table files for spec
-    genOpts['hostsyncinc'] = [
-          HostSynchronizationOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            reparentEnums     = False)
-        ]
-
-    # Extension metainformation for spec extension appendices
-    # Includes all extensions by default, but only so that the generated
-    # 'promoted_extensions_*' files refer to all extensions that were
-    # promoted to a core version.
-    genOpts['extinc'] = [
-          ExtensionMetaDocOutputGenerator,
-          ExtensionMetaDocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = None,
-            defaultExtensions = defaultExtensions,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = None,
-            emitExtensions    = emitExtensionsPat)
-        ]
-
-    # Version and extension interface docs for version/extension appendices
-    # Includes all extensions by default.
-    genOpts['interfaceinc'] = [
-          InterfaceDocGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            reparentEnums     = False)
-        ]
-
-    genOpts['spirvcapinc'] = [
-          SpirvCapabilityOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            emitSpirv         = emitSpirvPat,
-            reparentEnums     = False)
-        ]
-
-    # Used to generate various format chapter tables
-    genOpts['formatsinc'] = [
-          FormatsOutputGenerator,
-          DocGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'timeMarker',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = None,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            emitFormats       = emitFormatsPat,
-            reparentEnums     = False)
-        ]
-
-    # Platform extensions, in their own header files
-    # Each element of the platforms[] array defines information for
-    # generating a single platform:
-    #   [0] is the generated header file name
-    #   [1] is the set of platform extensions to generate
-    #   [2] is additional extensions whose interfaces should be considered,
-    #   but suppressed in the output, to avoid duplicate definitions of
-    #   dependent types like VkDisplayKHR and VkSurfaceKHR which come from
-    #   non-platform extensions.
-
-    # Track all platform extensions, for exclusion from vulkan_core.h
-    allPlatformExtensions = []
-
-    # Extensions suppressed for all WSI platforms (WSI extensions required
-    # by all platforms)
-    commonSuppressExtensions = [ 'VK_KHR_display', 'VK_KHR_swapchain' ]
-
-    # Extensions required and suppressed for beta "platform". This can
-    # probably eventually be derived from the requires= attributes of
-    # the extension blocks.
-    betaRequireExtensions = [
-        'VK_KHR_portability_subset',
-        'VK_KHR_video_queue',
-        'VK_KHR_video_decode_queue',
-        'VK_KHR_video_encode_queue',
-        'VK_EXT_video_decode_h264',
-        'VK_EXT_video_decode_h265',
-        'VK_EXT_video_encode_h264',
-        'VK_EXT_video_encode_h265',
-    ]
-
-    betaSuppressExtensions = []
-
-    platforms = [
-        [ 'vulkan_android.h',     [ 'VK_KHR_android_surface',
-                                    'VK_ANDROID_external_memory_android_hardware_buffer'
-                                                                  ], commonSuppressExtensions +
-                                                                     [ 'VK_KHR_format_feature_flags2',
-                                                                     ] ],
-        [ 'vulkan_fuchsia.h',     [ 'VK_FUCHSIA_imagepipe_surface',
-                                    'VK_FUCHSIA_external_memory',
-                                    'VK_FUCHSIA_external_semaphore',
-                                    'VK_FUCHSIA_buffer_collection' ], commonSuppressExtensions ],
-        [ 'vulkan_ggp.h',         [ 'VK_GGP_stream_descriptor_surface',
-                                    'VK_GGP_frame_token'          ], commonSuppressExtensions ],
-        [ 'vulkan_ios.h',         [ 'VK_MVK_ios_surface'          ], commonSuppressExtensions ],
-        [ 'vulkan_macos.h',       [ 'VK_MVK_macos_surface'        ], commonSuppressExtensions ],
-        [ 'vulkan_vi.h',          [ 'VK_NN_vi_surface'            ], commonSuppressExtensions ],
-        [ 'vulkan_wayland.h',     [ 'VK_KHR_wayland_surface'      ], commonSuppressExtensions ],
-        [ 'vulkan_win32.h',       [ 'VK_.*_win32(|_.*)', 'VK_.*_winrt(|_.*)', 'VK_EXT_full_screen_exclusive' ],
-                                                                     commonSuppressExtensions +
-                                                                     [ 'VK_KHR_external_semaphore',
-                                                                       'VK_KHR_external_memory_capabilities',
-                                                                       'VK_KHR_external_fence',
-                                                                       'VK_KHR_external_fence_capabilities',
-                                                                       'VK_KHR_get_surface_capabilities2',
-                                                                       'VK_NV_external_memory_capabilities',
-                                                                     ] ],
-        [ 'vulkan_xcb.h',         [ 'VK_KHR_xcb_surface'          ], commonSuppressExtensions ],
-        [ 'vulkan_xlib.h',        [ 'VK_KHR_xlib_surface'         ], commonSuppressExtensions ],
-        [ 'vulkan_directfb.h',    [ 'VK_EXT_directfb_surface'     ], commonSuppressExtensions ],
-        [ 'vulkan_xlib_xrandr.h', [ 'VK_EXT_acquire_xlib_display' ], commonSuppressExtensions ],
-        [ 'vulkan_metal.h',       [ 'VK_EXT_metal_surface',
-                                    'VK_EXT_metal_objects'        ], commonSuppressExtensions ],
-        [ 'vulkan_screen.h',      [ 'VK_QNX_screen_surface'       ], commonSuppressExtensions ],
-        [ 'vulkan_beta.h',        betaRequireExtensions,             betaSuppressExtensions ],
-    ]
-
-    for platform in platforms:
-        headername = platform[0]
-
-        allPlatformExtensions += platform[1]
-
-        addPlatformExtensionsRE = makeREstring(
-            platform[1] + platform[2], strings_are_regex=True)
-        emitPlatformExtensionsRE = makeREstring(
-            platform[1], strings_are_regex=True)
-
-        opts = CGeneratorOptions(
-            conventions       = conventions,
-            filename          = headername,
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = None,
-            defaultExtensions = None,
-            addExtensions     = addPlatformExtensionsRE,
-            removeExtensions  = None,
-            emitExtensions    = emitPlatformExtensionsRE,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = True,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            protectProto      = '#ifndef',
-            protectProtoStr   = 'VK_NO_PROTOTYPES',
-            apicall           = 'VKAPI_ATTR ',
-            apientry          = 'VKAPI_CALL ',
-            apientryp         = 'VKAPI_PTR *',
-            alignFuncParam    = 48,
-            misracstyle       = misracstyle,
-            misracppstyle     = misracppstyle)
-
-        genOpts[headername] = [ COutputGenerator, opts ]
-
-    # Header for core API + extensions.
-    # To generate just the core API,
-    # change to 'defaultExtensions = None' below.
-    #
-    # By default this adds all enabled, non-platform extensions.
-    # It removes all platform extensions (from the platform headers options
-    # constructed above) as well as any explicitly specified removals.
-
-    removeExtensionsPat = makeREstring(
-        allPlatformExtensions + removeExtensions, None, strings_are_regex=True)
-
-    genOpts['vulkan_core.h'] = [
-          COutputGenerator,
-          CGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'vulkan_core.h',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = defaultExtensions,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = True,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            protectProto      = '#ifndef',
-            protectProtoStr   = 'VK_NO_PROTOTYPES',
-            apicall           = 'VKAPI_ATTR ',
-            apientry          = 'VKAPI_CALL ',
-            apientryp         = 'VKAPI_PTR *',
-            alignFuncParam    = 48,
-            misracstyle       = misracstyle,
-            misracppstyle     = misracppstyle)
-        ]
-
-    # Unused - vulkan10.h target.
-    # It is possible to generate a header with just the Vulkan 1.0 +
-    # extension interfaces defined, but since the promoted KHR extensions
-    # are now defined in terms of the 1.1 interfaces, such a header is very
-    # similar to vulkan_core.h.
-    genOpts['vulkan10.h'] = [
-          COutputGenerator,
-          CGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'vulkan10.h',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = 'VK_VERSION_1_0',
-            emitversions      = 'VK_VERSION_1_0',
-            defaultExtensions = None,
-            addExtensions     = None,
-            removeExtensions  = None,
-            emitExtensions    = None,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = True,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            protectProto      = '#ifndef',
-            protectProtoStr   = 'VK_NO_PROTOTYPES',
-            apicall           = 'VKAPI_ATTR ',
-            apientry          = 'VKAPI_CALL ',
-            apientryp         = 'VKAPI_PTR *',
-            alignFuncParam    = 48,
-            misracstyle       = misracstyle,
-            misracppstyle     = misracppstyle)
-        ]
-
-    # Video header target - combines all video extension dependencies into a
-    # single header, at present.
-    genOpts['vk_video.h'] = [
-          COutputGenerator,
-          CGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'vk_video.h',
-            directory         = directory,
-            genpath           = None,
-            apiname           = 'vulkan',
-            profile           = None,
-            versions          = None,
-            emitversions      = None,
-            defaultExtensions = defaultExtensions,
-            addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = True,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            protectProto      = '#ifndef',
-            protectProtoStr   = 'VK_NO_PROTOTYPES',
-            apicall           = '',
-            apientry          = '',
-            apientryp         = '',
-            alignFuncParam    = 48,
-            misracstyle       = misracstyle,
-            misracppstyle     = misracppstyle)
-    ]
-
-    # Video extension 'Std' interfaces, each in its own header files
-    # These are not Vulkan extensions, or a part of the Vulkan API at all,
-    # but are treated in a similar fashion for generation purposes.
-    #
-    # Each element of the videoStd[] array is an extension name defining an
-    # interface, and is also the basis for the generated header file name.
-
-    videoStd = [
-        'vulkan_video_codecs_common',
-        'vulkan_video_codec_h264std',
-        'vulkan_video_codec_h264std_decode',
-        'vulkan_video_codec_h264std_encode',
-        'vulkan_video_codec_h265std',
-        'vulkan_video_codec_h265std_decode',
-        'vulkan_video_codec_h265std_encode',
-    ]
-
-    addExtensionRE = makeREstring(videoStd)
-    for codec in videoStd:
-        headername = f'{codec}.h'
-
-        # Consider all of the codecs 'extensions', but only emit this one
-        emitExtensionRE = makeREstring([codec])
-
-        opts = CGeneratorOptions(
-            conventions       = conventions,
-            filename          = headername,
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = None,
-            emitversions      = None,
-            defaultExtensions = None,
-            addExtensions     = addExtensionRE,
-            removeExtensions  = None,
-            emitExtensions    = emitExtensionRE,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = False,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            alignFuncParam    = 48,
-            )
-
-        genOpts[headername] = [ COutputGenerator, opts ]
-
-    # Unused - vulkan11.h target.
-    # It is possible to generate a header with just the Vulkan 1.0 +
-    # extension interfaces defined, but since the promoted KHR extensions
-    # are now defined in terms of the 1.1 interfaces, such a header is very
-    # similar to vulkan_core.h.
-    genOpts['vulkan11.h'] = [
-          COutputGenerator,
-          CGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'vulkan11.h',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = '^VK_VERSION_1_[01]$',
-            emitversions      = '^VK_VERSION_1_[01]$',
-            defaultExtensions = None,
-            addExtensions     = None,
-            removeExtensions  = None,
-            emitExtensions    = None,
-            prefixText        = prefixStrings + vkPrefixStrings,
-            genFuncPointers   = True,
-            protectFile       = protectFile,
-            protectFeature    = False,
-            protectProto      = '#ifndef',
-            protectProtoStr   = 'VK_NO_PROTOTYPES',
-            apicall           = 'VKAPI_ATTR ',
-            apientry          = 'VKAPI_CALL ',
-            apientryp         = 'VKAPI_PTR *',
-            alignFuncParam    = 48,
-            misracstyle       = misracstyle,
-            misracppstyle     = misracppstyle)
-        ]
-
-    genOpts['alias.h'] = [
-          COutputGenerator,
-          CGeneratorOptions(
-            conventions       = conventions,
-            filename          = 'alias.h',
-            directory         = directory,
-            genpath           = None,
-            apiname           = defaultAPIName,
-            profile           = None,
-            versions          = featuresPat,
-            emitversions      = featuresPat,
-            defaultExtensions = defaultExtensions,
-            addExtensions     = None,
-            removeExtensions  = removeExtensionsPat,
-            emitExtensions    = emitExtensionsPat,
-            prefixText        = None,
-            genFuncPointers   = False,
-            protectFile       = False,
-            protectFeature    = False,
-            protectProto      = '',
-            protectProtoStr   = '',
-            apicall           = '',
-            apientry          = '',
-            apientryp         = '',
-            alignFuncParam    = 36)
-        ]
-
-
-def genTarget(args):
-    """Create an API generator and corresponding generator options based on
-    the requested target and command line options.
-
-    This is encapsulated in a function so it can be profiled and/or timed.
-    The args parameter is an parsed argument object containing the following
-    fields that are used:
-
-    - target - target to generate
-    - directory - directory to generate it in
-    - protect - True if re-inclusion wrappers should be created
-    - extensions - list of additional extensions to include in generated interfaces"""
-
-    # Create generator options with parameters specified on command line
-    makeGenOpts(args)
-
-    # Select a generator matching the requested target
-    if args.target in genOpts:
-        createGenerator = genOpts[args.target][0]
-        options = genOpts[args.target][1]
-
-        logDiag('* Building', options.filename)
-        logDiag('* options.versions          =', options.versions)
-        logDiag('* options.emitversions      =', options.emitversions)
-        logDiag('* options.defaultExtensions =', options.defaultExtensions)
-        logDiag('* options.addExtensions     =', options.addExtensions)
-        logDiag('* options.removeExtensions  =', options.removeExtensions)
-        logDiag('* options.emitExtensions    =', options.emitExtensions)
-        logDiag('* options.emitSpirv         =', options.emitSpirv)
-        logDiag('* options.emitFormats       =', options.emitFormats)
-
-        gen = createGenerator(errFile=errWarn,
-                              warnFile=errWarn,
-                              diagFile=diag)
-        return (gen, options)
-    else:
-        logErr('No generator options for unknown target:', args.target)
-        return None
-
-
-# -feature name
-# -extension name
-# For both, "name" may be a single name, or a space-separated list
-# of names, or a regular expression.
-if __name__ == '__main__':
-    parser = argparse.ArgumentParser()
-
-    parser.add_argument('-defaultExtensions', action='store',
-                        default=APIConventions().xml_api_name,
-                        help='Specify a single class of extensions to add to targets')
-    parser.add_argument('-extension', action='append',
-                        default=[],
-                        help='Specify an extension or extensions to add to targets')
-    parser.add_argument('-removeExtensions', action='append',
-                        default=[],
-                        help='Specify an extension or extensions to remove from targets')
-    parser.add_argument('-emitExtensions', action='append',
-                        default=[],
-                        help='Specify an extension or extensions to emit in targets')
-    parser.add_argument('-emitSpirv', action='append',
-                        default=[],
-                        help='Specify a SPIR-V extension or capability to emit in targets')
-    parser.add_argument('-emitFormats', action='append',
-                        default=[],
-                        help='Specify Vulkan Formats to emit in targets')
-    parser.add_argument('-feature', action='append',
-                        default=[],
-                        help='Specify a core API feature name or names to add to targets')
-    parser.add_argument('-debug', action='store_true',
-                        help='Enable debugging')
-    parser.add_argument('-dump', action='store_true',
-                        help='Enable dump to stderr')
-    parser.add_argument('-diagfile', action='store',
-                        default=None,
-                        help='Write diagnostics to specified file')
-    parser.add_argument('-errfile', action='store',
-                        default=None,
-                        help='Write errors and warnings to specified file instead of stderr')
-    parser.add_argument('-noprotect', dest='protect', action='store_false',
-                        help='Disable inclusion protection in output headers')
-    parser.add_argument('-profile', action='store_true',
-                        help='Enable profiling')
-    parser.add_argument('-registry', action='store',
-                        default='vk.xml',
-                        help='Use specified registry file instead of vk.xml')
-    parser.add_argument('-time', action='store_true',
-                        help='Enable timing')
-    parser.add_argument('-genpath', action='store', default='gen',
-                        help='Path to generated files')
-    parser.add_argument('-o', action='store', dest='directory',
-                        default='.',
-                        help='Create target and related files in specified directory')
-    parser.add_argument('target', metavar='target', nargs='?',
-                        help='Specify target')
-    parser.add_argument('-quiet', action='store_true', default=True,
-                        help='Suppress script output during normal execution.')
-    parser.add_argument('-verbose', action='store_false', dest='quiet', default=True,
-                        help='Enable script output during normal execution.')
-    parser.add_argument('-misracstyle', dest='misracstyle', action='store_true',
-                        help='generate MISRA C-friendly headers')
-    parser.add_argument('-misracppstyle', dest='misracppstyle', action='store_true',
-                        help='generate MISRA C++-friendly headers')
-
-    args = parser.parse_args()
-
-    # This splits arguments which are space-separated lists
-    args.feature = [name for arg in args.feature for name in arg.split()]
-    args.extension = [name for arg in args.extension for name in arg.split()]
-
-    # create error/warning & diagnostic files
-    if args.errfile:
-        errWarn = open(args.errfile, 'w', encoding='utf-8')
-    else:
-        errWarn = sys.stderr
-
-    if args.diagfile:
-        diag = open(args.diagfile, 'w', encoding='utf-8')
-    else:
-        diag = None
-
-    if args.time:
-        # Log diagnostics and warnings
-        setLogFile(setDiag = True, setWarn = True, filename = '-')
-
-    # Create the API generator & generator options
-    (gen, options) = genTarget(args)
-
-    # Create the registry object with the specified generator and generator
-    # options. The options are set before XML loading as they may affect it.
-    reg = Registry(gen, options)
-
-    # Parse the specified registry XML into an ElementTree object
-    startTimer(args.time)
-    tree = etree.parse(args.registry)
-    endTimer(args.time, '* Time to make ElementTree =')
-
-    # Load the XML tree into the registry object
-    startTimer(args.time)
-    reg.loadElementTree(tree)
-    endTimer(args.time, '* Time to parse ElementTree =')
-
-    if args.dump:
-        logDiag('* Dumping registry to regdump.txt')
-        reg.dumpReg(filehandle=open('regdump.txt', 'w', encoding='utf-8'))
-
-    # Finally, use the output generator to create the requested target
-    if args.debug:
-        pdb.run('reg.apiGen()')
-    else:
-        startTimer(args.time)
-        reg.apiGen()
-        endTimer(args.time, '* Time to generate ' + options.filename + ' =')
-
-    if not args.quiet:
-        logDiag('* Generated', options.filename)
diff --git a/registry/parse_dependency.py b/registry/parse_dependency.py
new file mode 100755
index 0000000..e997da5
--- /dev/null
+++ b/registry/parse_dependency.py
@@ -0,0 +1,403 @@
+#!/usr/bin/python3
+
+# Copyright 2022-2024 The Khronos Group Inc.
+# Copyright 2003-2019 Paul McGuire
+# SPDX-License-Identifier: MIT
+
+# apirequirements.py - parse 'depends' expressions in API XML
+# Supported methods:
+#   dependency - the expression string
+#
+# evaluateDependency(dependency, isSupported) evaluates the expression,
+# returning a boolean result. isSupported takes an extension or version name
+# string and returns a boolean.
+#
+# dependencyLanguage(dependency) returns an English string equivalent
+# to the expression, suitable for header file comments.
+#
+# dependencyNames(dependency) returns a set of the extension and
+# version names in the expression.
+#
+# dependencyMarkup(dependency) returns a string containing asciidoctor
+# markup for English equivalent to the expression, suitable for extension
+# appendices.
+#
+# All may throw a ParseException if the expression cannot be parsed or is
+# not completely consumed by parsing.
+
+# Supported expressions at present:
+#   - extension names
+#   - '+' as AND connector
+#   - ',' as OR connector
+#   - parenthesization for grouping
+
+# Based on https://github.com/pyparsing/pyparsing/blob/master/examples/fourFn.py
+
+from pyparsing import (
+    Literal,
+    Word,
+    Group,
+    Forward,
+    alphas,
+    alphanums,
+    Regex,
+    ParseException,
+    CaselessKeyword,
+    Suppress,
+    delimitedList,
+    infixNotation,
+)
+import math
+import operator
+import pyparsing as pp
+import re
+
+from apiconventions import APIConventions as APIConventions
+conventions = APIConventions()
+
+def markupPassthrough(name):
+    """Pass a name (leaf or operator) through without applying markup"""
+    return name
+
+def leafMarkupAsciidoc(name):
+    """Markup a leaf name as an asciidoc link to an API version or extension
+       anchor.
+
+       - name - version or extension name"""
+
+    return conventions.formatVersionOrExtension(name)
+
+def leafMarkupC(name):
+    """Markup a leaf name as a C expression, using conventions of the
+       Vulkan Validation Layers
+
+       - name - version or extension name"""
+
+    (apivariant, major, minor) = apiVersionNameMatch(name)
+
+    if apivariant is not None:
+        return name
+    else:
+        return f'ext.{name}'
+
+opMarkupAsciidocMap = { '+' : 'and', ',' : 'or' }
+
+def opMarkupAsciidoc(op):
+    """Markup a operator as an asciidoc spec markup equivalent
+
+       - op - operator ('+' or ',')"""
+
+    return opMarkupAsciidocMap[op]
+
+opMarkupCMap = { '+' : '&&', ',' : '||' }
+
+def opMarkupC(op):
+    """Markup a operator as an C language equivalent
+
+       - op - operator ('+' or ',')"""
+
+    return opMarkupCMap[op]
+
+
+# Unfortunately global to be used in pyparsing
+exprStack = []
+
+def push_first(toks):
+    """Push a token on the global stack
+
+       - toks - first element is the token to push"""
+
+    exprStack.append(toks[0])
+
+# An identifier (version or extension name)
+dependencyIdent = Word(alphanums + '_')
+
+# Infix expression for depends expressions
+dependencyExpr = pp.infixNotation(dependencyIdent,
+    [ (pp.oneOf(', +'), 2, pp.opAssoc.LEFT), ])
+
+# BNF grammar for depends expressions
+_bnf = None
+def dependencyBNF():
+    """
+    boolop  :: '+' | ','
+    extname :: Char(alphas)
+    atom    :: extname | '(' expr ')'
+    expr    :: atom [ boolop atom ]*
+    """
+    global _bnf
+    if _bnf is None:
+        and_, or_ = map(Literal, '+,')
+        lpar, rpar = map(Suppress, '()')
+        boolop = and_ | or_
+
+        expr = Forward()
+        expr_list = delimitedList(Group(expr))
+        atom = (
+            boolop[...]
+            + (
+                (dependencyIdent).setParseAction(push_first)
+                | Group(lpar + expr + rpar)
+            )
+        )
+
+        expr <<= atom + (boolop + atom).setParseAction(push_first)[...]
+        _bnf = expr
+    return _bnf
+
+
+# map operator symbols to corresponding arithmetic operations
+_opn = {
+    '+': operator.and_,
+    ',': operator.or_,
+}
+
+def evaluateStack(stack, isSupported):
+    """Evaluate an expression stack, returning a boolean result.
+
+     - stack - the stack
+     - isSupported - function taking a version or extension name string and
+       returning True or False if that name is supported or not."""
+
+    op, num_args = stack.pop(), 0
+    if isinstance(op, tuple):
+        op, num_args = op
+
+    if op in '+,':
+        # Note: operands are pushed onto the stack in reverse order
+        op2 = evaluateStack(stack, isSupported)
+        op1 = evaluateStack(stack, isSupported)
+        return _opn[op](op1, op2)
+    elif op[0].isalpha():
+        return isSupported(op)
+    else:
+        raise Exception(f'invalid op: {op}')
+
+def evaluateDependency(dependency, isSupported):
+    """Evaluate a dependency expression, returning a boolean result.
+
+     - dependency - the expression
+     - isSupported - function taking a version or extension name string and
+       returning True or False if that name is supported or not."""
+
+    global exprStack
+    exprStack = []
+    results = dependencyBNF().parseString(dependency, parseAll=True)
+    val = evaluateStack(exprStack[:], isSupported)
+    return val
+
+def evalDependencyLanguage(stack, leafMarkup, opMarkup, parenthesize, root):
+    """Evaluate an expression stack, returning an English equivalent
+
+     - stack - the stack
+     - leafMarkup, opMarkup, parenthesize - same as dependencyLanguage
+     - root - True only if this is the outer (root) expression level"""
+
+    op, num_args = stack.pop(), 0
+    if isinstance(op, tuple):
+        op, num_args = op
+    if op in '+,':
+        # Could parenthesize, not needed yet
+        rhs = evalDependencyLanguage(stack, leafMarkup, opMarkup, parenthesize, root = False)
+        opname = opMarkup(op)
+        lhs = evalDependencyLanguage(stack, leafMarkup, opMarkup, parenthesize, root = False)
+        if parenthesize and not root:
+            return f'({lhs} {opname} {rhs})'
+        else:
+            return f'{lhs} {opname} {rhs}'
+    elif op[0].isalpha():
+        # This is an extension or feature name
+        return leafMarkup(op)
+    else:
+        raise Exception(f'invalid op: {op}')
+
+def dependencyLanguage(dependency, leafMarkup, opMarkup, parenthesize):
+    """Return an API dependency expression translated to a form suitable for
+       asciidoctor conditionals or header file comments.
+
+     - dependency - the expression
+     - leafMarkup - function taking an extension / version name and
+                    returning an equivalent marked up version
+     - opMarkup - function taking an operator ('+' / ',') name name and
+                  returning an equivalent marked up version
+     - parenthesize - True if parentheses should be used in the resulting
+                      expression, False otherwise"""
+
+    global exprStack
+    exprStack = []
+    results = dependencyBNF().parseString(dependency, parseAll=True)
+    return evalDependencyLanguage(exprStack, leafMarkup, opMarkup, parenthesize, root = True)
+
+# aka specmacros = False
+def dependencyLanguageComment(dependency):
+    """Return dependency expression translated to a form suitable for
+       comments in headers of emitted C code, as used by the
+       docgenerator."""
+    return dependencyLanguage(dependency, leafMarkup = markupPassthrough, opMarkup = opMarkupAsciidoc, parenthesize = True)
+
+# aka specmacros = True
+def dependencyLanguageSpecMacros(dependency):
+    """Return dependency expression translated to a form suitable for
+       comments in headers of emitted C code, as used by the
+       interfacegenerator."""
+    return dependencyLanguage(dependency, leafMarkup = leafMarkupAsciidoc, opMarkup = opMarkupAsciidoc, parenthesize = False)
+
+def dependencyLanguageC(dependency):
+    """Return dependency expression translated to a form suitable for
+       use in C expressions"""
+    return dependencyLanguage(dependency, leafMarkup = leafMarkupC, opMarkup = opMarkupC, parenthesize = True)
+
+def evalDependencyNames(stack):
+    """Evaluate an expression stack, returning the set of extension and
+       feature names used in the expression.
+
+     - stack - the stack"""
+
+    op, num_args = stack.pop(), 0
+    if isinstance(op, tuple):
+        op, num_args = op
+    if op in '+,':
+        # Do not evaluate the operation. We only care about the names.
+        return evalDependencyNames(stack) | evalDependencyNames(stack)
+    elif op[0].isalpha():
+        return { op }
+    else:
+        raise Exception(f'invalid op: {op}')
+
+def dependencyNames(dependency):
+    """Return a set of the extension and version names in an API dependency
+       expression. Used when determining transitive dependencies for spec
+       generation with specific extensions included.
+
+     - dependency - the expression"""
+
+    global exprStack
+    exprStack = []
+    results = dependencyBNF().parseString(dependency, parseAll=True)
+    # print(f'names(): stack = {exprStack}')
+    return evalDependencyNames(exprStack)
+
+def markupTraverse(expr, level = 0, root = True):
+    """Recursively process a dependency in infix form, transforming it into
+       asciidoctor markup with expression nesting indicated by indentation
+       level.
+
+       - expr - expression to process
+       - level - indentation level to render expression at
+       - root - True only on initial call"""
+
+    if level > 0:
+        prefix = '{nbsp}{nbsp}' * level * 2 + ' '
+    else:
+        prefix = ''
+    str = ''
+
+    for elem in expr:
+        if isinstance(elem, pp.ParseResults):
+            if not root:
+                nextlevel = level + 1
+            else:
+                # Do not indent the outer expression
+                nextlevel = level
+
+            str = str + markupTraverse(elem, level = nextlevel, root = False)
+        elif elem in ('+', ','):
+            str = str + f'{prefix}{opMarkupAsciidoc(elem)} +\n'
+        else:
+            str = str + f'{prefix}{leafMarkupAsciidoc(elem)} +\n'
+
+    return str
+
+def dependencyMarkup(dependency):
+    """Return asciidoctor markup for a human-readable equivalent of an API
+       dependency expression, suitable for use in extension appendix
+       metadata.
+
+     - dependency - the expression"""
+
+    parsed = dependencyExpr.parseString(dependency)
+    return markupTraverse(parsed)
+
+if __name__ == "__main__":
+    for str in [ 'VK_VERSION_1_0', 'cl_khr_extension_name', 'XR_VERSION_3_2', 'CL_VERSION_1_0' ]:
+        print(f'{str} -> {conventions.formatVersionOrExtension(str)}')
+    import sys
+    sys.exit(0)
+
+    termdict = {
+        'VK_VERSION_1_1' : True,
+        'false' : False,
+        'true' : True,
+    }
+    termSupported = lambda name: name in termdict and termdict[name]
+
+    def test(dependency, expected):
+        val = False
+        try:
+            val = evaluateDependency(dependency, termSupported)
+        except ParseException as pe:
+            print(dependency, f'failed parse: {dependency}')
+        except Exception as e:
+            print(dependency, f'failed eval: {dependency}')
+
+        if val == expected:
+            True
+            # print(f'{dependency} = {val} (as expected)')
+        else:
+            print(f'{dependency} ERROR: {val} != {expected}')
+
+    # Verify expressions are evaluated left-to-right
+
+    test('false,false+false', False)
+    test('false,false+true', False)
+    test('false,true+false', False)
+    test('false,true+true', True)
+    test('true,false+false', False)
+    test('true,false+true', True)
+    test('true,true+false', False)
+    test('true,true+true', True)
+
+    test('false,(false+false)', False)
+    test('false,(false+true)', False)
+    test('false,(true+false)', False)
+    test('false,(true+true)', True)
+    test('true,(false+false)', True)
+    test('true,(false+true)', True)
+    test('true,(true+false)', True)
+    test('true,(true+true)', True)
+
+
+    test('false+false,false', False)
+    test('false+false,true', True)
+    test('false+true,false', False)
+    test('false+true,true', True)
+    test('true+false,false', False)
+    test('true+false,true', True)
+    test('true+true,false', True)
+    test('true+true,true', True)
+
+    test('false+(false,false)', False)
+    test('false+(false,true)', False)
+    test('false+(true,false)', False)
+    test('false+(true,true)', False)
+    test('true+(false,false)', False)
+    test('true+(false,true)', True)
+    test('true+(true,false)', True)
+    test('true+(true,true)', True)
+
+    # Check formatting
+    for dependency in [
+        #'true',
+        #'true+true+false',
+        'true+false',
+        'true+(true+false),(false,true)',
+        #'true+((true+false),(false,true))',
+        'VK_VERSION_1_0+VK_KHR_display',
+        #'VK_VERSION_1_1+(true,false)',
+    ]:
+        print(f'expr = {dependency}\n{dependencyMarkup(dependency)}')
+        print(f'  spec language = {dependencyLanguageSpecMacros(dependency)}')
+        print(f'  comment language = {dependencyLanguageComment(dependency)}')
+        print(f'  C language = {dependencyLanguageC(dependency)}')
+        print(f'  names = {dependencyNames(dependency)}')
+        print(f'  value = {evaluateDependency(dependency, termSupported)}')
diff --git a/registry/profiles/VP_KHR_roadmap_2022.json b/registry/profiles/VP_KHR_roadmap_2022.json
index b528eca..d950e77 100644
--- a/registry/profiles/VP_KHR_roadmap_2022.json
+++ b/registry/profiles/VP_KHR_roadmap_2022.json
@@ -202,83 +202,6 @@
                 }
             }
         },
-        "vulkan13requirements_1_2": {
-            "extensions": {
-                "VK_EXT_image_robustness": 1,
-                "VK_KHR_shader_non_semantic_info": 1,
-                "VK_KHR_shader_terminate_invocation": 1,
-                "VK_KHR_format_feature_flags2": 1,
-                "VK_KHR_zero_initialize_workgroup_memory": 1,
-                "VK_KHR_synchronization2": 1,
-                "VK_KHR_shader_integer_dot_product": 1,
-                "VK_KHR_maintenance4": 1,
-                "VK_EXT_4444_formats": 1,
-                "VK_EXT_extended_dynamic_state": 1,
-                "VK_EXT_extended_dynamic_state2": 1,
-                "VK_EXT_pipeline_creation_cache_control": 1,
-                "VK_EXT_subgroup_size_control": 1,
-                "VK_EXT_shader_demote_to_helper_invocation": 1,
-                "VK_EXT_inline_uniform_block": 1,
-                "VK_EXT_pipeline_creation_feedback": 1,
-                "VK_EXT_texel_buffer_alignment": 1,
-                "VK_EXT_ycbcr_2plane_444_formats": 1,
-                "VK_EXT_texture_compression_astc_hdr": 1,
-                "VK_EXT_tooling_info": 1,
-                "VK_EXT_private_data": 1,
-                "VK_KHR_dynamic_rendering": 1
-            },
-            "features": {
-                "VkPhysicalDeviceVulkan12Features": {
-                    "vulkanMemoryModel": true,
-                    "vulkanMemoryModelDeviceScope": true,
-                    "vulkanMemoryModelAvailabilityVisibilityChains": true,
-                    "bufferDeviceAddress": true
-                },
-                "VkPhysicalDeviceImageRobustnessFeaturesEXT": {
-                    "robustImageAccess": true
-                },
-                "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR": {
-                    "shaderTerminateInvocation": true
-                },
-                "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR": {
-                    "shaderZeroInitializeWorkgroupMemory": true
-                },
-                "VkPhysicalDeviceSynchronization2FeaturesKHR": {
-                    "synchronization2": true
-                },
-                "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR": {
-                    "shaderIntegerDotProduct": true
-                },
-                "VkPhysicalDeviceMaintenance4FeaturesKHR": {
-                    "maintenance4": true
-                },
-                "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT": {
-                    "pipelineCreationCacheControl": true
-                },
-                "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT": {
-                    "subgroupSizeControl": true,
-                    "computeFullSubgroups": true
-                },
-                "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT": {
-                    "shaderDemoteToHelperInvocation": true
-                },
-                "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": {
-                    "inlineUniformBlock": true
-                }
-            },
-            "properties": {
-                "VkPhysicalDeviceMaintenance4PropertiesKHR": {
-                    "maxBufferSize": 1073741824
-                },
-                "VkPhysicalDeviceInlineUniformBlockPropertiesEXT": {
-                    "maxInlineUniformBlockSize": 256,
-                    "maxPerStageDescriptorInlineUniformBlocks": 4,
-                    "maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks": 4,
-                    "maxDescriptorSetInlineUniformBlocks": 4,
-                    "maxDescriptorSetUpdateAfterBindInlineUniformBlocks": 4
-                }
-            }
-        },
         "vulkan13requirements_roadmap2022": {
             "extensions": {
                 "VK_KHR_global_priority": 1
@@ -288,17 +211,6 @@
                     "descriptorBindingInlineUniformBlockUpdateAfterBind": true
                 }
             }
-        },
-        "vulkan13requirements_roadmap2022_1_2": {
-            "extensions": {
-                "VK_EXT_global_priority": 1,
-                "VK_EXT_inline_uniform_block": 1
-            },
-            "features": {
-                "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": {
-                    "descriptorBindingInlineUniformBlockUpdateAfterBind": true
-                }
-            }
         }
     },
     "profiles": {
@@ -321,6 +233,12 @@
             },
             "history": [
                 {
+                    "revision": 8,
+                    "date": "2023-11-02",
+                    "author": "Christophe Riccio",
+                    "comment": "Remove unreferenced capabilities blocks that were written against Vulkan 1.2 for testing before Vulkan 1.3 was released"
+                },
+                {
                     "revision": 7,
                     "date": "2022-11-16",
                     "author": "Christophe Riccio",
diff --git a/registry/reg.py b/registry/reg.py
index ab72c82..b8f8af7 100644
--- a/registry/reg.py
+++ b/registry/reg.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2013-2022 The Khronos Group Inc.
+# Copyright 2013-2024 The Khronos Group Inc.
 #
 # SPDX-License-Identifier: Apache-2.0
 
@@ -88,6 +88,82 @@
     return True
 
 
+def mergeAPIs(tree, fromApiNames, toApiName):
+    """Merge multiple APIs using the precedence order specified in apiNames.
+    Also deletes <remove> elements.
+
+        tree - Element at the root of the hierarchy to merge.
+        apiNames - list of strings of API names."""
+
+    stack = deque()
+    stack.append(tree)
+
+    while len(stack) > 0:
+        parent = stack.pop()
+
+        for child in parent.findall('*'):
+            if child.tag == 'remove':
+                # Remove <remove> elements
+                parent.remove(child)
+            else:
+                stack.append(child)
+
+            supportedList = child.get('supported')
+            if supportedList:
+                supportedList = supportedList.split(',')
+                for apiName in [toApiName] + fromApiNames:
+                    if apiName in supportedList:
+                        child.set('supported', toApiName)
+
+            if child.get('api'):
+                definitionName = None
+                definitionVariants = []
+
+                # Keep only one definition with the same name if there are multiple definitions
+                if child.tag in ['type']:
+                    if child.get('name') is not None:
+                        definitionName = child.get('name')
+                        definitionVariants = parent.findall(f"{child.tag}[@name='{definitionName}']")
+                    else:
+                        definitionName = child.find('name').text
+                        definitionVariants = parent.findall(f"{child.tag}/name[.='{definitionName}']/..")
+                elif child.tag in ['member', 'param']:
+                    definitionName = child.find('name').text
+                    definitionVariants = parent.findall(f"{child.tag}/name[.='{definitionName}']/..")
+                elif child.tag in ['enum', 'feature']:
+                    definitionName = child.get('name')
+                    definitionVariants = parent.findall(f"{child.tag}[@name='{definitionName}']")
+                elif child.tag in ['require']:
+                    definitionName = child.get('feature')
+                    definitionVariants = parent.findall(f"{child.tag}[@feature='{definitionName}']")
+                elif child.tag in ['command']:
+                    definitionName = child.find('proto/name').text
+                    definitionVariants = parent.findall(f"{child.tag}/proto/name[.='{definitionName}']/../..")
+
+                if definitionName:
+                    bestMatchApi = None
+                    requires = None
+                    for apiName in [toApiName] + fromApiNames:
+                        for variant in definitionVariants:
+                            # Keep any requires attributes from the target API
+                            if variant.get('requires') and variant.get('api') == apiName:
+                                requires = variant.get('requires')
+                            # Find the best matching definition
+                            if apiName in variant.get('api').split(',') and bestMatchApi is None:
+                                bestMatchApi = variant.get('api')
+
+                    if bestMatchApi:
+                        for variant in definitionVariants:
+                            if variant.get('api') != bestMatchApi:
+                                # Only keep best matching definition
+                                parent.remove(variant)
+                            else:
+                                # Add requires attribute from the target API if it is not overridden
+                                if requires is not None and variant.get('requires') is None:
+                                    variant.set('requires', requires)
+                                variant.set('api', toApiName)
+
+
 def stripNonmatchingAPIs(tree, apiName, actuallyDelete = True):
     """Remove tree Elements with 'api' attributes matching apiName.
 
@@ -300,6 +376,28 @@
         # Need to save the condition here when it is known
         self.condition = condition
 
+class SyncStageInfo(BaseInfo):
+    """Registry information about <syncstage>."""
+
+    def __init__(self, elem, condition):
+        BaseInfo.__init__(self, elem)
+        # Need to save the condition here when it is known
+        self.condition = condition
+
+class SyncAccessInfo(BaseInfo):
+    """Registry information about <syncaccess>."""
+
+    def __init__(self, elem, condition):
+        BaseInfo.__init__(self, elem)
+        # Need to save the condition here when it is known
+        self.condition = condition
+
+class SyncPipelineInfo(BaseInfo):
+    """Registry information about <syncpipeline>."""
+
+    def __init__(self, elem):
+        BaseInfo.__init__(self, elem)
+
 class Registry:
     """Object representing an API registry, loaded from an XML file."""
 
@@ -356,6 +454,15 @@
         self.formatsdict = {}
         "dictionary of FeatureInfo objects for `<format>` elements keyed by VkFormat name"
 
+        self.syncstagedict = {}
+        "dictionary of Sync*Info objects for `<syncstage>` elements keyed by VkPipelineStageFlagBits2 name"
+
+        self.syncaccessdict = {}
+        "dictionary of Sync*Info objects for `<syncaccess>` elements keyed by VkAccessFlagBits2 name"
+
+        self.syncpipelinedict = {}
+        "dictionary of Sync*Info objects for `<syncpipeline>` elements keyed by pipeline type name"
+
         self.emitFeatures = False
         """True to actually emit features for a version / extension,
         or False to just treat them as emitted"""
@@ -401,10 +508,10 @@
 
         Intended for internal use only.
 
-        - elem - `<type>`/`<enums>`/`<enum>`/`<command>`/`<feature>`/`<extension>`/`<spirvextension>`/`<spirvcapability>`/`<format>` Element
-        - info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv|Format}Info object
-        - infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' / 'format'
-        - dictionary - self.{type|group|enum|cmd|api|ext|format|spirvext|spirvcap}dict
+        - elem - `<type>`/`<enums>`/`<enum>`/`<command>`/`<feature>`/`<extension>`/`<spirvextension>`/`<spirvcapability>`/`<format>`/`<syncstage>`/`<syncaccess>`/`<syncpipeline>` Element
+        - info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv|Format|SyncStage|SyncAccess|SyncPipeline}Info object
+        - infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' / 'format' / 'syncstage' / 'syncaccess' / 'syncpipeline'
+        - dictionary - self.{type|group|enum|cmd|api|ext|format|spirvext|spirvcap|sync}dict
 
         The dictionary key is the element 'name' attribute."""
 
@@ -448,8 +555,10 @@
             raise RuntimeError("Tree not initialized!")
         self.reg = self.tree.getroot()
 
-        # Preprocess the tree by removing all elements with non-matching
-        # 'api' attributes by breadth-first tree traversal.
+        # Preprocess the tree in one of the following ways:
+        # - either merge a set of APIs to another API based on their 'api' attributes
+        # - or remove all elements with non-matching 'api' attributes
+        # The preprocessing happens through a breath-first tree traversal.
         # This is a blunt hammer, but eliminates the need to track and test
         # the apis deeper in processing to select the correct elements and
         # avoid duplicates.
@@ -457,7 +566,10 @@
         # overlapping api attributes, or where one element has an api
         # attribute and the other does not.
 
-        stripNonmatchingAPIs(self.reg, self.genOpts.apiname, actuallyDelete = True)
+        if self.genOpts.mergeApiNames:
+            mergeAPIs(self.reg, self.genOpts.mergeApiNames.split(','), self.genOpts.apiname)
+        else:
+            stripNonmatchingAPIs(self.reg, self.genOpts.apiname, actuallyDelete = True)
 
         # Create dictionary of registry types from toplevel <types> tags
         # and add 'name' attribute to each <type> tag (where missing)
@@ -602,6 +714,9 @@
                         enumInfo = EnumInfo(enum)
                         self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
 
+        sync_pipeline_stage_condition = dict()
+        sync_access_condition = dict()
+
         self.extensions = self.reg.findall('extensions/extension')
         self.extdict = {}
         for feature in self.extensions:
@@ -649,6 +764,25 @@
                                 format_condition[format_name] += "," + featureInfo.name
                             else:
                                 format_condition[format_name] = featureInfo.name
+                        elif groupName == "VkPipelineStageFlagBits2":
+                            stage_flag = enum.get('name')
+                            if enum.get('alias'):
+                                stage_flag = enum.get('alias')
+                            featureName = elem.get('depends') if elem.get('depends') is not None else featureInfo.name
+                            if stage_flag in sync_pipeline_stage_condition:
+                                sync_pipeline_stage_condition[stage_flag] += "," + featureName
+                            else:
+                                sync_pipeline_stage_condition[stage_flag] = featureName
+                        elif groupName == "VkAccessFlagBits2":
+                            access_flag = enum.get('name')
+                            if enum.get('alias'):
+                                access_flag = enum.get('alias')
+                            featureName = elem.get('depends') if elem.get('depends') is not None else featureInfo.name
+                            if access_flag in sync_access_condition:
+                                sync_access_condition[access_flag] += "," + featureName
+                            else:
+                                sync_access_condition[access_flag] = featureName
+
                         addEnumInfo = True
                     elif enum.get('value') or enum.get('bitpos') or enum.get('alias'):
                         # self.gen.logMsg('diag', 'Adding extension constant "enum"',
@@ -658,24 +792,6 @@
                         enumInfo = EnumInfo(enum)
                         self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
 
-        # Construct a "validextensionstructs" list for parent structures
-        # based on "structextends" tags in child structures
-        disabled_types = []
-        for disabled_ext in self.reg.findall('extensions/extension[@supported="disabled"]'):
-            for type_elem in disabled_ext.findall("*/type"):
-                disabled_types.append(type_elem.get('name'))
-        for type_elem in self.reg.findall('types/type'):
-            if type_elem.get('name') not in disabled_types:
-                # The structure type this may be chained to.
-                struct_extends = type_elem.get('structextends')
-                if struct_extends is not None:
-                    for parent in struct_extends.split(','):
-                        # self.gen.logMsg('diag', type.get('name'), 'extends', parent)
-                        self.validextensionstructs[parent].append(type_elem.get('name'))
-        # Sort the lists so they do not depend on the XML order
-        for parent in self.validextensionstructs:
-            self.validextensionstructs[parent].sort()
-
         # Parse out all spirv tags in dictionaries
         # Use addElementInfo to catch duplicates
         for spirv in self.reg.findall('spirvextensions/spirvextension'):
@@ -693,6 +809,26 @@
             formatInfo = FormatInfo(format, condition)
             self.addElementInfo(format, formatInfo, 'format', self.formatsdict)
 
+        for stage in self.reg.findall('sync/syncstage'):
+            condition = None
+            stage_flag = stage.get('name')
+            if stage_flag in sync_pipeline_stage_condition:
+                condition = sync_pipeline_stage_condition[stage_flag]
+            syncInfo = SyncStageInfo(stage, condition)
+            self.addElementInfo(stage, syncInfo, 'syncstage', self.syncstagedict)
+
+        for access in self.reg.findall('sync/syncaccess'):
+            condition = None
+            access_flag = access.get('name')
+            if access_flag in sync_access_condition:
+                condition = sync_access_condition[access_flag]
+            syncInfo = SyncAccessInfo(access, condition)
+            self.addElementInfo(access, syncInfo, 'syncaccess', self.syncaccessdict)
+
+        for pipeline in self.reg.findall('sync/syncpipeline'):
+            syncInfo = SyncPipelineInfo(pipeline)
+            self.addElementInfo(pipeline, syncInfo, 'syncpipeline', self.syncpipelinedict)
+
     def dumpReg(self, maxlen=120, filehandle=sys.stdout):
         """Dump all the dictionaries constructed from the Registry object.
 
@@ -946,6 +1082,8 @@
         if alias is None:
             name = elem.get('name')
             typeinfo = self.lookupElementInfo(name, dict)
+            if not typeinfo:
+                self.gen.logMsg('error', name, 'is not a known name')
             alias = typeinfo.elem.get('alias')
 
         return alias
@@ -1001,10 +1139,8 @@
                 # expression of extension names.
                 # 'required_key' is used only as a dictionary key at
                 # present, and passed through to the script generators, so
-                # they must be prepared to parse that expression.
-                required_key = require.get('feature')
-                if required_key is None:
-                    required_key = require.get('extension')
+                # they must be prepared to parse that boolean expression.
+                required_key = require.get('depends')
 
                 # Loop over types, enums, and commands in the tag
                 for typeElem in require.findall('type'):
@@ -1105,15 +1241,23 @@
                     if v.get('struct'):
                         self.typedict[v.get('struct')].removedValidity.append(copy.deepcopy(v))
 
-    def generateFeature(self, fname, ftype, dictionary):
+    def generateFeature(self, fname, ftype, dictionary, explicit=False):
         """Generate a single type / enum group / enum / command,
         and all its dependencies as needed.
 
         - fname - name of feature (`<type>`/`<enum>`/`<command>`)
         - ftype - type of feature, 'type' | 'enum' | 'command'
-        - dictionary - of *Info objects - self.{type|enum|cmd}dict"""
+        - dictionary - of *Info objects - self.{type|enum|cmd}dict
+        - explicit - True if this is explicitly required by the top-level
+          XML <require> tag, False if it is a dependency of an explicit
+          requirement."""
 
         self.gen.logMsg('diag', 'generateFeature: generating', ftype, fname)
+
+        if not (explicit or self.genOpts.requireDepends):
+            self.gen.logMsg('diag', 'generateFeature: NOT generating', ftype, fname, 'because generator does not require dependencies')
+            return
+
         f = self.lookupElementInfo(fname, dictionary)
         if f is None:
             # No such feature. This is an error, but reported earlier
@@ -1290,16 +1434,16 @@
         # Loop over all features inside all <require> tags.
         for features in interface.findall('require'):
             for t in features.findall('type'):
-                self.generateFeature(t.get('name'), 'type', self.typedict)
+                self.generateFeature(t.get('name'), 'type', self.typedict, explicit=True)
             for e in features.findall('enum'):
                 # If this is an enum extending an enumerated type, do not
                 # generate it - this has already been done in reg.parseTree,
                 # by copying this element into the enumerated type.
                 enumextends = e.get('extends')
                 if not enumextends:
-                    self.generateFeature(e.get('name'), 'enum', self.enumdict)
+                    self.generateFeature(e.get('name'), 'enum', self.enumdict, explicit=True)
             for c in features.findall('command'):
-                self.generateFeature(c.get('name'), 'command', self.cmddict)
+                self.generateFeature(c.get('name'), 'command', self.cmddict, explicit=True)
 
     def generateSpirv(self, spirv, dictionary):
         if spirv is None:
@@ -1329,7 +1473,7 @@
                 stripped = False
                 for api in attribstring.split(','):
                     ##print('Checking API {} referenced by {}'.format(api, key))
-                    if supportedDictionary[api].required:
+                    if api in supportedDictionary and supportedDictionary[api].required:
                         apis.append(api)
                     else:
                         stripped = True
@@ -1340,6 +1484,30 @@
                 if stripped:
                     eleminfo.elem.set(attribute, ','.join(apis))
 
+    def stripUnsupportedAPIsFromList(self, dictionary, supportedDictionary):
+        """Strip unsupported APIs from attributes of APIs.
+           dictionary - dictionary of list of structure name strings
+           supportedDictionary - dictionary in which to look for supported
+            API elements in the attribute"""
+
+        for key in dictionary:
+            attribstring = dictionary[key]
+            if attribstring is not None:
+                apis = []
+                stripped = False
+                for api in attribstring:
+                    ##print('Checking API {} referenced by {}'.format(api, key))
+                    if supportedDictionary[api].required:
+                        apis.append(api)
+                    else:
+                        stripped = True
+                        ##print('\t**STRIPPING API {} from {}'.format(api, key))
+
+                # Update the attribute after stripping stuff.
+                # Could sort apis before joining, but it is not a clear win
+                if stripped:
+                    dictionary[key] = apis
+
     def generateFormat(self, format, dictionary):
         if format is None:
             self.gen.logMsg('diag', 'No entry found for format element',
@@ -1353,6 +1521,36 @@
             genProc = self.gen.genFormat
             genProc(format, name, alias)
 
+    def generateSyncStage(self, sync):
+        genProc = self.gen.genSyncStage
+        genProc(sync)
+
+    def generateSyncAccess(self, sync):
+        genProc = self.gen.genSyncAccess
+        genProc(sync)
+
+    def generateSyncPipeline(self, sync):
+        genProc = self.gen.genSyncPipeline
+        genProc(sync)
+
+    def tagValidExtensionStructs(self):
+        """Construct a "validextensionstructs" list for parent structures
+           based on "structextends" tags in child structures.
+           Only do this for structures tagged as required."""
+
+        for typeinfo in self.typedict.values():
+            type_elem = typeinfo.elem
+            if typeinfo.required and type_elem.get('category') == 'struct':
+                struct_extends = type_elem.get('structextends')
+                if struct_extends is not None:
+                    for parent in struct_extends.split(','):
+                        # self.gen.logMsg('diag', type_elem.get('name'), 'extends', parent)
+                        self.validextensionstructs[parent].append(type_elem.get('name'))
+
+        # Sort the lists so they do not depend on the XML order
+        for parent in self.validextensionstructs:
+            self.validextensionstructs[parent].sort()
+
     def apiGen(self):
         """Generate interface for specified versions using the current
         generator and generator options"""
@@ -1523,6 +1721,10 @@
         self.stripUnsupportedAPIs(self.typedict, 'structextends', self.typedict)
         self.stripUnsupportedAPIs(self.cmddict, 'successcodes', self.enumdict)
         self.stripUnsupportedAPIs(self.cmddict, 'errorcodes', self.enumdict)
+        self.stripUnsupportedAPIsFromList(self.validextensionstructs, self.typedict)
+
+        # Construct lists of valid extension structures
+        self.tagValidExtensionStructs()
 
         # @@May need to strip <spirvcapability> / <spirvextension> <enable>
         # tags of these forms:
@@ -1555,6 +1757,12 @@
             self.generateSpirv(s, self.spirvcapdict)
         for s in formats:
             self.generateFormat(s, self.formatsdict)
+        for s in self.syncstagedict:
+            self.generateSyncStage(self.syncstagedict[s])
+        for s in self.syncaccessdict:
+            self.generateSyncAccess(self.syncaccessdict[s])
+        for s in self.syncpipelinedict:
+            self.generateSyncPipeline(self.syncpipelinedict[s])
         self.gen.endFile()
 
     def apiReset(self):
diff --git a/registry/spec_tools/conventions.py b/registry/spec_tools/conventions.py
index b314ee7..4a2f056 100644
--- a/registry/spec_tools/conventions.py
+++ b/registry/spec_tools/conventions.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2013-2022 The Khronos Group Inc.
+# Copyright 2013-2024 The Khronos Group Inc.
 #
 # SPDX-License-Identifier: Apache-2.0
 
@@ -32,7 +32,12 @@
                                 ))
 
 # Split an extension name into vendor ID and name portions
-EXT_NAME_DECOMPOSE_RE = re.compile(r'[A-Z]+_(?P<vendor>[A-Z]+)_(?P<name>[\w_]+)')
+EXT_NAME_DECOMPOSE_RE = re.compile(r'(?P<prefix>[A-Za-z]+)_(?P<vendor>[A-Za-z]+)_(?P<name>[\w_]+)')
+
+# Match an API version name.
+# Match object includes API prefix, major, and minor version numbers.
+# This could be refined further for specific APIs.
+API_VERSION_NAME_RE = re.compile(r'(?P<apivariant>[A-Za-z]+)_VERSION_(?P<major>[0-9]+)_(?P<minor>[0-9]+)')
 
 class ProseListFormats(Enum):
     """A connective, possibly with a quantifier."""
@@ -75,10 +80,39 @@
         self._command_prefix = None
         self._type_prefix = None
 
-    def formatExtension(self, name):
-        """Mark up an extension name as a link the spec."""
+    def formatVersionOrExtension(self, name):
+        """Mark up an API version or extension name as a link in the spec."""
+
+        # Is this a version name?
+        match = API_VERSION_NAME_RE.match(name)
+        if match is not None:
+            return self.formatVersion(name,
+                match.group('apivariant'),
+                match.group('major'),
+                match.group('minor'))
+        else:
+            # If not, assumed to be an extension name. Might be worth checking.
+            return self.formatExtension(name)
+
+    def formatVersion(self, name, apivariant, major, minor):
+        """Mark up an API version name as a link in the spec."""
         return '`<<{}>>`'.format(name)
 
+    def formatExtension(self, name):
+        """Mark up an extension name as a link in the spec."""
+        return '`<<{}>>`'.format(name)
+
+    def formatSPIRVlink(self, name):
+        """Mark up a SPIR-V extension name as an external link in the spec.
+           Since these are external links, the formatting probably will be
+           the same for all APIs creating such links, so long as they use
+           the asciidoctor {spirv} attribute for the base path to the SPIR-V
+           extensions."""
+
+        (vendor, _) = self.extension_name_split(name)
+
+        return f'{{spirv}}/{vendor}/{name}.html[{name}]'
+
     @property
     @abc.abstractmethod
     def null(self):
@@ -256,6 +290,42 @@
         raise NotImplementedError
 
     @property
+    def extension_name_prefix(self):
+        """Return extension name prefix.
+
+        Typically two uppercase letters followed by an underscore.
+
+        Assumed to be the same as api_prefix, but some APIs use different
+        case conventions."""
+
+        return self.api_prefix
+
+    @property
+    def write_contacts(self):
+        """Return whether contact list should be written to extension appendices"""
+        return False
+
+    @property
+    def write_extension_type(self):
+        """Return whether extension type should be written to extension appendices"""
+        return True
+
+    @property
+    def write_extension_number(self):
+        """Return whether extension number should be written to extension appendices"""
+        return True
+
+    @property
+    def write_extension_revision(self):
+        """Return whether extension revision number should be written to extension appendices"""
+        return True
+
+    @property
+    def write_refpage_include(self):
+        """Return whether refpage include should be written to extension appendices"""
+        return True
+
+    @property
     def api_version_prefix(self):
         """Return API core version token prefix.
 
@@ -370,6 +440,16 @@
            documentation includes."""
         return False
 
+    def extension_name_split(self, name):
+        """Split an extension name, returning (vendor, rest of name).
+           The API prefix of the name is ignored."""
+
+        match = EXT_NAME_DECOMPOSE_RE.match(name)
+        vendor = match.group('vendor')
+        bare_name = match.group('name')
+
+        return (vendor, bare_name)
+
     @abc.abstractmethod
     def extension_file_path(self, name):
         """Return file path to an extension appendix relative to a directory
@@ -443,3 +523,14 @@
            reference pages."""
         return ''
 
+    def is_api_version_name(self, name):
+        """Return True if name is an API version name."""
+
+        return API_VERSION_NAME_RE.match(name) is not None
+
+    @property
+    def docgen_language(self):
+        """Return the language to be used in docgenerator [source]
+           blocks."""
+
+        return 'c++'
diff --git a/registry/spec_tools/util.py b/registry/spec_tools/util.py
index 4e1093d..e67038a 100644
--- a/registry/spec_tools/util.py
+++ b/registry/spec_tools/util.py
@@ -1,7 +1,6 @@
 """Utility functions not closely tied to other spec_tools types."""
 # Copyright (c) 2018-2019 Collabora, Ltd.
-# Copyright 2013-2022 The Khronos Group Inc.
-#
+# Copyright 2013-2024 The Khronos Group Inc.
 # SPDX-License-Identifier: Apache-2.0
 
 
diff --git a/registry/stripAPI.py b/registry/stripAPI.py
new file mode 100755
index 0000000..ea37f59
--- /dev/null
+++ b/registry/stripAPI.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python3
+#
+# Copyright 2023 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+import argparse
+import xml.etree.ElementTree as etree
+from reg import stripNonmatchingAPIs
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(prog='stripAPI',
+                formatter_class=argparse.RawDescriptionHelpFormatter,
+                description='''\
+Filters out elements with non-matching explicit 'api' attributes from API XML.
+To remove Vulkan SC-only elements from the combined API XML:
+    python3 scripts/stripAPI.py -input xml/vk.xml -output vulkan-only.xml -keepAPI vulkan
+To remove Vulkan-only elements:
+    python3 scripts/stripAPI.py -input xml/vk.xml -output vulkansc-only.xml -keepAPI vulkansc
+If you are parsing the XML yourself but using the xml.etree package, the
+equivalent runtime code is:
+   import reg
+   reg.stripNonmatchingAPIs(tree.getroot(), keepAPI, actuallyDelete=True)
+where 'tree' is an ElementTree created from the XML file using
+    etree.parse(filename)''')
+
+    parser.add_argument('-input', action='store',
+                        required=True,
+                        help='Specify input registry XML')
+    parser.add_argument('-output', action='store',
+                        required=True,
+                        help='Specify output registry XML')
+    parser.add_argument('-keepAPI', action='store',
+                        default=None,
+                        help='Specify API name whose \'api\' tags are kept')
+
+    args = parser.parse_args()
+
+    tree = etree.parse(args.input)
+    if args.keepAPI is not None:
+        stripNonmatchingAPIs(tree.getroot(), args.keepAPI, actuallyDelete = True)
+    tree.write(args.output)
+
diff --git a/registry/validusage.json b/registry/validusage.json
index b9b1f39..3a2f133 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,20 +1,22 @@
 {
   "version info": {
     "schema version": 2,
-    "api version": "1.3.237",
-    "comment": "from git branch: github-main commit: 0e28607b55dc1eee4ff80967f1e0a7e99356d075",
-    "date": "2022-12-08 13:40:35Z"
+    "api version": "1.3.275",
+    "comment": "from git branch: github-main commit: 9b94c27d65dc7d11e50a7c00581b89f1983d34ff",
+    "date": "2024-01-05 12:53:49Z"
   },
   "validation": {
     "vkGetInstanceProcAddr": {
       "core": [
         {
           "vuid": "VUID-vkGetInstanceProcAddr-instance-parameter",
-          "text": " If <code>instance</code> is not <code>NULL</code>, <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "If <code>instance</code> is not <code>NULL</code>, <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetInstanceProcAddr-pName-parameter",
-          "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
@@ -22,19 +24,22 @@
       "core": [
         {
           "vuid": "VUID-vkGetDeviceProcAddr-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceProcAddr-pName-parameter",
-          "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkEnumerateInstanceVersion": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkEnumerateInstanceVersion-pApiVersion-parameter",
-          "text": " <code>pApiVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pApiVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -42,153 +47,211 @@
       "core": [
         {
           "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388",
-          "text": " All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required extensions</a> for each extension in the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list"
+          "text": "All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required extensions</a> for each extension in the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateInstance-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateInstance-pInstance-parameter",
-          "text": " <code>pInstance</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>pInstance</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkInstanceCreateInfo": {
-      "(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_debug_report)": [
-        {
-          "vuid": "VUID-VkInstanceCreateInfo-pNext-04925",
-          "text": " If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugReportCallbackCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_EXT_debug_report\">VK_EXT_debug_report</a></code>"
-        }
-      ],
-      "(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_debug_utils)": [
-        {
-          "vuid": "VUID-VkInstanceCreateInfo-pNext-04926",
-          "text": " If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugUtilsMessengerCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_EXT_debug_utils\">VK_EXT_debug_utils</a></code>"
-        }
-      ],
-      "(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_metal_objects)": [
-        {
-          "vuid": "VUID-VkInstanceCreateInfo-pNext-06779",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be either <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT</code> or <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_KHR_portability_enumeration)": [
-        {
-          "vuid": "VUID-VkInstanceCreateInfo-flags-06559",
-          "text": " If <code>flags</code> has the <code>VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR</code> bit set, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_KHR_portability_enumeration\">VK_KHR_portability_enumeration</a></code>"
-        }
-      ],
-      "(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_LUNARG_direct_driver_loading)": [
-        {
-          "vuid": "VUID-VkInstanceCreateInfo-pNext",
-          "text": " If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <a href=\"#VkDirectDriverLoadingListLUNARG\">VkDirectDriverLoadingListLUNARG</a> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <a href=\"#VK_LUNARG_direct_driver_loading\">VK_LUNARG_direct_driver_loading</a>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkInstanceCreateInfo-pNext-04925",
+          "text": "If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugReportCallbackCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_EXT_debug_report\">VK_EXT_debug_report</a></code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkInstanceCreateInfo-pNext-04926",
+          "text": "If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugUtilsMessengerCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_EXT_debug_utils\">VK_EXT_debug_utils</a></code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkInstanceCreateInfo-pNext-06779",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be either <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT</code> or <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkInstanceCreateInfo-flags-06559",
+          "text": "If <code>flags</code> has the <code>VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR</code> bit set, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <code><a href=\"#VK_KHR_portability_enumeration\">VK_KHR_portability_enumeration</a></code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkInstanceCreateInfo-pNext-09400",
+          "text": "If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <a href=\"#VkDirectDriverLoadingListLUNARG\">VkDirectDriverLoadingListLUNARG</a> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <a href=\"#VK_LUNARG_direct_driver_loading\">VK_LUNARG_direct_driver_loading</a>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkInstanceCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a>, <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a>, <a href=\"#VkDirectDriverLoadingListLUNARG\">VkDirectDriverLoadingListLUNARG</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkValidationFeaturesEXT\">VkValidationFeaturesEXT</a>, or <a href=\"#VkValidationFlagsEXT\">VkValidationFlagsEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a>, <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a>, <a href=\"#VkDirectDriverLoadingListLUNARG\">VkDirectDriverLoadingListLUNARG</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkLayerSettingsCreateInfoEXT\">VkLayerSettingsCreateInfoEXT</a>, <a href=\"#VkValidationFeaturesEXT\">VkValidationFeaturesEXT</a>, or <a href=\"#VkValidationFlagsEXT\">VkValidationFlagsEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a> or <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, or <a href=\"#VkLayerSettingsCreateInfoEXT\">VkLayerSettingsCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkInstanceCreateFlagBits\">VkInstanceCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkInstanceCreateFlagBits\">VkInstanceCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-pApplicationInfo-parameter",
-          "text": " If <code>pApplicationInfo</code> is not <code>NULL</code>, <code>pApplicationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkApplicationInfo\">VkApplicationInfo</a> structure"
+          "text": "If <code>pApplicationInfo</code> is not <code>NULL</code>, <code>pApplicationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkApplicationInfo\">VkApplicationInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter",
-          "text": " If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings"
+          "text": "If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter",
-          "text": " If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings"
+          "text": "If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings",
+          "page": "vkspec"
         }
       ]
     },
     "VkValidationFlagsEXT": {
-      "(VK_EXT_validation_flags)": [
+      "core": [
         {
           "vuid": "VUID-VkValidationFlagsEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameter",
-          "text": " <code>pDisabledValidationChecks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationCheckCount</code> valid <a href=\"#VkValidationCheckEXT\">VkValidationCheckEXT</a> values"
+          "text": "<code>pDisabledValidationChecks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationCheckCount</code> valid <a href=\"#VkValidationCheckEXT\">VkValidationCheckEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylength",
-          "text": " <code>disabledValidationCheckCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>disabledValidationCheckCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkValidationFeaturesEXT": {
-      "(VK_EXT_validation_features)": [
+      "core": [
         {
           "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967",
-          "text": " If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT</code>, then it <strong class=\"purple\">must</strong> also contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>"
+          "text": "If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT</code>, then it <strong class=\"purple\">must</strong> also contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968",
-          "text": " If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT</code>, then it <strong class=\"purple\">must</strong> not contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>"
+          "text": "If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT</code>, then it <strong class=\"purple\">must</strong> not contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameter",
-          "text": " If <code>enabledValidationFeatureCount</code> is not <code>0</code>, <code>pEnabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureEnableEXT\">VkValidationFeatureEnableEXT</a> values"
+          "text": "If <code>enabledValidationFeatureCount</code> is not <code>0</code>, <code>pEnabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureEnableEXT\">VkValidationFeatureEnableEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameter",
-          "text": " If <code>disabledValidationFeatureCount</code> is not <code>0</code>, <code>pDisabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureDisableEXT\">VkValidationFeatureDisableEXT</a> values"
+          "text": "If <code>disabledValidationFeatureCount</code> is not <code>0</code>, <code>pDisabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureDisableEXT\">VkValidationFeatureDisableEXT</a> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLayerSettingsCreateInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkLayerSettingsCreateInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLayerSettingsCreateInfoEXT-pSettings-parameter",
+          "text": "If <code>settingCount</code> is not <code>0</code>, <code>pSettings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>settingCount</code> valid <a href=\"#VkLayerSettingEXT\">VkLayerSettingEXT</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLayerSettingEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkLayerSettingEXT-pLayerName-parameter",
+          "text": "<code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLayerSettingEXT-pSettingName-parameter",
+          "text": "<code>pSettingName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLayerSettingEXT-type-parameter",
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLayerSettingTypeEXT\">VkLayerSettingTypeEXT</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLayerSettingEXT-pValues-parameter",
+          "text": "If <code>valueCount</code> is not <code>0</code>, <code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>valueCount</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
     "VkDirectDriverLoadingListLUNARG": {
-      "(VK_LUNARG_direct_driver_loading)": [
+      "core": [
         {
           "vuid": "VUID-VkDirectDriverLoadingListLUNARG-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectDriverLoadingListLUNARG-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDirectDriverLoadingModeLUNARG\">VkDirectDriverLoadingModeLUNARG</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDirectDriverLoadingModeLUNARG\">VkDirectDriverLoadingModeLUNARG</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameter",
-          "text": " <code>pDrivers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>driverCount</code> valid <a href=\"#VkDirectDriverLoadingInfoLUNARG\">VkDirectDriverLoadingInfoLUNARG</a> structures"
+          "text": "<code>pDrivers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>driverCount</code> valid <a href=\"#VkDirectDriverLoadingInfoLUNARG\">VkDirectDriverLoadingInfoLUNARG</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectDriverLoadingListLUNARG-driverCount-arraylength",
-          "text": " <code>driverCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>driverCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDirectDriverLoadingInfoLUNARG": {
-      "(VK_LUNARG_direct_driver_loading)": [
+      "core": [
         {
           "vuid": "VUID-VkDirectDriverLoadingInfoLUNARG-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -196,23 +259,28 @@
       "core": [
         {
           "vuid": "VUID-VkApplicationInfo-apiVersion-04010",
-          "text": " If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VK_API_VERSION_1_0\">VK_API_VERSION_1_0</a>"
+          "text": "If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VK_API_VERSION_1_0\">VK_API_VERSION_1_0</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkApplicationInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_APPLICATION_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_APPLICATION_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkApplicationInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkApplicationInfo-pApplicationName-parameter",
-          "text": " If <code>pApplicationName</code> is not <code>NULL</code>, <code>pApplicationName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pApplicationName</code> is not <code>NULL</code>, <code>pApplicationName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkApplicationInfo-pEngineName-parameter",
-          "text": " If <code>pEngineName</code> is not <code>NULL</code>, <code>pEngineName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pEngineName</code> is not <code>NULL</code>, <code>pEngineName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
@@ -220,23 +288,28 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyInstance-instance-00629",
-          "text": " All child objects created using <code>instance</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>instance</code>"
+          "text": "All child objects created using <code>instance</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>instance</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyInstance-instance-00630",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyInstance-instance-00631",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyInstance-instance-parameter",
-          "text": " If <code>instance</code> is not <code>NULL</code>, <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "If <code>instance</code> is not <code>NULL</code>, <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyInstance-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         }
       ]
     },
@@ -244,15 +317,18 @@
       "core": [
         {
           "vuid": "VUID-vkEnumeratePhysicalDevices-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter",
-          "text": " <code>pPhysicalDeviceCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPhysicalDeviceCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter",
-          "text": " If the value referenced by <code>pPhysicalDeviceCount</code> is not <code>0</code>, and <code>pPhysicalDevices</code> is not <code>NULL</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceCount</code> <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles"
+          "text": "If the value referenced by <code>pPhysicalDeviceCount</code> is not <code>0</code>, and <code>pPhysicalDevices</code> is not <code>NULL</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceCount</code> <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles",
+          "page": "vkspec"
         }
       ]
     },
@@ -260,111 +336,173 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceProperties-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties2\">VkPhysicalDeviceProperties2</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties2\">VkPhysicalDeviceProperties2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesEXT\">VkPhysicalDeviceLineRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesEXT\">VkPhysicalDeviceLineRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan11Properties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan11Properties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan12Properties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan12Properties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan13Properties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan13Properties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceIDProperties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceIDProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDriverProperties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2,VK_KHR_driver_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDriverProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePCIBusInfoPropertiesEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_pci_bus_info)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDrmPropertiesEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_physical_device_drm)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderIntegerDotProductProperties": {
-      "(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageProcessingPropertiesQCOM": {
-      "(VK_QCOM_image_processing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageProcessingPropertiesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderTileImagePropertiesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderTileImagePropertiesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceImageProcessing2PropertiesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceLayeredDriverPropertiesMSFT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceLayeredDriverPropertiesMSFT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceSchedulingControlsPropertiesARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameter",
+          "text": "<code>schedulingControlsFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPhysicalDeviceSchedulingControlsFlagBitsARM\">VkPhysicalDeviceSchedulingControlsFlagBitsARM</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmask",
+          "text": "<code>schedulingControlsFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -372,147 +510,191 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter",
-          "text": " <code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter",
-          "text": " If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a> structures"
+          "text": "If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceQueueFamilyProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter",
-          "text": " <code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter",
-          "text": " If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties2\">VkQueueFamilyProperties2</a> structures"
+          "text": "If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties2\">VkQueueFamilyProperties2</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueueFamilyProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkQueueFamilyProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueueFamilyProperties2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueueFamilyCheckpointProperties2NV\">VkQueueFamilyCheckpointProperties2NV</a>, <a href=\"#VkQueueFamilyCheckpointPropertiesNV\">VkQueueFamilyCheckpointPropertiesNV</a>, <a href=\"#VkQueueFamilyGlobalPriorityPropertiesKHR\">VkQueueFamilyGlobalPriorityPropertiesKHR</a>, <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>, or <a href=\"#VkQueueFamilyVideoPropertiesKHR\">VkQueueFamilyVideoPropertiesKHR</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueueFamilyCheckpointProperties2NV\">VkQueueFamilyCheckpointProperties2NV</a>, <a href=\"#VkQueueFamilyCheckpointPropertiesNV\">VkQueueFamilyCheckpointPropertiesNV</a>, <a href=\"#VkQueueFamilyGlobalPriorityPropertiesKHR\">VkQueueFamilyGlobalPriorityPropertiesKHR</a>, <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>, or <a href=\"#VkQueueFamilyVideoPropertiesKHR\">VkQueueFamilyVideoPropertiesKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueueFamilyProperties2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueueFamilyGlobalPriorityPropertiesKHR": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_global_priority_query,VK_KHR_global_priority)": [
+      "core": [
         {
           "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter",
-          "text": " Any given element of <code>priorities</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value"
+          "text": "Each element of <code>priorities</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueueFamilyCheckpointProperties2NV": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkQueueFamilyCheckpointProperties2NV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueueFamilyCheckpointPropertiesNV": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)": [
+      "core": [
         {
           "vuid": "VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkQueueFamilyVideoPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkQueueFamilyVideoPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkQueueFamilyQueryResultStatusPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter",
-          "text": " <code>pCounterCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pCounterCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter",
-          "text": " If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounters</code> is not <code>NULL</code>, <code>pCounters</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterKHR\">VkPerformanceCounterKHR</a> structures"
+          "text": "If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounters</code> is not <code>NULL</code>, <code>pCounters</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterKHR\">VkPerformanceCounterKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter",
-          "text": " If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounterDescriptions</code> is not <code>NULL</code>, <code>pCounterDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterDescriptionKHR\">VkPerformanceCounterDescriptionKHR</a> structures"
+          "text": "If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounterDescriptions</code> is not <code>NULL</code>, <code>pCounterDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterDescriptionKHR\">VkPerformanceCounterDescriptionKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceCounterKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceCounterKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceCounterKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceCounterDescriptionKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceCounterDescriptionKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceCounterDescriptionKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkEnumeratePhysicalDeviceGroups": {
-      "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
+      "core": [
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter",
-          "text": " <code>pPhysicalDeviceGroupCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPhysicalDeviceGroupCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter",
-          "text": " If the value referenced by <code>pPhysicalDeviceGroupCount</code> is not <code>0</code>, and <code>pPhysicalDeviceGroupProperties</code> is not <code>NULL</code>, <code>pPhysicalDeviceGroupProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceGroupCount</code> <a href=\"#VkPhysicalDeviceGroupProperties\">VkPhysicalDeviceGroupProperties</a> structures"
+          "text": "If the value referenced by <code>pPhysicalDeviceGroupCount</code> is not <code>0</code>, and <code>pPhysicalDeviceGroupProperties</code> is not <code>NULL</code>, <code>pPhysicalDeviceGroupProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceGroupCount</code> <a href=\"#VkPhysicalDeviceGroupProperties\">VkPhysicalDeviceGroupProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceGroupProperties": {
-      "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceGroupProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceGroupProperties-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -520,341 +702,365 @@
       "core": [
         {
           "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387",
-          "text": " All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required device extensions</a> for each extension in the <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list"
+          "text": "All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required device extensions</a> for each extension in the <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDevice-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDevice-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDevice-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDevice-pDevice-parameter",
-          "text": " <code>pDevice</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>pDevice</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceCreateInfo": {
-      "!(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-00372",
-          "text": " The <code>queueFamilyIndex</code> member of each element of <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pQueueCreateInfos</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-02802",
-          "text": " The <code>queueFamilyIndex</code> member of each element of <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pQueueCreateInfos</code>, except that two members can share the same <code>queueFamilyIndex</code> if one describes protected-capable queues and one describes queues that are not protected-capable"
+          "text": "The <code>queueFamilyIndex</code> member of each element of <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pQueueCreateInfos</code> , except that two members can share the same <code>queueFamilyIndex</code> if one describes protected-capable queues and one describes queues that are not protected-capable",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755",
-          "text": " If multiple elements of <code>pQueueCreateInfos</code> share the same <code>queueFamilyIndex</code>, the sum of their <code>queueCount</code> members <strong class=\"purple\">must</strong> be less than or equal to the <code>queueCount</code> member of the <code>VkQueueFamilyProperties</code> structure, as returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> in the <code>pQueueFamilyProperties</code>[queueFamilyIndex]"
-        }
-      ],
-      "(VK_VERSION_1_1)+(VK_KHR_global_priority,VK_EXT_global_priority)": [
+          "text": "If multiple elements of <code>pQueueCreateInfos</code> share the same <code>queueFamilyIndex</code>, the sum of their <code>queueCount</code> members <strong class=\"purple\">must</strong> be less than or equal to the <code>queueCount</code> member of the <code>VkQueueFamilyProperties</code> structure, as returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> in the <code>pQueueFamilyProperties</code>[queueFamilyIndex]",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654",
-          "text": " If multiple elements of <code>pQueueCreateInfos</code> share the same <code>queueFamilyIndex</code>, then all of such elements <strong class=\"purple\">must</strong> have the same global priority level, which <strong class=\"purple\">can</strong> be specified explicitly by the including a <a href=\"#VkDeviceQueueGlobalPriorityCreateInfoKHR\">VkDeviceQueueGlobalPriorityCreateInfoKHR</a> structure in the <code>pNext</code> chain, or by the implicit default value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+          "text": "If multiple elements of <code>pQueueCreateInfos</code> share the same <code>queueFamilyIndex</code>, then all of such elements <strong class=\"purple\">must</strong> have the same global priority level, which <strong class=\"purple\">can</strong> be specified explicitly by the including a <a href=\"#VkDeviceQueueGlobalPriorityCreateInfoKHR\">VkDeviceQueueGlobalPriorityCreateInfoKHR</a> structure in the <code>pNext</code> chain, or by the implicit default value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-00373",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure, then <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        }
-      ],
-      "(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure, then <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840",
-          "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
-        }
-      ],
-      "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [
+          "text": "If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> advertises Vulkan 1.1 or later, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374",
-          "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a></code> and <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
-        }
-      ],
-      "(VK_EXT_buffer_device_address+VK_KHR_buffer_device_address)": [
+          "text": "<code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a></code> and <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328",
-          "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_buffer_device_address\">VK_KHR_buffer_device_address</a></code> and <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_EXT_buffer_device_address)": [
+          "text": "<code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_buffer_device_address\">VK_KHR_buffer_device_address</a></code> and <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-04748",
-          "text": " if the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure and <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>::<code>bufferDeviceAddress</code> is <code>VK_TRUE</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>"
-        }
-      ],
-      "(VK_VERSION_1_2)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure and <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>::<code>bufferDeviceAddress</code> is <code>VK_TRUE</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-02829",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, or <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a> structure"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, or <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-02830",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_shader_draw_parameters\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then <code>VkPhysicalDeviceVulkan11Features</code>::<code>shaderDrawParameters</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_shader_draw_parameters\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then <code>VkPhysicalDeviceVulkan11Features</code>::<code>shaderDrawParameters</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_draw_indirect_count\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>drawIndirectCount</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_draw_indirect_count\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>drawIndirectCount</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_sampler_mirror_clamp_to_edge\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerMirrorClampToEdge</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_sampler_mirror_clamp_to_edge\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerMirrorClampToEdge</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_descriptor_indexing\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>descriptorIndexing</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_descriptor_indexing\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>descriptorIndexing</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_sampler_filter_minmax\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerFilterMinmax</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_sampler_filter_minmax\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerFilterMinmax</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835",
-          "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_shader_viewport_index_layer\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputViewportIndex</code> and <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputLayer</code> <strong class=\"purple\">must</strong> both be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_VERSION_1_3)": [
+          "text": "If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_shader_viewport_index_layer\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputViewportIndex</code> and <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputLayer</code> <strong class=\"purple\">must</strong> both be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-06532",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a> structure"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pProperties-04451",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is included in <code>pProperties</code> of <a href=\"#vkEnumerateDeviceExtensionProperties\">vkEnumerateDeviceExtensionProperties</a>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> include <code>\"VK_KHR_portability_subset\"</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate+VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is included in <code>pProperties</code> of <a href=\"#vkEnumerateDeviceExtensionProperties\">vkEnumerateDeviceExtensionProperties</a>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> include <code>\"VK_KHR_portability_subset\"</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04478",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04479",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04480",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate+VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04481",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04482",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04483",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is enabled, the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-None-04896",
-          "text": " If <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> is enabled, <a href=\"#features-shaderImageInt64Atomics\"><code>shaderImageInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_shader_atomic_float)": [
+          "text": "If <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> is enabled, <a href=\"#features-shaderImageInt64Atomics\"><code>shaderImageInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-None-04897",
-          "text": " If <a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a> is enabled, <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a> <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a> is enabled, <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-None-04898",
-          "text": " If <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_shader_atomic_float2)": [
+          "text": "If <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975",
-          "text": " If <a href=\"#features-sparseImageFloat32AtomicMinMax\"><code>sparseImageFloat32AtomicMinMax</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_AMD_shader_fragment_mask)": [
+          "text": "If <a href=\"#features-sparseImageFloat32AtomicMinMax\"><code>sparseImageFloat32AtomicMinMax</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-None-08095",
-          "text": " If <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> is enabled, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_shader_fragment_mask\">VK_AMD_shader_fragment_mask</a></code>"
-        }
-      ],
-      "core": [
+          "text": "If <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> is enabled, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_shader_fragment_mask\">VK_AMD_shader_fragment_mask</a></code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceCreateInfo-pNext-09396",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a> structure, then it <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of any of the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structures in <code>pQueueCreateInfos</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceCreateInfo-pNext-09397",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a> structure then <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>::<code>schedulingControlsFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM</code>.",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDeviceCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a> or <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a> or <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter",
-          "text": " <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCreateInfoCount</code> valid <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structures"
+          "text": "<code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCreateInfoCount</code> valid <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter",
-          "text": " If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings"
+          "text": "If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter",
-          "text": " If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings"
+          "text": "If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter",
-          "text": " If <code>pEnabledFeatures</code> is not <code>NULL</code>, <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure"
+          "text": "If <code>pEnabledFeatures</code> is not <code>NULL</code>, <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength",
-          "text": " <code>queueCreateInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>queueCreateInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupDeviceCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375",
-          "text": " Each element of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be unique"
+          "text": "Each element of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376",
-          "text": " All elements of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be in the same device group as enumerated by <a href=\"#vkEnumeratePhysicalDeviceGroups\">vkEnumeratePhysicalDeviceGroups</a>"
+          "text": "All elements of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be in the same device group as enumerated by <a href=\"#vkEnumeratePhysicalDeviceGroups\">vkEnumeratePhysicalDeviceGroups</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377",
-          "text": " If <code>physicalDeviceCount</code> is not <code>0</code>, the <code>physicalDevice</code> parameter of <a href=\"#vkCreateDevice\">vkCreateDevice</a> <strong class=\"purple\">must</strong> be an element of <code>pPhysicalDevices</code>"
+          "text": "If <code>physicalDeviceCount</code> is not <code>0</code>, the <code>physicalDevice</code> parameter of <a href=\"#vkCreateDevice\">vkCreateDevice</a> <strong class=\"purple\">must</strong> be an element of <code>pPhysicalDevices</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter",
-          "text": " If <code>physicalDeviceCount</code> is not <code>0</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>physicalDeviceCount</code> valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles"
+          "text": "If <code>physicalDeviceCount</code> is not <code>0</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>physicalDeviceCount</code> valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceMemoryOverallocationCreateInfoAMD": {
-      "(VK_AMD_memory_overallocation_behavior)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter",
-          "text": " <code>overallocationBehavior</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMemoryOverallocationBehaviorAMD\">VkMemoryOverallocationBehaviorAMD</a> value"
+          "text": "<code>overallocationBehavior</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMemoryOverallocationBehaviorAMD\">VkMemoryOverallocationBehaviorAMD</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceDiagnosticsConfigCreateInfoNV": {
-      "(VK_NV_device_diagnostics_config)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceDiagnosticsConfigFlagBitsNV\">VkDeviceDiagnosticsConfigFlagBitsNV</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceDiagnosticsConfigFlagBitsNV\">VkDeviceDiagnosticsConfigFlagBitsNV</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceDeviceMemoryReportCreateInfoEXT": {
-      "(VK_EXT_device_memory_report)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter",
-          "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDeviceMemoryReportCallbackEXT\">PFN_vkDeviceMemoryReportCallbackEXT</a> value"
+          "text": "<code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDeviceMemoryReportCallbackEXT\">PFN_vkDeviceMemoryReportCallbackEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter",
-          "text": " <code>pUserData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pUserData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceMemoryReportCallbackDataEXT": {
-      "(VK_EXT_device_memory_report)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDevicePrivateDataCreateInfo": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-VkDevicePrivateDataCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyDevice": {
       "core": [
         {
-          "vuid": "VUID-vkDestroyDevice-device-00378",
-          "text": " All child objects created on <code>device</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>"
+          "vuid": "VUID-vkDestroyDevice-device-05137",
+          "text": "All child objects created on <code>device</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDevice-device-00379",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDevice-device-00380",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDevice-device-parameter",
-          "text": " If <code>device</code> is not <code>NULL</code>, <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "If <code>device</code> is not <code>NULL</code>, <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDevice-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         }
       ]
     },
@@ -862,61 +1068,91 @@
       "core": [
         {
           "vuid": "VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-00382",
-          "text": " <code>queueCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>queueCount</code> member of the <code>VkQueueFamilyProperties</code> structure, as returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> in the <code>pQueueFamilyProperties</code>[queueFamilyIndex]"
+          "text": "<code>queueCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>queueCount</code> member of the <code>VkQueueFamilyProperties</code> structure, as returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> in the <code>pQueueFamilyProperties</code>[queueFamilyIndex]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383",
-          "text": " Each element of <code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code> inclusive"
+          "text": "Each element of <code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code> inclusive",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceQueueGlobalPriorityCreateInfoKHR\">VkDeviceQueueGlobalPriorityCreateInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter",
-          "text": " <code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCount</code> <code>float</code> values"
-        },
-        {
-          "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength",
-          "text": " <code>queueCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-VkDeviceQueueCreateInfo-flags-02861",
-          "text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set"
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueCreateInfo-flags-06449",
-          "text": " If <code>flags</code> includes <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family that includes the <code>VK_QUEUE_PROTECTED_BIT</code> capability"
+          "text": "If <code>flags</code> includes <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family that includes the <code>VK_QUEUE_PROTECTED_BIT</code> capability",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-09398",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a> structure then <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>::<code>schedulingControlsFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceQueueGlobalPriorityCreateInfoKHR\">VkDeviceQueueGlobalPriorityCreateInfoKHR</a> or <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter",
+          "text": "<code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCount</code> <code>float</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength",
+          "text": "<code>queueCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceQueueGlobalPriorityCreateInfoKHR": {
-      "(VK_EXT_global_priority,VK_KHR_global_priority)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter",
-          "text": " <code>globalPriority</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value"
+          "text": "<code>globalPriority</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkDeviceQueueShaderCoreControlCreateInfoARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-shaderCoreCount-09399",
+          "text": "<code>shaderCoreCount</code> <strong class=\"purple\">must</strong> be greater than 0 and less than or equal to the total number of shader cores as reported via <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>::<code>shaderCoreCount</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -924,67 +1160,81 @@
       "core": [
         {
           "vuid": "VUID-vkGetDeviceQueue-queueFamilyIndex-00384",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue-queueIndex-00385",
-          "text": " <code>queueIndex</code> <strong class=\"purple\">must</strong> be less than the value of <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created"
+          "text": "<code>queueIndex</code> <strong class=\"purple\">must</strong> be less than the value of <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue-flags-01841",
-          "text": " <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> have been set to zero when <code>device</code> was created"
+          "text": "<a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> have been set to zero when <code>device</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue-pQueue-parameter",
-          "text": " <code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceQueue2": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceQueue2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue2-pQueueInfo-parameter",
-          "text": " <code>pQueueInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceQueueInfo2\">VkDeviceQueueInfo2</a> structure"
+          "text": "<code>pQueueInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceQueueInfo2\">VkDeviceQueueInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceQueue2-pQueue-parameter",
-          "text": " <code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceQueueInfo2": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueInfo2-flags-06225",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> for a <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> for a <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueInfo2-queueIndex-01843",
-          "text": " <code>queueIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the corresponding queue family and flags indicated by <code>queueFamilyIndex</code> and <code>flags</code> when <code>device</code> was created"
+          "text": "<code>queueIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the corresponding queue family and flags indicated by <code>queueFamilyIndex</code> and <code>flags</code> when <code>device</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceQueueInfo2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -992,65 +1242,76 @@
       "core": [
         {
           "vuid": "VUID-vkCreateCommandPool-queueFamilyIndex-01937",
-          "text": " <code>pCreateInfo-&gt;queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family available in the logical device <code>device</code>"
+          "text": "<code>pCreateInfo-&gt;queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family available in the logical device <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCommandPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCommandPool-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCommandPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter",
-          "text": " <code>pCommandPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "<code>pCommandPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandPoolCreateInfo": {
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860",
-          "text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VK_COMMAND_POOL_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860",
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VK_COMMAND_POOL_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkCommandPoolCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandPoolCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandPoolCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolCreateFlagBits\">VkCommandPoolCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolCreateFlagBits\">VkCommandPoolCreateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkTrimCommandPool": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-vkTrimCommandPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkTrimCommandPool-commandPool-parameter",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkTrimCommandPool-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkTrimCommandPool-commandPool-parent",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1058,23 +1319,28 @@
       "core": [
         {
           "vuid": "VUID-vkResetCommandPool-commandPool-00040",
-          "text": " All <code>VkCommandBuffer</code> objects allocated from <code>commandPool</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "All <code>VkCommandBuffer</code> objects allocated from <code>commandPool</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandPool-commandPool-parameter",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandPool-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolResetFlagBits\">VkCommandPoolResetFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolResetFlagBits\">VkCommandPoolResetFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandPool-commandPool-parent",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1082,31 +1348,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyCommandPool-commandPool-00041",
-          "text": " All <code>VkCommandBuffer</code> objects allocated from <code>commandPool</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "All <code>VkCommandBuffer</code> objects allocated from <code>commandPool</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-commandPool-00042",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-commandPool-00043",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-commandPool-parameter",
-          "text": " If <code>commandPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "If <code>commandPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCommandPool-commandPool-parent",
-          "text": " If <code>commandPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>commandPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1114,19 +1387,23 @@
       "core": [
         {
           "vuid": "VUID-vkAllocateCommandBuffers-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter",
-          "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferAllocateInfo\">VkCommandBufferAllocateInfo</a> structure"
+          "text": "<code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferAllocateInfo\">VkCommandBufferAllocateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter",
-          "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;commandBufferCount</code> <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
+          "text": "<code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;commandBufferCount</code> <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength",
-          "text": " <code>pAllocateInfo-&gt;commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>pAllocateInfo-&gt;commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1134,19 +1411,23 @@
       "core": [
         {
           "vuid": "VUID-VkCommandBufferAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferAllocateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-parameter",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferAllocateInfo-level-parameter",
-          "text": " <code>level</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBufferLevel\">VkCommandBufferLevel</a> value"
+          "text": "<code>level</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBufferLevel\">VkCommandBufferLevel</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -1154,19 +1435,23 @@
       "core": [
         {
           "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00045",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00046",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been allocated from a pool that was created with the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> have been allocated from a pool that was created with the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetCommandBuffer-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferResetFlagBits\">VkCommandBufferResetFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferResetFlagBits\">VkCommandBufferResetFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -1174,31 +1459,38 @@
       "core": [
         {
           "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00047",
-          "text": " All elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "All elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00048",
-          "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>VkCommandBuffer</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <code>NULL</code>"
+          "text": "<code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>VkCommandBuffer</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-commandPool-parameter",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-commandBufferCount-arraylength",
-          "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-commandPool-parent",
-          "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-parent",
-          "text": " Each element of <code>pCommandBuffers</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>commandPool</code>"
+          "text": "Each element of <code>pCommandBuffers</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>commandPool</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1206,85 +1498,97 @@
       "core": [
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">recording or pending state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">recording or pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00050",
-          "text": " If <code>commandBuffer</code> was allocated from a <a href=\"#VkCommandPool\">VkCommandPool</a> which did not have the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code> flag set, <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">initial state</a>"
+          "text": "If <code>commandBuffer</code> was allocated from a <a href=\"#VkCommandPool\">VkCommandPool</a> which did not have the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code> flag set, <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">initial state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBufferInheritanceInfo</code> structure"
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBufferInheritanceInfo</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer and either the <code>occlusionQueryEnable</code> member of the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> is <code>VK_FALSE</code>, or the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, then <code>pBeginInfo-&gt;pInheritanceInfo-&gt;queryFlags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
+          "text": "If <code>commandBuffer</code> is a secondary command buffer and either the <code>occlusionQueryEnable</code> member of the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> is <code>VK_FALSE</code>, or the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, then <code>pBeginInfo-&gt;pInheritanceInfo-&gt;queryFlags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840",
-          "text": " If <code>commandBuffer</code> is a primary command buffer, then <code>pBeginInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not set both the <code>VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT</code> and the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flags"
+          "text": "If <code>commandBuffer</code> is a primary command buffer, then <code>pBeginInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not set both the <code>VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT</code> and the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBeginCommandBuffer-pBeginInfo-parameter",
-          "text": " <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a> structure"
+          "text": "<code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferBeginInfo": {
-      "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-flags-00053",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>renderPass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkRenderPass</code>"
-        },
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-flags-00054",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>subpass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid subpass index within the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkCommandBufferBeginInfo-flags-09123",
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkCommandBufferBeginInfo-flags-00055",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>framebuffer</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be either <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, or a valid <code>VkFramebuffer</code> that is compatible with the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>framebuffer</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be either <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, or a valid <code>VkFramebuffer</code> that is compatible with the <code>renderPass</code> member of <code>pInheritanceInfo</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferUsageFlagBits\">VkCommandBufferUsageFlagBits</a> values"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-flags-06000",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <code>VkRenderPass</code>"
-        },
-        {
-          "vuid": "VUID-VkCommandBufferBeginInfo-flags-06001",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>subpass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid subpass index within the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
+          "vuid": "VUID-VkCommandBufferBeginInfo-flags-09240",
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature is not enabled, the <code>renderPass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferBeginInfo-flags-06002",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCommandBufferBeginInfo-flags-06003",
-          "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>pNext</code> chain of <code>pInheritanceInfo</code> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>colorAttachmentCount</code>"
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>pNext</code> chain of <code>pInheritanceInfo</code> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-flags-06000",
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>renderPass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkRenderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-flags-06001",
+          "text": "If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>subpass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid subpass index within the <code>renderPass</code> member of <code>pInheritanceInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferUsageFlagBits\">VkCommandBufferUsageFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -1292,177 +1596,203 @@
       "core": [
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056",
-          "text": " If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>occlusionQueryEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>occlusionQueryEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057",
-          "text": " If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
+          "text": "If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-02788",
-          "text": " If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789",
-          "text": " If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values"
+          "text": "If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058",
-          "text": " If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is not enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is not enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>, <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>, <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>, <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, or <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>, <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>, <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>, <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent",
-          "text": " Both of <code>framebuffer</code>, and <code>renderPass</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>framebuffer</code>, and <code>renderPass</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferInheritanceConditionalRenderingInfoEXT": {
-      "(VK_EXT_conditional_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977",
-          "text": " If the <a href=\"#features-inheritedConditionalRendering\"><code>inheritedConditionalRendering</code></a> feature is not enabled, <code>conditionalRenderingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-inheritedConditionalRendering\"><code>inheritedConditionalRendering</code></a> feature is not enabled, <code>conditionalRenderingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferInheritanceRenderPassTransformInfoQCOM": {
-      "(VK_QCOM_render_pass_transform)": [
+      "core": [
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864",
-          "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
+          "text": "<code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferInheritanceViewportScissorInfoNV": {
-      "(VK_NV_inherited_viewport_scissor)": [
+      "core": [
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782",
-          "text": " If the <a href=\"#features-inheritedViewportScissor2D\"><code>inheritedViewportScissor2D</code></a> feature is not enabled, <code>viewportScissor2D</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-inheritedViewportScissor2D\"><code>inheritedViewportScissor2D</code></a> feature is not enabled, <code>viewportScissor2D</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled and <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled and <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784",
-          "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785",
-          "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>pViewportDepths</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportDepthCount</code> valid <code>VkViewport</code> structures, except any requirements on <code>x</code>, <code>y</code>, <code>width</code>, and <code>height</code> do not apply"
+          "text": "If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>pViewportDepths</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportDepthCount</code> valid <code>VkViewport</code> structures, except any requirements on <code>x</code>, <code>y</code>, <code>width</code>, and <code>height</code> do not apply",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786",
-          "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then the command buffer <strong class=\"purple\">must</strong> be recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
+          "text": "If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then the command buffer <strong class=\"purple\">must</strong> be recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferInheritanceRenderingInfo": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005",
-          "text": " If the <a href=\"#features-variableMultisampleRate\"><code>variableMultisampleRate</code></a> feature is not enabled, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "If the <a href=\"#features-variableMultisampleRate\"><code>variableMultisampleRate</code></a> feature is not enabled, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540",
-          "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
+          "text": "If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth component",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007",
-          "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492",
+          "text": "If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> , or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code> if the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541",
-          "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect"
+          "text": "If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199",
-          "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200",
-          "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>"
+          "text": "If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008",
-          "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009",
+          "text": "The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameter",
-          "text": " <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameter",
-          "text": " <code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameter",
-          "text": " If <code>rasterizationSamples</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)": [
-        {
-          "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006",
-          "text": " If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)": [
-        {
-          "vuid": "VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492",
-          "text": " If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>, or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code> if the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009",
-          "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
+          "text": "If <code>rasterizationSamples</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentSampleCountInfoAMD": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+      "core": [
         {
           "vuid": "VUID-VkAttachmentSampleCountInfoAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1470,347 +1800,403 @@
       "core": [
         {
           "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060",
-          "text": " If <code>commandBuffer</code> is a primary command buffer, there <strong class=\"purple\">must</strong> not be an active render pass instance"
+          "text": "If <code>commandBuffer</code> is a primary command buffer, there <strong class=\"purple\">must</strong> not be an active render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00061",
-          "text": " All queries made <a href=\"#queries-operation-active\">active</a> during the recording of <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been made inactive"
+          "text": "All queries made <a href=\"#queries-operation-active\">active</a> during the recording of <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been made inactive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkEndCommandBuffer-None-01978",
+          "text": "Conditional rendering <strong class=\"purple\">must</strong> not be <a href=\"#active-conditional-rendering\">active</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkEndCommandBuffer-None-06991",
+          "text": "There <strong class=\"purple\">must</strong> be no video session object bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815",
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdBeginDebugUtilsLabelEXT\">vkCmdBeginDebugUtilsLabelEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdEndDebugUtilsLabelEXT\">vkCmdEndDebugUtilsLabelEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062",
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
-          "vuid": "VUID-vkEndCommandBuffer-None-01978",
-          "text": " Conditional rendering <strong class=\"purple\">must</strong> not be <a href=\"#active-conditional-rendering\">active</a>"
-        }
-      ],
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkEndCommandBuffer-None-06991",
-          "text": " There <strong class=\"purple\">must</strong> be no video session object bound"
-        }
-      ],
-      "(VK_EXT_debug_utils)": [
-        {
-          "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdBeginDebugUtilsLabelEXT\">vkCmdBeginDebugUtilsLabelEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdEndDebugUtilsLabelEXT\">vkCmdEndDebugUtilsLabelEXT</a>"
-        }
-      ],
-      "(VK_EXT_debug_marker)": [
-        {
-          "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueueSubmit2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkQueueSubmit2-fence-04894",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-fence-04895",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-synchronization2-03866",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03867",
-          "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> referenced an <a href=\"#VkEvent\">VkEvent</a>, that event <strong class=\"purple\">must</strong> not be referenced by a command that has been submitted to another queue and is still in the <em>pending state</em>"
+          "text": "If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> referenced an <a href=\"#VkEvent\">VkEvent</a>, that event <strong class=\"purple\">must</strong> not be referenced by a command that has been submitted to another queue and is still in the <em>pending state</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-semaphore-03868",
-          "text": " The <code>semaphore</code> member of any binary semaphore element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
+          "text": "The <code>semaphore</code> member of any binary semaphore element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-stageMask-03869",
-          "text": " The <code>stageMask</code> member of any element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to"
+          "text": "The <code>stageMask</code> member of any element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-stageMask-03870",
-          "text": " The <code>stageMask</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to"
+          "text": "The <code>stageMask</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-semaphore-03871",
-          "text": " When a semaphore wait operation for a binary semaphore is executed, as defined by the <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
+          "text": "When a semaphore wait operation for a binary semaphore is executed, as defined by the <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkQueueSubmit2-semaphore-03872",
-          "text": " The <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
+          "vuid": "VUID-vkQueueSubmit2-semaphore-03873",
+          "text": "The <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> that was created with a <a href=\"#VkSemaphoreTypeKHR\">VkSemaphoreTypeKHR</a> of <code>VK_SEMAPHORE_TYPE_BINARY_KHR</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> on which it depends <strong class=\"purple\">must</strong> have also been submitted for execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03874",
-          "text": " The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
+          "text": "The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03875",
-          "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03876",
-          "text": " Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
+          "text": "Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03877",
-          "text": " If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03878",
-          "text": " The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to"
+          "text": "The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commandBuffer-03879",
-          "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens before the acquire operation"
+          "text": "If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens before the acquire operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueSubmit2-commandBuffer-03880",
+          "text": "If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueSubmit2-queue-06447",
+          "text": "If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, the <code>flags</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> not include <code>VK_SUBMIT_PROTECTED_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-pSubmits-parameter",
-          "text": " If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo2\">VkSubmitInfo2</a> structures"
+          "text": "If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo2\">VkSubmitInfo2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit2-commonparent",
-          "text": " Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-vkQueueSubmit2-semaphore-03873",
-          "text": " Any <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> that was created with a <a href=\"#VkSemaphoreTypeKHR\">VkSemaphoreTypeKHR</a> of <code>VK_SEMAPHORE_TYPE_BINARY_KHR</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkQueueSubmit2-commandBuffer-03880",
-          "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkQueueSubmit2-queue-06447",
-          "text": " If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, the <code>flags</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> not include <code>VK_SUBMIT_PROTECTED_BIT_KHR</code>"
+          "text": "Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubmitInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkSubmitInfo2-semaphore-03881",
-          "text": " If the same semaphore is used as the <code>semaphore</code> member of both an element of <code>pSignalSemaphoreInfos</code> and <code>pWaitSemaphoreInfos</code>, and that semaphore is a timeline semaphore, the <code>value</code> member of the <code>pSignalSemaphoreInfos</code> element <strong class=\"purple\">must</strong> be greater than the <code>value</code> member of the <code>pWaitSemaphoreInfos</code> element"
+          "text": "If the same semaphore is used as the <code>semaphore</code> member of both an element of <code>pSignalSemaphoreInfos</code> and <code>pWaitSemaphoreInfos</code>, and that semaphore is a timeline semaphore, the <code>value</code> member of the <code>pSignalSemaphoreInfos</code> element <strong class=\"purple\">must</strong> be greater than the <code>value</code> member of the <code>pWaitSemaphoreInfos</code> element",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-semaphore-03882",
-          "text": " If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
+          "text": "If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-semaphore-03883",
-          "text": " If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
+          "text": "If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-semaphore-03884",
-          "text": " If the <code>semaphore</code> member of any element of <code>pWaitSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)": [
+          "text": "If the <code>semaphore</code> member of any element of <code>pWaitSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo2-flags-03886",
-          "text": " If <code>flags</code> includes <code>VK_SUBMIT_PROTECTED_BIT</code>, all elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be protected command buffers"
+          "text": "If <code>flags</code> includes <code>VK_SUBMIT_PROTECTED_BIT</code>, all elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be protected command buffers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-flags-03887",
-          "text": " If <code>flags</code> does not include <code>VK_SUBMIT_PROTECTED_BIT</code>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "text": "If <code>flags</code> does not include <code>VK_SUBMIT_PROTECTED_BIT</code>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06192",
-          "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBufferInfos</code>"
+          "text": "If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBufferInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06010",
-          "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBufferInfos</code>"
+          "text": "If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBufferInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06011",
-          "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and the render pass instance that resumes it"
+          "text": "If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and the render pass instance that resumes it",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06012",
-          "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
+          "text": "If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo2KHR-variableSampleLocations-06013",
-          "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkLatencySubmissionPresentIdNV\">VkLatencySubmissionPresentIdNV</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubmitFlagBits\">VkSubmitFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubmitFlagBits\">VkSubmitFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter",
-          "text": " If <code>waitSemaphoreInfoCount</code> is not <code>0</code>, <code>pWaitSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures"
+          "text": "If <code>waitSemaphoreInfoCount</code> is not <code>0</code>, <code>pWaitSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-pCommandBufferInfos-parameter",
-          "text": " If <code>commandBufferInfoCount</code> is not <code>0</code>, <code>pCommandBufferInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferInfoCount</code> valid <a href=\"#VkCommandBufferSubmitInfo\">VkCommandBufferSubmitInfo</a> structures"
+          "text": "If <code>commandBufferInfoCount</code> is not <code>0</code>, <code>pCommandBufferInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferInfoCount</code> valid <a href=\"#VkCommandBufferSubmitInfo\">VkCommandBufferSubmitInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter",
-          "text": " If <code>signalSemaphoreInfoCount</code> is not <code>0</code>, <code>pSignalSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures"
+          "text": "If <code>signalSemaphoreInfoCount</code> is not <code>0</code>, <code>pSignalSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreSubmitInfo": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-device-03888",
-          "text": " If the <code>device</code> that <code>semaphore</code> was created on is not a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-parameter",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)": [
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-device-03888",
+          "text": "If the <code>device</code> that <code>semaphore</code> was created on is not a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSemaphoreSubmitInfo-device-03889",
-          "text": " If the <code>device</code> that <code>semaphore</code> was created on is a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
+          "text": "If the <code>device</code> that <code>semaphore</code> was created on is a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-semaphore-parameter",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-parameter",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkCommandBufferSubmitInfo": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-03890",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferSubmitInfo-deviceMask-03891",
+          "text": "If <code>deviceMask</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device mask",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-09445",
+          "text": "If any render pass instance in <code>commandBuffer</code> was recorded with a <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a> structure in its pNext chain, a <a href=\"#VkRenderPassStripeSubmitInfoARM\">VkRenderPassStripeSubmitInfoARM</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferSubmitInfo-pNext-09446",
+          "text": "If a <a href=\"#VkRenderPassStripeSubmitInfoARM\">VkRenderPassStripeSubmitInfoARM</a> is included in the <code>pNext</code> chain, the value of <a href=\"#VkRenderPassStripeSubmitInfoARM\">VkRenderPassStripeSubmitInfoARM</a>::<code>stripeSemaphoreInfoCount</code> <strong class=\"purple\">must</strong> be equal to the sum of the <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a>::<code>stripeInfoCount</code> parameters provided to render pass instances recorded in <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferSubmitInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkRenderPassStripeSubmitInfoARM\">VkRenderPassStripeSubmitInfoARM</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCommandBufferSubmitInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)": [
+      ]
+    },
+    "VkRenderPassStripeSubmitInfoARM": {
+      "core": [
         {
-          "vuid": "VUID-VkCommandBufferSubmitInfo-deviceMask-03891",
-          "text": " If <code>deviceMask</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device mask"
+          "vuid": "VUID-VkRenderPassStripeSubmitInfoARM-semaphore-09447",
+          "text": "The <code>semaphore</code> member of each element of <code>pStripeSemaphoreInfos</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeSubmitInfoARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeSubmitInfoARM-pStripeSemaphoreInfos-parameter",
+          "text": "<code>pStripeSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stripeSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeSubmitInfoARM-stripeSemaphoreInfoCount-arraylength",
+          "text": "<code>stripeSemaphoreInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1818,99 +2204,108 @@
       "core": [
         {
           "vuid": "VUID-vkQueueSubmit-fence-00063",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-fence-00064",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00065",
-          "text": " Any calls to <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>, <a href=\"#vkCmdResetEvent\">vkCmdResetEvent</a> or <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that have been recorded into any of the command buffer elements of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code>, <strong class=\"purple\">must</strong> not reference any <a href=\"#VkEvent\">VkEvent</a> that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the <em>pending state</em>"
+          "text": "Any calls to <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>, <a href=\"#vkCmdResetEvent\">vkCmdResetEvent</a> or <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that have been recorded into any of the command buffer elements of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code>, <strong class=\"purple\">must</strong> not reference any <a href=\"#VkEvent\">VkEvent</a> that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the <em>pending state</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pWaitDstStageMask-00066",
-          "text": " Any stage flag included in any element of the <code>pWaitDstStageMask</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be a pipeline stage supported by one of the capabilities of <code>queue</code>, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
+          "text": "Any stage flag included in any element of the <code>pWaitDstStageMask</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be a pipeline stage supported by one of the capabilities of <code>queue</code>, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067",
-          "text": " Each binary semaphore element of the <code>pSignalSemaphores</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
+          "text": "Each binary semaphore element of the <code>pSignalSemaphores</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068",
-          "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pSubmits</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
+          "text": "When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pSubmits</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238",
+          "text": "All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pSubmits</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> on which it depends <strong class=\"purple\">must</strong> have also been submitted for execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00070",
-          "text": " Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
+          "text": "Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00071",
-          "text": " If any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "If any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072",
-          "text": " Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
+          "text": "Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073",
-          "text": " If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00074",
-          "text": " Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to"
+          "text": "Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pSubmits-02207",
-          "text": " If any element of <code>pSubmits-&gt;pCommandBuffers</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens-before the acquire operation"
+          "text": "If any element of <code>pSubmits-&gt;pCommandBuffers</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens-before the acquire operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220",
+          "text": "If a command recorded into any element of <code>pCommandBuffers</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pSubmits-02808",
-          "text": " Any resource created with <code>VK_SHARING_MODE_EXCLUSIVE</code> that is read by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> not be owned by any queue family other than the one which <code>queue</code> belongs to, at the time it is executed"
+          "text": "Any resource created with <code>VK_SHARING_MODE_EXCLUSIVE</code> that is read by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> not be owned by any queue family other than the one which <code>queue</code> belongs to, at the time it is executed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pSubmits-04626",
-          "text": " Any resource created with <code>VK_SHARING_MODE_CONCURRENT</code> that is accessed by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> have included the queue family of <code>queue</code> at resource creation time"
+          "text": "Any resource created with <code>VK_SHARING_MODE_CONCURRENT</code> that is accessed by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> have included the queue family of <code>queue</code> at resource creation time",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueSubmit-queue-06448",
+          "text": "If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, there <strong class=\"purple\">must</strong> be no element of <code>pSubmits</code> that includes an <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a> structure in its <code>pNext</code> chain with <code>protectedSubmit</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-pSubmits-parameter",
-          "text": " If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo\">VkSubmitInfo</a> structures"
+          "text": "If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo\">VkSubmitInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSubmit-commonparent",
-          "text": " Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00069",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pSubmits</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pSubmits</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220",
-          "text": " If a command recorded into any element of <code>pCommandBuffers</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkQueueSubmit-queue-06448",
-          "text": " If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, there <strong class=\"purple\">must</strong> be no element of <code>pSubmits</code> that includes an <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a> structure in its <code>pNext</code> chain with <code>protectedSubmit</code> equal to <code>VK_TRUE</code>"
+          "text": "Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -1918,337 +2313,371 @@
       "core": [
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubmitInfo-pCommandBuffers-00075",
-          "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078",
-          "text": " Each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAmigoProfilingSubmitInfoSEC\">VkAmigoProfilingSubmitInfoSEC</a>, <a href=\"#VkD3D12FenceSubmitInfoKHR\">VkD3D12FenceSubmitInfoKHR</a>, <a href=\"#VkDeviceGroupSubmitInfo\">VkDeviceGroupSubmitInfo</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a>, <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-parameter",
-          "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter",
-          "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid combinations of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter",
-          "text": " If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter",
-          "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
-        },
-        {
-          "vuid": "VUID-VkSubmitInfo-commonparent",
-          "text": " Each of the elements of <code>pCommandBuffers</code>, the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04996",
-          "text": " pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pCommandBuffers-00075",
+          "text": "Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078",
+          "text": "Each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239",
-          "text": " If any element of <code>pWaitSemaphores</code> or <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure"
+          "text": "If any element of <code>pWaitSemaphores</code> or <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pNext-03240",
-          "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>"
+          "text": "If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pNext-03241",
-          "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>"
+          "text": "If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03242",
-          "text": " For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
+          "text": "For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03243",
-          "text": " For each element of <code>pWaitSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
+          "text": "For each element of <code>pWaitSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03244",
-          "text": " For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pNext-04120",
-          "text": " If the <code>pNext</code> chain of this structure does not include a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be an unprotected command buffer"
+          "text": "If the <code>pNext</code> chain of this structure does not include a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be an unprotected command buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pNext-04148",
-          "text": " If the <code>pNext</code> chain of this structure includes a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "text": "If the <code>pNext</code> chain of this structure includes a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06193",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBuffers</code>"
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06014",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBuffers</code>"
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06015",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands executed in a primary or <a href=\"#commandbuffers-secondary\">secondary</a> command buffer between that render pass instance and the render pass instance that resumes it"
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands executed in a primary or <a href=\"#commandbuffers-secondary\">secondary</a> command buffer between that render pass instance and the render pass instance that resumes it",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06016",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubmitInfo-variableSampleLocations-06017",
-          "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
+          "text": "If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAmigoProfilingSubmitInfoSEC\">VkAmigoProfilingSubmitInfoSEC</a>, <a href=\"#VkD3D12FenceSubmitInfoKHR\">VkD3D12FenceSubmitInfoKHR</a>, <a href=\"#VkDeviceGroupSubmitInfo\">VkDeviceGroupSubmitInfo</a>, <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkLatencySubmissionPresentIdNV\">VkLatencySubmissionPresentIdNV</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a>, <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-parameter",
+          "text": "If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter",
+          "text": "If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid combinations of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter",
+          "text": "If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter",
+          "text": "If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubmitInfo-commonparent",
+          "text": "Each of the elements of <code>pCommandBuffers</code>, the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkTimelineSemaphoreSubmitInfo": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter",
-          "text": " If <code>waitSemaphoreValueCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValueCount</code> <code>uint64_t</code> values"
+          "text": "If <code>waitSemaphoreValueCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValueCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter",
-          "text": " If <code>signalSemaphoreValueCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValueCount</code> <code>uint64_t</code> values"
+          "text": "If <code>signalSemaphoreValueCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValueCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkD3D12FenceSubmitInfoKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079",
-          "text": " <code>waitSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>waitSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
+          "text": "<code>waitSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>waitSemaphoreCount</code>, where this structure is in the <code>pNext</code> chain of a <code>VkSubmitInfo</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080",
-          "text": " <code>signalSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>signalSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
+          "text": "<code>signalSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>signalSemaphoreCount</code>, where this structure is in the <code>pNext</code> chain of a <code>VkSubmitInfo</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter",
-          "text": " If <code>waitSemaphoreValuesCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValuesCount</code> <code>uint64_t</code> values"
+          "text": "If <code>waitSemaphoreValuesCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValuesCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter",
-          "text": " If <code>signalSemaphoreValuesCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValuesCount</code> <code>uint64_t</code> values"
+          "text": "If <code>signalSemaphoreValuesCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValuesCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkWin32KeyedMutexAcquireReleaseInfoKHR": {
-      "(VK_KHR_win32_keyed_mutex)": [
+      "core": [
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081",
-          "text": " Each member of <code>pAcquireSyncs</code> and <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a device memory object imported by setting <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>::<code>handleType</code> to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>"
+          "text": "Each member of <code>pAcquireSyncs</code> and <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a device memory object imported by setting <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>::<code>handleType</code> to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter",
-          "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
+          "text": "If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter",
-          "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values"
+          "text": "If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent",
-          "text": " Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkWin32KeyedMutexAcquireReleaseInfoNV": {
-      "(VK_NV_win32_keyed_mutex)": [
+      "core": [
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameter",
-          "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeoutMilliseconds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values"
+          "text": "If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeoutMilliseconds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter",
-          "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
+          "text": "If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter",
-          "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values"
+          "text": "If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent",
-          "text": " Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkProtectedSubmitInfo": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkProtectedSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupSubmitInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082",
-          "text": " <code>waitSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>waitSemaphoreCount</code>"
+          "text": "<code>waitSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>waitSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083",
-          "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>commandBufferCount</code>"
+          "text": "<code>commandBufferCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>commandBufferCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084",
-          "text": " <code>signalSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>signalSemaphoreCount</code>"
+          "text": "<code>signalSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>signalSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085",
-          "text": " All elements of <code>pWaitSemaphoreDeviceIndices</code> and <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
+          "text": "All elements of <code>pWaitSemaphoreDeviceIndices</code> and <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086",
-          "text": " All elements of <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be valid device masks"
+          "text": "All elements of <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be valid device masks",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameter",
-          "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> <code>uint32_t</code> values"
+          "text": "If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameter",
-          "text": " If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>uint32_t</code> values"
+          "text": "If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameter",
-          "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> <code>uint32_t</code> values"
+          "text": "If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceQuerySubmitInfoKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221",
-          "text": " <code>counterPassIndex</code> <strong class=\"purple\">must</strong> be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>"
+          "text": "<code>counterPassIndex</code> <strong class=\"purple\">must</strong> be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -2256,303 +2685,366 @@
       "core": [
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00088",
-          "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated with a <code>level</code> of <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
+          "text": "Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated with a <code>level</code> of <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089",
-          "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
+          "text": "Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00091",
-          "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092",
-          "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not have already been recorded to <code>commandBuffer</code>"
+          "text": "If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not have already been recorded to <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00093",
-          "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not appear more than once in <code>pCommandBuffers</code>"
+          "text": "If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not appear more than once in <code>pCommandBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00094",
-          "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family as the <code>VkCommandPool</code> from which <code>commandBuffer</code> was allocated"
+          "text": "Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family as the <code>VkCommandPool</code> from which <code>commandBuffer</code> was allocated",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00096",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, and any element of <code>pCommandBuffers</code> was recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>framebuffer</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>VkFramebuffer</code> <strong class=\"purple\">must</strong> match the <code>VkFramebuffer</code> used in the current render pass instance"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, and any element of <code>pCommandBuffers</code> was recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>framebuffer</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>VkFramebuffer</code> <strong class=\"purple\">must</strong> match the <code>VkFramebuffer</code> used in the current render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-contents-06018",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, its <code>contents</code> parameter <strong class=\"purple\">must</strong> have been set to <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass     instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, its <code>contents</code>     parameter <strong class=\"purple\">must</strong> have been set to     <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code> , or <code>VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06019",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06020",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100",
-          "text": " If <code>vkCmdExecuteCommands</code> is not being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101",
-          "text": " If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries <a href=\"#queries-operation-active\">active</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00102",
-          "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>occlusionQueryEnable</code> set to <code>VK_TRUE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00103",
-          "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>queryFlags</code> having all bits set that are set for the query"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00104",
-          "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>pipelineStatistics</code> having all bits set that are set in the <code>VkQueryPool</code> the query uses"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00105",
-          "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not begin any query types that are <a href=\"#queries-operation-active\">active</a> in <code>commandBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-07594",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries other than <code>VK_QUERY_TYPE_OCCLUSION</code> and <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> <a href=\"#queries-operation-active\">active</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06533",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06534",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06535",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06536",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter",
-          "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commandBufferCount-arraylength",
-          "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-contents-00095",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, that render pass instance <strong class=\"purple\">must</strong> have been begun with the <code>contents</code> parameter of <code>vkCmdBeginRenderPass</code> set to <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00097",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-pInheritanceInfo-00098",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass"
-        }
-      ],
-      "(VK_QCOM_render_pass_transform)": [
-        {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-02865",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-02866",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>transform</code> identical to <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>transform</code> identical to <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-02867",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>renderArea</code> identical to <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderArea</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>renderArea</code> identical to <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderArea</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100",
+          "text": "If <code>vkCmdExecuteCommands</code> is not being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101",
+          "text": "If the <a href=\"#features-inheritedQueries\"><code>inheritedQueries</code></a> feature is not enabled, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries <a href=\"#queries-operation-active\">active</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00102",
+          "text": "If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>occlusionQueryEnable</code> set to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00103",
+          "text": "If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>queryFlags</code> having all bits set that are set for the query",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00104",
+          "text": "If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>pipelineStatistics</code> having all bits set that are set in the <code>VkQueryPool</code> the query uses",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00105",
+          "text": "Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not begin any query types that are <a href=\"#queries-operation-active\">active</a> in <code>commandBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-07594",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries other than <code>VK_QUERY_TYPE_OCCLUSION</code> and <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> <a href=\"#queries-operation-active\">active</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01820",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a protected command buffer"
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a protected command buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01821",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be an unprotected command buffer"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be an unprotected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteCommands-None-02286",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06533",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06534",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06535",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06536",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06021",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and any render pass instance that resumes it"
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and any render pass instance that resumes it",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06022",
-          "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and any render pass instance that resumes it"
+          "text": "If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and any render pass instance that resumes it",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-variableSampleLocations-06023",
+          "text": "If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-flags-06024",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, its <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter <strong class=\"purple\">must</strong> have included <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, its <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter <strong class=\"purple\">must</strong> have included <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06025",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-flags-06026",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>flags</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, excluding <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>flags</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, excluding <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-colorAttachmentCount-06027",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>colorAttachmentCount</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>colorAttachmentCount</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-imageView-06028",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentFormats</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentFormats</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-imageView-07606",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentFormats</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentFormats</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pDepthAttachment-06029",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pStencilAttachment-06030",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>stencilAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>stencilAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pDepthAttachment-06774",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pStencilAttachment-06775",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>stencilAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
-        {
-          "vuid": "VUID-vkCmdExecuteCommands-variableSampleLocations-06023",
-          "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)": [
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>stencilAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteCommands-viewMask-06031",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>viewMask</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>viewMask</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06032",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06033",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06034",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06035",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06036",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteCommands-pNext-06037",
-          "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pNext-09299",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with any color attachment using a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> used to create each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure with a <code>externalFormat</code> matching that used to create the resolve attachment in the render pass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pNext-09300",
+          "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with any color attachment using a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-09375",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a <a href=\"#glossary\">secondary command buffer</a> unless the <a href=\"#features-nestedCommandBuffer\"><code>nestedCommandBuffer</code></a> feature is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376",
+          "text": "If the <a href=\"#features-nestedCommandBuffer\"><code>nestedCommandBuffer</code></a> feature is enabled, the <a href=\"#glossary\">command buffer nesting level</a> of each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxCommandBufferNestingLevel\"><code>maxCommandBufferNestingLevel</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377",
+          "text": "If the <a href=\"#features-nestedCommandBufferRendering\"><code>nestedCommandBufferRendering</code></a> feature is not enabled, and <code>commandBuffer</code> is a <a href=\"#glossary\">secondary command buffer</a>, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have been recorded with <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378",
+          "text": "If the <a href=\"#features-nestedCommandBufferSimultaneousUse\"><code>nestedCommandBufferSimultaneousUse</code></a> feature is not enabled, and <code>commandBuffer</code> is a <a href=\"#glossary\">secondary command buffer</a>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been recorded with <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter",
+          "text": "<code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commandBufferCount-arraylength",
+          "text": "<code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteCommands-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupCommandBufferBeginInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDeviceMask": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00108",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00109",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00110",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>::<code>deviceMask</code> value when the command buffer began recording"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>::<code>deviceMask</code> value when the command buffer began recording",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00111",
-          "text": " If <code>vkCmdSetDeviceMask</code> is called inside a render pass instance, <code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceMask</code> value when the render pass instance began recording"
+          "text": "If <code>vkCmdSetDeviceMask</code> is called inside a render pass instance, <code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceMask</code> value when the render pass instance began recording",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations",
+          "page": "vkspec"
         }
       ]
     },
@@ -2560,19 +3052,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreateFence-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFence-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFence-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFence-pFence-parameter",
-          "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -2580,159 +3076,192 @@
       "core": [
         {
           "vuid": "VUID-VkFenceCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a> or <a href=\"#VkExportFenceWin32HandleInfoKHR\">VkExportFenceWin32HandleInfoKHR</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a> or <a href=\"#VkExportFenceWin32HandleInfoKHR\">VkExportFenceWin32HandleInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceCreateFlagBits\">VkFenceCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceCreateFlagBits\">VkFenceCreateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportFenceCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_fence)": [
+      "core": [
         {
           "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-01446",
-          "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>"
+          "text": "The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportFenceCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportFenceWin32HandleInfoKHR": {
-      "(VK_KHR_external_fence_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447",
-          "text": " If <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportFenceWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a>"
+          "text": "If <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportFenceWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameter",
-          "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
+          "text": "If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetFenceWin32HandleKHR": {
-      "(VK_KHR_external_fence_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkGetFenceWin32HandleKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter",
-          "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetWin32HandleInfoKHR\">VkFenceGetWin32HandleInfoKHR</a> structure"
+          "text": "<code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetWin32HandleInfoKHR\">VkFenceGetWin32HandleInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceWin32HandleKHR-pHandle-parameter",
-          "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
+          "text": "<code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkFenceGetWin32HandleInfoKHR": {
-      "(VK_KHR_external_fence_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when the <code>fence</code>&#8217;s current payload was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when the <code>fence</code>&#8217;s current payload was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449",
-          "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetFenceWin32HandleKHR\">vkGetFenceWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>fence</code> and <code>handleType</code>"
+          "text": "If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetFenceWin32HandleKHR\">vkGetFenceWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>fence</code> and <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-01450",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetFenceFdKHR": {
-      "(VK_KHR_external_fence_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkGetFenceFdKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceFdKHR-pGetFdInfo-parameter",
-          "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetFdInfoKHR\">VkFenceGetFdInfoKHR</a> structure"
+          "text": "<code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetFdInfoKHR\">VkFenceGetFdInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceFdKHR-pFd-parameter",
-          "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
+          "text": "<code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkFenceGetFdInfoKHR": {
-      "(VK_KHR_external_fence_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01453",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when <code>fence</code>&#8217;s current payload was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when <code>fence</code>&#8217;s current payload was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01454",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-fence-01455",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-fence-parameter",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -2740,31 +3269,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyFence-fence-01120",
-          "text": " All <a href=\"#devsandqueues-submission\">queue submission</a> commands that refer to <code>fence</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All <a href=\"#devsandqueues-submission\">queue submission</a> commands that refer to <code>fence</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-fence-01121",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-fence-01122",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFence-fence-parent",
-          "text": " If <code>fence</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>fence</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -2772,15 +3308,18 @@
       "core": [
         {
           "vuid": "VUID-vkGetFenceStatus-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceStatus-fence-parameter",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFenceStatus-fence-parent",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -2788,23 +3327,28 @@
       "core": [
         {
           "vuid": "VUID-vkResetFences-pFences-01123",
-          "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be currently associated with any queue command that has not yet completed execution on that queue"
+          "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be currently associated with any queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetFences-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetFences-pFences-parameter",
-          "text": " <code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles"
+          "text": "<code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetFences-fenceCount-arraylength",
-          "text": " <code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetFences-pFences-parent",
-          "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -2812,215 +3356,260 @@
       "core": [
         {
           "vuid": "VUID-vkWaitForFences-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForFences-pFences-parameter",
-          "text": " <code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles"
+          "text": "<code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForFences-fenceCount-arraylength",
-          "text": " <code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForFences-pFences-parent",
-          "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkRegisterDeviceEventEXT": {
-      "(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-vkRegisterDeviceEventEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter",
-          "text": " <code>pDeviceEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceEventInfoEXT\">VkDeviceEventInfoEXT</a> structure"
+          "text": "<code>pDeviceEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceEventInfoEXT\">VkDeviceEventInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDeviceEventEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDeviceEventEXT-pFence-parameter",
-          "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceEventInfoEXT": {
-      "(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceEventInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceEventInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceEventInfoEXT-deviceEvent-parameter",
-          "text": " <code>deviceEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceEventTypeEXT\">VkDeviceEventTypeEXT</a> value"
+          "text": "<code>deviceEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceEventTypeEXT\">VkDeviceEventTypeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkRegisterDisplayEventEXT": {
-      "(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter",
-          "text": " <code>pDisplayEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayEventInfoEXT\">VkDisplayEventInfoEXT</a> structure"
+          "text": "<code>pDisplayEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayEventInfoEXT\">VkDisplayEventInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-pFence-parameter",
-          "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkRegisterDisplayEventEXT-commonparent",
-          "text": " Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>"
+          "text": "Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayEventInfoEXT": {
-      "(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayEventInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayEventInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayEventInfoEXT-displayEvent-parameter",
-          "text": " <code>displayEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayEventTypeEXT\">VkDisplayEventTypeEXT</a> value"
+          "text": "<code>displayEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayEventTypeEXT\">VkDisplayEventTypeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkImportFenceWin32HandleKHR": {
-      "(VK_KHR_external_fence_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkImportFenceWin32HandleKHR-fence-04448",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportFenceWin32HandleKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter",
-          "text": " <code>pImportFenceWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceWin32HandleInfoKHR\">VkImportFenceWin32HandleInfoKHR</a> structure"
+          "text": "<code>pImportFenceWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceWin32HandleInfoKHR\">VkImportFenceWin32HandleInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportFenceWin32HandleInfoKHR": {
-      "(VK_KHR_external_fence_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-win32\">Handle Types Supported by <code>VkImportFenceWin32HandleInfoKHR</code></a> table"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-win32\">Handle Types Supported by <code>VkImportFenceWin32HandleInfoKHR</code></a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459",
-          "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handleType</code> is not <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460",
-          "text": " If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>"
+          "text": "If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461",
-          "text": " If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
+          "text": "If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01462",
-          "text": " If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01539",
-          "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-name-01540",
-          "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
+          "text": "If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkImportFenceFdKHR": {
-      "(VK_KHR_external_fence_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkImportFenceFdKHR-fence-01463",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportFenceFdKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter",
-          "text": " <code>pImportFenceFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceFdInfoKHR\">VkImportFenceFdInfoKHR</a> structure"
+          "text": "<code>pImportFenceFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceFdInfoKHR\">VkImportFenceFdInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportFenceFdInfoKHR": {
-      "(VK_KHR_external_fence_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-fd\">Handle Types Supported by <code>VkImportFenceFdInfoKHR</code></a> table"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-fd\">Handle Types Supported by <code>VkImportFenceFdInfoKHR</code></a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541",
-          "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
+          "text": "<code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-07306",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_FENCE_IMPORT_TEMPORARY_BIT</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_FENCE_IMPORT_TEMPORARY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-fence-parameter",
-          "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "<code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -3028,677 +3617,818 @@
       "core": [
         {
           "vuid": "VUID-vkCreateSemaphore-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSemaphore-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSemaphore-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter",
-          "text": " <code>pSemaphore</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>pSemaphore</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreCreateInfo": {
-      "(VK_EXT_metal_objects)": [
-        {
-          "vuid": "VUID-VkSemaphoreCreateInfo-pNext-06789",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkSemaphoreCreateInfo-pNext-06789",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkSemaphoreCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>, <a href=\"#VkExportSemaphoreWin32HandleInfoKHR\">VkExportSemaphoreWin32HandleInfoKHR</a>, <a href=\"#VkImportMetalSharedEventInfoEXT\">VkImportMetalSharedEventInfoEXT</a>, or <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>, <a href=\"#VkExportSemaphoreWin32HandleInfoKHR\">VkExportSemaphoreWin32HandleInfoKHR</a>, <a href=\"#VkImportMetalSharedEventInfoEXT\">VkImportMetalSharedEventInfoEXT</a>, <a href=\"#VkQueryLowLatencySupportNV\">VkQueryLowLatencySupportNV</a>, or <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreTypeCreateInfo": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252",
-          "text": " If the <a href=\"#features-timelineSemaphore\"><code>timelineSemaphore</code></a> feature is not enabled, <code>semaphoreType</code> <strong class=\"purple\">must</strong> not equal <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "If the <a href=\"#features-timelineSemaphore\"><code>timelineSemaphore</code></a> feature is not enabled, <code>semaphoreType</code> <strong class=\"purple\">must</strong> not equal <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279",
-          "text": " If <code>semaphoreType</code> is <code>VK_SEMAPHORE_TYPE_BINARY</code>, <code>initialValue</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If <code>semaphoreType</code> is <code>VK_SEMAPHORE_TYPE_BINARY</code>, <code>initialValue</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter",
-          "text": " <code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value"
+          "text": "<code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportSemaphoreCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-01124",
-          "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>"
+          "text": "The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportSemaphoreCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportSemaphoreWin32HandleInfoKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125",
-          "text": " If <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>VkExportSemaphoreWin32HandleInfoKHR</code> <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>"
+          "text": "If <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>VkExportSemaphoreWin32HandleInfoKHR</code> <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameter",
-          "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
+          "text": "If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSemaphoreWin32HandleKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter",
-          "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetWin32HandleInfoKHR\">VkSemaphoreGetWin32HandleInfoKHR</a> structure"
+          "text": "<code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetWin32HandleInfoKHR\">VkSemaphoreGetWin32HandleInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter",
-          "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
+          "text": "<code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreGetWin32HandleInfoKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when the <code>semaphore</code>&#8217;s current payload was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when the <code>semaphore</code>&#8217;s current payload was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127",
-          "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetSemaphoreWin32HandleKHR\">vkGetSemaphoreWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>semaphore</code> and <code>handleType</code>"
+          "text": "If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetSemaphoreWin32HandleKHR\">vkGetSemaphoreWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>semaphore</code> and <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkQueryLowLatencySupportNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkQueryLowLatencySupportNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryLowLatencySupportNV-pQueriedLowLatencyData-parameter",
+          "text": "<code>pQueriedLowLatencyData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSemaphoreFdKHR": {
-      "(VK_KHR_external_semaphore_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSemaphoreFdKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameter",
-          "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetFdInfoKHR\">VkSemaphoreGetFdInfoKHR</a> structure"
+          "text": "<code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetFdInfoKHR\">VkSemaphoreGetFdInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreFdKHR-pFd-parameter",
-          "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
+          "text": "<code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreGetFdInfoKHR": {
-      "(VK_KHR_external_semaphore_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01132",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01135",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
-        }
-      ],
-      "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03253",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03254",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends <strong class=\"purple\">must</strong> have also been submitted for execution",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter",
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSemaphoreZirconHandleFUCHSIA": {
-      "(VK_FUCHSIA_external_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter",
-          "text": " <code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetZirconHandleInfoFUCHSIA\">VkSemaphoreGetZirconHandleInfoFUCHSIA</a> structure"
+          "text": "<code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetZirconHandleInfoFUCHSIA\">VkSemaphoreGetZirconHandleInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameter",
-          "text": " <code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value"
+          "text": "<code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreGetZirconHandleInfoFUCHSIA": {
-      "(VK_FUCHSIA_external_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a Zircon event handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as a Zircon event handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroySemaphore": {
       "core": [
         {
-          "vuid": "VUID-vkDestroySemaphore-semaphore-01137",
-          "text": " All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution"
+          "vuid": "VUID-vkDestroySemaphore-semaphore-05149",
+          "text": "All     submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed     execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-semaphore-01138",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-semaphore-01139",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-semaphore-parameter",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySemaphore-semaphore-parent",
-          "text": " If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSemaphoreCounterValue": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-03255",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreCounterValue-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreCounterValue-pValue-parameter",
-          "text": " <code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
+          "text": "<code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parent",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkWaitSemaphores": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-vkWaitSemaphores-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitSemaphores-pWaitInfo-parameter",
-          "text": " <code>pWaitInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreWaitInfo\">VkSemaphoreWaitInfo</a> structure"
+          "text": "<code>pWaitInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreWaitInfo\">VkSemaphoreWaitInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreWaitInfo": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-03256",
-          "text": " All of the elements of <code>pSemaphores</code> <strong class=\"purple\">must</strong> reference a semaphore that was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "All of the elements of <code>pSemaphores</code> <strong class=\"purple\">must</strong> reference a semaphore that was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreWaitFlagBits\">VkSemaphoreWaitFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreWaitFlagBits\">VkSemaphoreWaitFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-parameter",
-          "text": " <code>pSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
+          "text": "<code>pSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-pValues-parameter",
-          "text": " <code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> <code>uint64_t</code> values"
+          "text": "<code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength",
-          "text": " <code>semaphoreCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>semaphoreCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSignalSemaphore": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-vkSignalSemaphore-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSignalSemaphore-pSignalInfo-parameter",
-          "text": " <code>pSignalInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreSignalInfo\">VkSemaphoreSignalInfo</a> structure"
+          "text": "<code>pSignalInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreSignalInfo\">VkSemaphoreSignalInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkSemaphoreSignalInfo": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-03257",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-value-03258",
-          "text": " <code>value</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore"
+          "text": "<code>value</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-value-03259",
-          "text": " <code>value</code> <strong class=\"purple\">must</strong> be less than the value of any pending semaphore signal operations"
+          "text": "<code>value</code> <strong class=\"purple\">must</strong> be less than the value of any pending semaphore signal operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-value-03260",
-          "text": " <code>value</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on <code>semaphore</code> by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
+          "text": "<code>value</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on <code>semaphore</code> by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkImportSemaphoreWin32HandleKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter",
-          "text": " <code>pImportSemaphoreWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreWin32HandleInfoKHR\">VkImportSemaphoreWin32HandleInfoKHR</a> structure"
+          "text": "<code>pImportSemaphoreWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreWin32HandleInfoKHR\">VkImportSemaphoreWin32HandleInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportSemaphoreWin32HandleInfoKHR": {
-      "(VK_KHR_external_semaphore_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-win32\">Handle Types Supported by <code>VkImportSemaphoreWin32HandleInfoKHR</code></a> table"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-win32\">Handle Types Supported by <code>VkImportSemaphoreWin32HandleInfoKHR</code></a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466",
-          "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handleType</code> is not <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467",
-          "text": " If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>"
+          "text": "If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468",
-          "text": " If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
+          "text": "If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469",
-          "text": " If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542",
-          "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543",
-          "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
+          "text": "If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
-        }
-      ],
-      "(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322",
-          "text": " If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>handle</code> or <code>name</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>handle</code> or <code>name</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkImportSemaphoreFdKHR": {
-      "(VK_KHR_external_semaphore_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkImportSemaphoreFdKHR-semaphore-01142",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportSemaphoreFdKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter",
-          "text": " <code>pImportSemaphoreFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreFdInfoKHR\">VkImportSemaphoreFdInfoKHR</a> structure"
+          "text": "<code>pImportSemaphoreFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreFdInfoKHR\">VkImportSemaphoreFdInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportSemaphoreFdInfoKHR": {
-      "(VK_KHR_external_semaphore_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fd\">Handle Types Supported by <code>VkImportSemaphoreFdInfoKHR</code></a> table"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fd\">Handle Types Supported by <code>VkImportSemaphoreFdInfoKHR</code></a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544",
-          "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
+          "text": "<code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03263",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-07307",
-          "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>"
+          "text": "If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
-        }
-      ],
-      "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03264",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-03323",
-          "text": " If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>fd</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>fd</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter",
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkImportSemaphoreZirconHandleFUCHSIA": {
-      "(VK_FUCHSIA_external_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter",
-          "text": " <code>pImportSemaphoreZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreZirconHandleInfoFUCHSIA\">VkImportSemaphoreZirconHandleInfoFUCHSIA</a> structure"
+          "text": "<code>pImportSemaphoreZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreZirconHandleInfoFUCHSIA\">VkImportSemaphoreZirconHandleInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportSemaphoreZirconHandleInfoFUCHSIA": {
-      "(VK_FUCHSIA_external_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fuchsia\">Handle Types Supported by <code>VkImportSemaphoreZirconHandleInfoFUCHSIA</code></a> table"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fuchsia\">Handle Types Supported by <code>VkImportSemaphoreZirconHandleInfoFUCHSIA</code></a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766",
-          "text": " <code>zirconHandle</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
+          "text": "<code>zirconHandle</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767",
-          "text": " <code>zirconHandle</code> <strong class=\"purple\">must</strong> have <code>ZX_RIGHTS_BASIC</code> and <code>ZX_RIGHTS_SIGNAL</code> rights"
+          "text": "<code>zirconHandle</code> <strong class=\"purple\">must</strong> have <code>ZX_RIGHTS_BASIC</code> and <code>ZX_RIGHTS_SIGNAL</code> rights",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768",
+          "text": "The <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
-        }
-      ],
-      "(VK_FUCHSIA_external_semaphore)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768",
-          "text": " The <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateEvent": {
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-vkCreateEvent-events-04468",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>events</code> is <code>VK_FALSE</code>, then the implementation does not support <a href=\"#synchronization-events\">events</a>, and <a href=\"#vkCreateEvent\">vkCreateEvent</a> <strong class=\"purple\">must</strong> not be used"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkCreateEvent-events-04468",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>events</code> is <code>VK_FALSE</code>, then the implementation does not support <a href=\"#synchronization-events\">events</a>, and <a href=\"#vkCreateEvent\">vkCreateEvent</a> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCreateEvent-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateEvent-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkEventCreateInfo\">VkEventCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkEventCreateInfo\">VkEventCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateEvent-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateEvent-pEvent-parameter",
-          "text": " <code>pEvent</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "<code>pEvent</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkEventCreateInfo": {
-      "(VK_EXT_metal_objects)": [
-        {
-          "vuid": "VUID-VkEventCreateInfo-pNext-06790",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkEventCreateInfo-pNext-06790",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkEventCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EVENT_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EVENT_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkEventCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> or <a href=\"#VkImportMetalSharedEventInfoEXT\">VkImportMetalSharedEventInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> or <a href=\"#VkImportMetalSharedEventInfoEXT\">VkImportMetalSharedEventInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkEventCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkEventCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkEventCreateFlagBits\">VkEventCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkEventCreateFlagBits\">VkEventCreateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -3706,75 +4436,86 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyEvent-event-01145",
-          "text": " All submitted commands that refer to <code>event</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>event</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-event-01146",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-event-01147",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-event-parameter",
-          "text": " If <code>event</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "If <code>event</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyEvent-event-parent",
-          "text": " If <code>event</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>event</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetEventStatus": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkGetEventStatus-event-03940",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkGetEventStatus-event-03940",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkGetEventStatus-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetEventStatus-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetEventStatus-event-parent",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetEvent": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkSetEvent-event-03941",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkSetEvent-event-03941",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkSetEvent-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetEvent-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetEvent-event-parent",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -3782,111 +4523,141 @@
       "core": [
         {
           "vuid": "VUID-vkResetEvent-event-03821",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkResetEvent-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkResetEvent-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
-        },
-        {
-          "vuid": "VUID-vkResetEvent-event-parent",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
           "vuid": "VUID-vkResetEvent-event-03822",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetEvent-event-03823",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkResetEvent-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkResetEvent-event-parameter",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkResetEvent-event-parent",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetEvent2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetEvent2-synchronization2-03824",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-03825",
-          "text": " The <code>dependencyFlags</code> member of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "The <code>dependencyFlags</code> member of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent2-srcStageMask-09391",
+          "text": "The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent2-dstStageMask-09392",
+          "text": "The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent2-commandBuffer-03826",
+          "text": "The current device mask of <code>commandBuffer</code> <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-srcStageMask-03827",
-          "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-dstStageMask-03828",
-          "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-pDependencyInfo-parameter",
-          "text": " <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure"
+          "text": "<code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent2-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-vkCmdSetEvent2-commandBuffer-03826",
-          "text": " The current device mask of <code>commandBuffer</code> <strong class=\"purple\">must</strong> include exactly one physical device"
+          "text": "Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDependencyInfo": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkDependencyInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEPENDENCY_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEPENDENCY_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDependencyInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDependencyInfo-dependencyFlags-parameter",
-          "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
+          "text": "<code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDependencyInfo-pMemoryBarriers-parameter",
-          "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a> structures"
+          "text": "If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter",
-          "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier2\">VkBufferMemoryBarrier2</a> structures"
+          "text": "If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier2\">VkBufferMemoryBarrier2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDependencyInfo-pImageMemoryBarriers-parameter",
-          "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier2\">VkImageMemoryBarrier2</a> structures"
+          "text": "If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier2\">VkImageMemoryBarrier2</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -3894,231 +4665,222 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-06457",
-          "text": " Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-01149",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-parameter",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdSetEvent-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-stageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdSetEvent-stageMask-04996",
-          "text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "vuid": "VUID-vkCmdSetEvent-stageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-stageMask-06457",
+          "text": "Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-stageMask-01149",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152",
-          "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
+          "text": "The current device mask of <code>commandBuffer</code> <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-event-parameter",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-stageMask-parameter",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetEvent-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdResetEvent2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdResetEvent2-synchronization2-03829",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-stageMask-03830",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-event-03831",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-event-03832",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-stageMask-parameter",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent2-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdResetEvent2-stageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdResetEvent2-stageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-stageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-stageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-synchronization2-03829",
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-stageMask-03830",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-event-03831",
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-event-03832",
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent2-commandBuffer-03833",
-          "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
+          "text": "<code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-event-parameter",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-stageMask-parameter",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent2-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -4126,191 +4888,202 @@
       "core": [
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-06458",
-          "text": " Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-01153",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-event-03834",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-event-parameter",
-          "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-parameter",
-          "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdResetEvent-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-stageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-stageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-stageMask-06458",
+          "text": "Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-stageMask-01153",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-event-03834",
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetEvent-event-03835",
-          "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkCmdResetEvent-stageMask-04996",
-          "text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157",
-          "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
+          "text": "<code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-event-parameter",
+          "text": "<code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-stageMask-parameter",
+          "text": "<code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetEvent-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWaitEvents2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWaitEvents2-synchronization2-03836",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-03837",
-          "text": " Members of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>"
+          "text": "Members of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-03838",
-          "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>, that command&#8217;s <code>dependencyInfo</code> parameter <strong class=\"purple\">must</strong> be exactly equal to the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code>"
+          "text": "For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>, that command&#8217;s <code>dependencyInfo</code> parameter <strong class=\"purple\">must</strong> be exactly equal to the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-03839",
-          "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkSetEvent\">vkSetEvent</a>, barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> include only host operations in their first <a href=\"#synchronization-dependencies-scopes\">synchronization scope</a>"
+          "text": "For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkSetEvent\">vkSetEvent</a>, barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> include only host operations in their first <a href=\"#synchronization-dependencies-scopes\">synchronization scope</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-03840",
-          "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> include only host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled before <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> is executed"
+          "text": "For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> include only host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled before <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> is executed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-03841",
-          "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> do not include host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled by a corresponding <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a> that occurred earlier in <a href=\"#synchronization-submission-order\">submission order</a>"
+          "text": "For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> do not include host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled by a corresponding <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a> that occurred earlier in <a href=\"#synchronization-submission-order\">submission order</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-srcStageMask-03842",
-          "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> either include only pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from, or include only <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
+          "text": "The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> either include only pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-dstStageMask-03843",
-          "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-dependencyFlags-03844",
-          "text": " If <code>vkCmdWaitEvents2</code> is being called inside a render pass instance, the <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
+          "text": "If <code>vkCmdWaitEvents2</code> is being called inside a render pass instance, the <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-03846",
-          "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
+          "text": "<code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pEvents-parameter",
-          "text": " <code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles"
+          "text": "<code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-pDependencyInfos-parameter",
-          "text": " <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structures"
+          "text": "<code>pDependencyInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-eventCount-arraylength",
-          "text": " <code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents2-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -4318,279 +5091,342 @@
       "core": [
         {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815",
-          "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816",
-          "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817",
-          "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818",
-          "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819",
-          "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820",
-          "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-06459",
-          "text": " Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-06460",
-          "text": " Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the elements of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the elements of <code>pEvents</code> was set using <code>vkSetEvent</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07308",
-          "text": " If <code>vkCmdWaitEvents</code> is being called inside a render pass instance, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803",
-          "text": " The <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any element of <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter",
-          "text": " <code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter",
-          "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter",
-          "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter",
-          "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-eventCount-arraylength",
-          "text": " <code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07318",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-03937",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-06257",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and a memory barrier <code>srcAccessMask</code> includes <code>VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-dstStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-06257",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and a memory barrier <code>dstAccessMask</code> includes <code>VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815",
+          "text": "The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816",
+          "text": "The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817",
+          "text": "For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818",
+          "text": "For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819",
+          "text": "For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820",
+          "text": "For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-06459",
+          "text": "Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-06460",
+          "text": "Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the elements of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the elements of <code>pEvents</code> was set using <code>vkSetEvent</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07308",
+          "text": "If <code>vkCmdWaitEvents</code> is being called inside a render pass instance, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803",
+          "text": "The <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any element of <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167",
+          "text": "<code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWaitEvents-pEvents-03847",
-          "text": " Elements of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04996",
-          "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "Elements of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04996",
-          "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167",
-          "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
+          "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter",
+          "text": "<code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter",
+          "text": "If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter",
+          "text": "If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter",
+          "text": "If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-eventCount-arraylength",
+          "text": "<code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWaitEvents-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdPipelineBarrier2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdPipelineBarrier2-pDependencies-02285",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, with <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command"
+          "vuid": "VUID-vkCmdPipelineBarrier2-None-07889",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the render pass <strong class=\"purple\">must</strong> have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include <code>VK_DEPENDENCY_BY_REGION_BIT</code> if this command does not, does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> if this command does not, and has <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, it <strong class=\"purple\">must</strong> not include any buffer memory barriers"
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, it <strong class=\"purple\">must</strong> not include any buffer memory barriers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-image-04073",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment"
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-image-09373",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, the corresponding color attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-image-09374",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, it <strong class=\"purple\">must</strong> have been created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-oldLayout-01181",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any memory barrier included in this command <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-None-07890",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance, and the source stage masks of any memory barriers include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, destination stage masks of all memory barriers <strong class=\"purple\">must</strong> only include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-07891",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance, and and the source stage masks of any memory barriers include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-None-07892",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance, the source and destination stage masks of any memory barriers <strong class=\"purple\">must</strong> only include graphics pipeline stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-01186",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called outside of a render pass instance, the dependency flags <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-None-07893",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance and none of the <a href=\"#features-shaderTileImageColorReadAccess\"><code>shaderTileImageColorReadAccess</code></a>, <a href=\"#features-shaderTileImageDepthReadAccess\"><code>shaderTileImageDepthReadAccess</code></a>, <a href=\"#features-shaderTileImageStencilReadAccess\"><code>shaderTileImageStencilReadAccess</code></a> features are enabled, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier2-None-08719",
+          "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, it <strong class=\"purple\">must</strong> adhere to the restrictions in <a href=\"#synchronization-pipeline-barriers-explicit-renderpass-tileimage\">Explicit Render Pass Tile Image Access Synchronization</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-synchronization2-03848",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-srcStageMask-03849",
-          "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-dstStageMask-03850",
-          "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter",
-          "text": " <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure"
+          "text": "<code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-01186",
-          "text": " If fname:vkCmdPipelineBarrier2 is called outside of a render pass instance, <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> <strong class=\"purple\">must</strong> not be included in the dependency flags"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier2-None-06191",
-          "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations",
+          "page": "vkspec"
         }
       ]
     },
@@ -4598,745 +5434,817 @@
       "core": [
         {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815",
-          "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816",
-          "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817",
-          "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818",
-          "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819",
-          "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820",
-          "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, with <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, it <strong class=\"purple\">must</strong> not include any buffer memory barriers"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-image-04073",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-06461",
-          "text": " Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-06462",
-          "text": " Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-parameter",
-          "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter",
-          "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter",
-          "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter",
-          "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07318",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-03937",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-06257",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and a memory barrier <code>srcAccessMask</code> includes <code>VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04996",
-          "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04996",
-          "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-06257",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and a memory barrier <code>dstAccessMask</code> includes <code>VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815",
+          "text": "The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816",
+          "text": "The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817",
+          "text": "For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818",
+          "text": "For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819",
+          "text": "For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820",
+          "text": "For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-None-07889",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the render pass <strong class=\"purple\">must</strong> have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include <code>VK_DEPENDENCY_BY_REGION_BIT</code> if this command does not, does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> if this command does not, and has <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, it <strong class=\"purple\">must</strong> not include any buffer memory barriers",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-image-04073",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-image-09373",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, the corresponding color attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-image-09374",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, it <strong class=\"purple\">must</strong> have been created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any memory barrier included in this command <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-None-07890",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, and the source stage masks of any memory barriers include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, destination stage masks of all memory barriers <strong class=\"purple\">must</strong> only include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-07891",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, and and the source stage masks of any memory barriers include <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-None-07892",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the source and destination stage masks of any memory barriers <strong class=\"purple\">must</strong> only include graphics pipeline stages",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186",
-          "text": " If fname:vkCmdPipelineBarrier is called outside of a render pass instance, <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> <strong class=\"purple\">must</strong> not be included in the dependency flags"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "text": "If <code>vkCmdPipelineBarrier</code> is called outside of a render pass instance, the dependency flags <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-None-06191",
-          "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "vuid": "VUID-vkCmdPipelineBarrier-None-07893",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance and none of the <a href=\"#features-shaderTileImageColorReadAccess\"><code>shaderTileImageColorReadAccess</code></a>, <a href=\"#features-shaderTileImageDepthReadAccess\"><code>shaderTileImageDepthReadAccess</code></a>, <a href=\"#features-shaderTileImageStencilReadAccess\"><code>shaderTileImageStencilReadAccess</code></a> features are enabled, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-None-08719",
+          "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, it <strong class=\"purple\">must</strong> adhere to the restrictions in <a href=\"#synchronization-pipeline-barriers-explicit-renderpass-tileimage\">Explicit Render Pass Tile Image Access Synchronization</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-06461",
+          "text": "Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-06462",
+          "text": "Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-parameter",
+          "text": "<code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter",
+          "text": "If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter",
+          "text": "If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter",
+          "text": "If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryBarrier2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03900",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03901",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03902",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03903",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03904",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03905",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03906",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03907",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03909",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03910",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03911",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03912",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03913",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03914",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03915",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03916",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03917",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03900",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03901",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03902",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03903",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03904",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03905",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03906",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03907",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03909",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03910",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03911",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03912",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03913",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03914",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03915",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03916",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03917",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER_2</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03918",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03918",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03919",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03919",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03920",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04747",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03922",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03920",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04747",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03922",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03900",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03901",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03902",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03903",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03904",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03905",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03906",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03907",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07454",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03909",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03910",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03911",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03912",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03913",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03914",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03915",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03916",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03917",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03918",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03919",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03920",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04747",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03922",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03923",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04994",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04994",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07454",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07457",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07458",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07454",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07457",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07458",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03908",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03908",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03923",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03923",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03924",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03925",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03924",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03925",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03926",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03926",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03927",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03928",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03927",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03928",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06254",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06254",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06255",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06255",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07272",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07272",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04858",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04859",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04858",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04859",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04860",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04861",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04860",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04861",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)": [
-        {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07455",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07456",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07457",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07458",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-08118",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03929",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03930",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03931",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03932",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03933",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03934",
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03935",
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07316",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04957",
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04995",
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03900",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03901",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03902",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03903",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03904",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03905",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03906",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03907",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07454",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03909",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03910",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03911",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03912",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03913",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03914",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03915",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03916",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03917",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03918",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03919",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03920",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04747",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03922",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03923",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04994",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03924",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03925",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03926",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03927",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03928",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06256",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07272",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04858",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04859",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04860",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04861",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07455",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07456",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-08118",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07457",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07458",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-08118",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-parameter",
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-parameter",
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -5344,595 +6252,647 @@
       "core": [
         {
           "vuid": "VUID-VkMemoryBarrier-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryBarrier-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferMemoryBarrier2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03900",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03901",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03902",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03903",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03904",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03905",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03906",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03907",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03909",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03910",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03911",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03912",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03913",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03914",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03915",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03916",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03917",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03900",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03901",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03902",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03903",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03904",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03905",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03906",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03907",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03909",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03910",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03911",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03912",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03913",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03914",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03915",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03916",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03917",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-offset-01187",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-size-01188",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-size-01189",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-01931",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03851",
-          "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03918",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03918",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03919",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03919",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03920",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04747",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03922",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03920",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04747",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03922",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03900",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03901",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03902",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03903",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03904",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03905",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03906",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03907",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07454",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03909",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03910",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03911",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03912",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03913",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03914",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03915",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03916",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03917",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03918",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03919",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03920",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04747",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03922",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03923",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04994",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04994",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07454",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07457",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07458",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07454",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07457",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07458",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03908",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03908",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03923",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03923",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03924",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03925",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03924",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03925",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03926",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03926",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03927",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03928",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03927",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03928",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06254",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06254",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06255",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06255",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07272",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07272",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04858",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04859",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04858",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04859",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04860",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04861",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04860",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04861",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)": [
-        {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07455",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07456",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07457",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07458",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-08118",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03929",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03930",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03931",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03932",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03933",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03934",
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03935",
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07316",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04957",
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04995",
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03900",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03901",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03902",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03903",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03904",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03905",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03906",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03907",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07454",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03909",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03910",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03911",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03912",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03913",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03914",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03915",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03916",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03917",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03918",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03919",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03920",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04747",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03922",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03923",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04994",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03924",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03925",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03926",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03927",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03928",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06256",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07272",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04858",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04859",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04860",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04861",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07455",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07456",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-08118",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07457",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07458",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-08118",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04086",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "vuid": "VUID-VkBufferMemoryBarrier2-offset-01187",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-size-01188",
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-size-01189",
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-01931",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-09095",
+          "text": "If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-09096",
+          "text": "If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087",
-          "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
+          "text": "If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one of <code>srcQueueFamilyIndex</code> or <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code> or <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04088",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+          "vuid": "VUID-VkBufferMemoryBarrier2-None-09097",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04089",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
+          "vuid": "VUID-VkBufferMemoryBarrier2-None-09098",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03851",
+          "text": "If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter",
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter",
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier2-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -5940,991 +6900,1343 @@
       "core": [
         {
           "vuid": "VUID-VkBufferMemoryBarrier-offset-01187",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-size-01188",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-size-01189",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-buffer-01931",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-buffer-09095",
+          "text": "If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-buffer-09096",
+          "text": "If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087",
+          "text": "If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one of <code>srcQueueFamilyIndex</code> or <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code> or <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-None-09097",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-None-09098",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-None-09049",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-None-09050",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-None-09051",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferMemoryBarrier-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-buffer-04086",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03852",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087",
-          "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-buffer-04088",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-buffer-04089",
-          "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
-        },
-        {
-          "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03853",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageMemoryBarrier2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03900",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03901",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03902",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03903",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03904",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03905",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03906",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03907",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03909",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03910",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03911",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03912",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03913",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03914",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03915",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03916",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03917",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03900",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03901",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03902",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03903",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03904",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03905",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03906",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03907",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03909",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03910",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03911",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03912",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03913",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03914",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03915",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03916",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03917",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01486",
-          "text": " <code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01724",
-          "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01488",
-          "text": " <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01725",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-01932",
-          "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01208",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01209",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01210",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01211",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01212",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01213",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01197",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-newLayout-01198",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03854",
-          "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03855",
-          "text": " If <code>srcStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-parameter",
-          "text": " <code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-newLayout-parameter",
-          "text": " <code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-parameter",
-          "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03918",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03918",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03919",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03919",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03920",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04747",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03922",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03920",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04747",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03922",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03900",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03901",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03902",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03903",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03904",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03905",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03906",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03907",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07454",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03909",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03910",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03911",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03912",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03913",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03914",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03915",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03916",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03917",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03918",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03919",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03920",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04747",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03922",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03923",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04994",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04994",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07454",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07457",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07458",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07454",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07457",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07458",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03908",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03908",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03923",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03923",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03924",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03925",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03924",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03925",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03926",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03926",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03927",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03928",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03927",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03928",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06254",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06254",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06255",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06255",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>srcAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06256",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06257",
-          "text": " If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07272",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07272",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04858",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04859",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04858",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04859",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04860",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04861",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04860",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04861",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07455",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07456",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07457",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07458",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-08118",
+          "text": "If <code>srcAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03929",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03930",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03931",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03932",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03933",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03934",
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03935",
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07316",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04957",
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04995",
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03900",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03901",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03902",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03903",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03904",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03905",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03906",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03907",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07454",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03909",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03910",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03911",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03912",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03913",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03914",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03915",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03916",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03917",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03918",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03919",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03920",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04747",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03922",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03923",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04994",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03924",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03925",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03926",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03927",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03928",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06256",
+          "text": "If the <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature is not enabled and <code>dstAccessMask</code> includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07272",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code> or <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04858",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04859",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04860",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04861",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07455",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07456",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-08118",
-          "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07457",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07458",
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_MICROMAP_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-08118",
-          "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+          "text": "If <code>dstAccessMask</code> includes <code>VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01208",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01209",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01210",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01211",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01212",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01213",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01197",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-newLayout-01198",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01658",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01659",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-synchronization2-06911",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "vuid": "VUID-VkImageMemoryBarrier2-synchronization2-07793",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>oldLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-synchronization2-07794",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-02088",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-02902",
-          "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-01671",
-          "text": " If <code>image</code> has a single-plane color format or is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-01672",
-          "text": " If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either at least one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>; or <strong class=\"purple\">must</strong> include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "vuid": "VUID-VkImageMemoryBarrier2-image-09117",
+          "text": "If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-01673",
-          "text": " If <code>image</code> has a multi-planar format with only two planes, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-01207",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-03319",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "vuid": "VUID-VkImageMemoryBarrier2-image-09118",
+          "text": "If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-03320",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-04069",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070",
-          "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
+          "text": "If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one of <code>srcQueueFamilyIndex</code> or <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code> or <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-04071",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+          "vuid": "VUID-VkImageMemoryBarrier2-None-09119",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier2-image-04072",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_attachment_feedback_loop_layout)": [
+          "vuid": "VUID-VkImageMemoryBarrier2-None-09120",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01486",
+          "text": "<code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01724",
+          "text": "If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> +  <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01488",
+          "text": "<code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01725",
+          "text": "If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> +  <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-01932",
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-09241",
+          "text": "If <code>image</code> has a color format that is single-plane, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-09242",
+          "text": "If <code>image</code> has a color format and is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-01672",
+          "text": "If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include at least one <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit or <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-03320",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-03319",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-aspectMask-08702",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-aspectMask-08703",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03854",
+          "text": "If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03855",
+          "text": "If <code>srcStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a> or <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-parameter",
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-parameter",
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-parameter",
+          "text": "<code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-newLayout-parameter",
+          "text": "<code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-parameter",
+          "text": "<code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageMemoryBarrier": {
       "core": [
         {
-          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486",
-          "text": " <code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01724",
-          "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488",
-          "text": " <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01725",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-01932",
-          "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER</code>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-oldLayout-parameter",
-          "text": " <code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-newLayout-parameter",
-          "text": " <code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter",
-          "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-synchronization2-06911",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "vuid": "VUID-VkImageMemoryBarrier-synchronization2-07793",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>oldLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-synchronization2-07794",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-02902",
-          "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-01671",
-          "text": " If <code>image</code> has a single-plane color format or is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-image-01672",
-          "text": " If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either at least one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>; or <strong class=\"purple\">must</strong> include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "vuid": "VUID-VkImageMemoryBarrier-image-09117",
+          "text": "If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-image-01673",
-          "text": " If <code>image</code> has a multi-planar format with only two planes, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-01207",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-03319",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "vuid": "VUID-VkImageMemoryBarrier-image-09118",
+          "text": "If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_EXTERNAL</code>, <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>, or a valid queue family",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-image-03320",
-          "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-image-04069",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
-        },
-        {
-          "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03856",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070",
-          "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
+          "text": "If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one of <code>srcQueueFamilyIndex</code> or <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code> or <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-image-04071",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+          "vuid": "VUID-VkImageMemoryBarrier-None-09119",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-image-04072",
-          "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
+          "vuid": "VUID-VkImageMemoryBarrier-None-09120",
+          "text": "If     the <a href=\"#VK_KHR_external_memory\">VK_KHR_external_memory</a> extension is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is not greater than or equal to Version 1.1,     <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03857",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
-        }
-      ],
-      "(VK_EXT_attachment_feedback_loop_layout)": [
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122",
+          "text": "If the <a href=\"#VK_EXT_queue_family_foreign\">VK_EXT_queue_family_foreign</a> extension is not enabled <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> not be <code>VK_QUEUE_FAMILY_FOREIGN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07121",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07122",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07123",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07124",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07125",
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006",
-          "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit"
+          "text": "If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits, and the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryBarrier-attachmentFeedbackLoopLayout-07313",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486",
+          "text": "<code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01724",
+          "text": "If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> +  <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488",
+          "text": "<code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01725",
+          "text": "If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> +  <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-01932",
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-09241",
+          "text": "If <code>image</code> has a color format that is single-plane, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-09242",
+          "text": "If <code>image</code> has a color format and is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-01672",
+          "text": "If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include at least one <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit or <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-03320",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-03319",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-aspectMask-08702",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-aspectMask-08703",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-None-09052",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-None-09053",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-None-09054",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or <code>VK_QUEUE_FAMILY_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a> or <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-oldLayout-parameter",
+          "text": "<code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-newLayout-parameter",
+          "text": "<code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter",
+          "text": "<code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkTransitionImageLayoutEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkTransitionImageLayoutEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkTransitionImageLayoutEXT-pTransitions-parameter",
+          "text": "<code>pTransitions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>transitionCount</code> valid <a href=\"#VkHostImageLayoutTransitionInfoEXT\">VkHostImageLayoutTransitionInfoEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkTransitionImageLayoutEXT-transitionCount-arraylength",
+          "text": "<code>transitionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkHostImageLayoutTransitionInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09055",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486",
+          "text": "<code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724",
+          "text": "If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> +  <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488",
+          "text": "<code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01725",
+          "text": "If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> +  <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-01932",
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09241",
+          "text": "If <code>image</code> has a color format that is single-plane, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-09242",
+          "text": "If <code>image</code> has a color format and is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-01672",
+          "text": "If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include at least one <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit or <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319",
+          "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703",
+          "text": "If the <code>aspectMask</code> member of <code>subresourceRange</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, <code>oldLayout</code> and <code>newLayout</code> <strong class=\"purple\">must</strong> not be one of <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229",
+          "text": "<code>oldLayout</code> <strong class=\"purple\">must</strong> be either <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources as specified in <code>subresourceRange</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230",
+          "text": "If <code>oldLayout</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, it <strong class=\"purple\">must</strong> be one of the layouts in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopySrcLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057",
+          "text": "<code>newLayout</code> <strong class=\"purple\">must</strong> be one of the layouts in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopyDstLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter",
+          "text": "<code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter",
+          "text": "<code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter",
+          "text": "<code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkExternalMemoryAcquireUnmodifiedEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922",
+          "text": "If <code>acquireUnmodifiedMemory</code> is <code>VK_TRUE</code>, and the memory barrier&#8217;s <code>srcQueueFamilyIndex</code> is a special queue family reserved for external memory ownership transfers (as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>), then each range of <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> bound to the resource <strong class=\"purple\">must</strong> have remained unmodified during all time since the resource&#8217;s most recent release of ownership to the queue family.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -6932,7 +8244,8 @@
       "core": [
         {
           "vuid": "VUID-vkQueueWaitIdle-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -6940,719 +8253,1039 @@
       "core": [
         {
           "vuid": "VUID-vkDeviceWaitIdle-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         }
       ]
     },
-    "vkGetCalibratedTimestampsEXT": {
-      "(VK_EXT_calibrated_timestamps)": [
+    "vkGetCalibratedTimestampsKHR": {
+      "core": [
         {
-          "vuid": "VUID-vkGetCalibratedTimestampsEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "vuid": "VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246",
+          "text": "The <code>timeDomain</code> value of each <a href=\"#VkCalibratedTimestampInfoEXT\">VkCalibratedTimestampInfoEXT</a> in <code>pTimestampInfos</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter",
-          "text": " <code>pTimestampInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> valid <a href=\"#VkCalibratedTimestampInfoEXT\">VkCalibratedTimestampInfoEXT</a> structures"
+          "vuid": "VUID-vkGetCalibratedTimestampsKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter",
-          "text": " <code>pTimestamps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> <code>uint64_t</code> values"
+          "vuid": "VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameter",
+          "text": "<code>pTimestampInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> valid <a href=\"#VkCalibratedTimestampInfoKHR\">VkCalibratedTimestampInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter",
-          "text": " <code>pMaxDeviation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
+          "vuid": "VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter",
+          "text": "<code>pTimestamps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength",
-          "text": " <code>timestampCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameter",
+          "text": "<code>pMaxDeviation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength",
+          "text": "<code>timestampCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkCalibratedTimestampInfoEXT": {
-      "(VK_EXT_calibrated_timestamps)": [
+    "VkCalibratedTimestampInfoKHR": {
+      "core": [
         {
           "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354",
-          "text": " <code>timeDomain</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> values returned by <a href=\"#vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\">vkGetPhysicalDeviceCalibrateableTimeDomainsEXT</a>"
+          "text": "<code>timeDomain</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkTimeDomainKHR\">VkTimeDomainKHR</a> values returned by <a href=\"#vkGetPhysicalDeviceCalibrateableTimeDomainsKHR\">vkGetPhysicalDeviceCalibrateableTimeDomainsKHR</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCalibratedTimestampInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT</code>"
+          "vuid": "VUID-VkCalibratedTimestampInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCalibratedTimestampInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "vuid": "VUID-VkCalibratedTimestampInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter",
-          "text": " <code>timeDomain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> value"
+          "vuid": "VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameter",
+          "text": "<code>timeDomain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTimeDomainKHR\">VkTimeDomainKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginRendering": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginRendering-dynamicRendering-06446",
-          "text": " The <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-commandBuffer-06068",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, <code>pRenderingInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not include <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, and the <a href=\"#features-nestedCommandBuffer\"><code>nestedCommandBuffer</code></a> feature is not enabled, <code>pRenderingInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not include <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-pRenderingInfo-parameter",
-          "text": " <code>pRenderingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> structure"
+          "text": "<code>pRenderingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRendering-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderingInfo": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderingInfo-viewMask-06069",
-          "text": " If <code>viewMask</code> is <code>0</code>, <code>layerCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If <code>viewMask</code> is <code>0</code>, <code>layerCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857",
-          "text": " If none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with the same <code>sampleCount</code>"
+          "text": "<code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with the same <code>sampleCount</code> , if none of the following are enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature,</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06087",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
+          "vuid": "VUID-VkRenderingInfo-imageView-09429",
+          "text": "<code>imageView</code> members of elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with the same <code>sampleCount</code> , if the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06547",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a depth aspect"
+          "vuid": "VUID-VkRenderingInfo-None-08994",
+          "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06088",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "vuid": "VUID-VkRenderingInfo-None-08995",
+          "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06548",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a stencil aspect"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06089",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a stencil usage including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06090",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06091",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06092",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06093",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06094",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06095",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06102",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06103",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06104",
-          "text": " If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06105",
-          "text": " If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and the <code>resolveMode</code> of neither structure is <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06106",
-          "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxColorAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-multiview-06127",
-          "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>, or <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pColorAttachments-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-parameter",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-parameter",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-VkRenderingInfo-imageView-06858",
-          "text": " If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled, then all attachments referenced by <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have a sample count that is either <code>VK_SAMPLE_COUNT_1_BIT</code> or equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
+          "text": "If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled, then all attachments referenced by <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have a sample count that is either <code>VK_SAMPLE_COUNT_1_BIT</code> or equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06859",
-          "text": " If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled, then all attachments referenced by <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code> in their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-VkRenderingInfo-renderArea-06071",
-          "text": " <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled, then all attachments referenced by <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code> in their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-renderArea-06072",
-          "text": " <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-renderArea-06073",
-          "text": " The sum of <code>renderArea.offset.x</code> and <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-renderArea-06074",
-          "text": " The sum of <code>renderArea.offset.y</code> and <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-imageView-06075",
-          "text": " The width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span>"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-imageView-06076",
-          "text": " The height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
           "vuid": "VUID-VkRenderingInfo-pNext-06077",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06078",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pNext-07815",
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the sum of <code>renderArea.extent.width</code> and <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pNext-07816",
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the sum of <code>renderArea.extent.height</code> and <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferHeight</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06079",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span>"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.x</code> +  <code>renderArea.extent.width</code></span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06080",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span>"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> +  <code>renderArea.extent.height</code></span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06083",
-          "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.x</code> and <code>extent.width</code> members of each element of <code>pDeviceRenderAreas</code>"
+          "text": "If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.x</code> and <code>extent.width</code> members of each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06084",
-          "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.y</code> and <code>extent.height</code> members of each element of <code>pDeviceRenderAreas</code>"
+          "text": "If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.y</code> and <code>extent.height</code> members of each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06085",
-          "text": " If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code> and the <code>imageView</code> member of either structure is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>imageView</code> member of each structure <strong class=\"purple\">must</strong> be the same"
+          "text": "If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code> and the <code>imageView</code> member of either structure is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>imageView</code> member of each structure <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06086",
-          "text": " If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code>, and the <code>resolveMode</code> member of each is not <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveImageView</code> member of each structure <strong class=\"purple\">must</strong> be the same"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)": [
+          "text": "If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code>, and the <code>resolveMode</code> member of each is not <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveImageView</code> member of each structure <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06087",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09476",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and there is an element of <code>pColorAttachments</code> with either its <code>resolveMode</code> member set to <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, or its <code>imageView</code> member not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and its <code>resolveMode</code> member not set to <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveImageView</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06547",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a depth component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06088",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09477",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06548",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a stencil aspect",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06089",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a stencil usage including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09478",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06090",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06091",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06092",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06093",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06094",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06095",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06096",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06097",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06098",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06099",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)": [
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06100",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06101",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pDepthAttachment-07732",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pDepthAttachment-07733",
-          "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pStencilAttachment-07734",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pStencilAttachment-07735",
-          "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkRenderingInfo-imageView-06107",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <a href=\"#features-fragmentDensityMapNonSubsampledImages\"><code>fragmentDensityMapNonSubsampledImages</code></a> feature is not enabled, valid <code>imageView</code> and <code>resolveImageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and each element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-imageView-06116",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06102",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06103",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06104",
+          "text": "If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06105",
+          "text": "If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and the <code>resolveMode</code> of neither structure is <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06106",
+          "text": "<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxColorAttachments</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-imageView-06107",
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <a href=\"#features-fragmentDensityMapNonSubsampledImages\"><code>fragmentDensityMapNonSubsampledImages</code></a> feature is not enabled, valid <code>imageView</code> and <code>resolveImageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and each element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06108",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than or equal to the index of the most significant bit in <code>viewMask</code>"
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than or equal to the index of the most significant bit in <code>viewMask</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06109",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-VkRenderingInfo-imageView-06110",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-imageView-06111",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
           "vuid": "VUID-VkRenderingInfo-pNext-06112",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pNext-06113",
-          "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06114",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pNext-06113",
+          "text": "If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06115",
-          "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-VkRenderingInfo-imageView-06117",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)"
+          "text": "If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingInfo-imageView-06118",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "vuid": "VUID-VkRenderingInfo-imageView-06116",
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06119",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)"
-        },
-        {
-          "vuid": "VUID-VkRenderingInfo-pNext-06120",
-          "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06121",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pNext-06120",
+          "text": "If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-pNext-06122",
-          "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-layerCount-07817",
+          "text": "<code>layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferLayers\"><code>maxFramebufferLayers</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06123",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either equal to <code>1</code> or greater than or equal to <code>layerCount</code>"
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either equal to <code>1</code> or greater than or equal to <code>layerCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06124",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that either equal to <code>1</code> or greater than or equal to the index of the most significant bit in <code>viewMask</code>"
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that either equal to <code>1</code> or greater than or equal to the index of the most significant bit in <code>viewMask</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06125",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-imageView-06126",
-          "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-multiview-06127",
+          "text": "If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingInfo-viewMask-06128",
-          "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
+          "text": "The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-perViewRenderAreaCount-07857",
+          "text": "If the <code>perViewRenderAreaCount</code> member of a <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a> structure included in the <code>pNext</code> chain is not <code>0</code>, then the <a href=\"#features-multiview-per-view-render-areas\"><code>multiviewPerViewRenderAreas</code></a> feature <strong class=\"purple\">must</strong> be enabled.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-perViewRenderAreaCount-07858",
+          "text": "If the <code>perViewRenderAreaCount</code> member of a <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a> structure included in the <code>pNext</code> chain is not <code>0</code>, then <code>renderArea</code> <strong class=\"purple\">must</strong> specify a render area that includes the union of all per view render areas.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-None-09044",
+          "text": "Valid attachments specified by this structure <strong class=\"purple\">must</strong> not be bound to memory locations that are bound to any other valid attachments specified by this structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-flags-09381",
+          "text": "If <code>flags</code> includes <code>VK_RENDERING_CONTENTS_INLINE_BIT_EXT</code> then the <a href=\"#features-nestedCommandBuffer\"><code>nestedCommandBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09318",
+          "text": "<code>pDepthAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09319",
+          "text": "<code>pStencilAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09320",
+          "text": "If <code>colorAttachmentCount</code> is not <code>1</code>, the <code>resolveMode</code> member of any element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-resolveMode-09321",
+          "text": "If the <code>resolveMode</code> of any element of <code>pColorAttachments</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-resolveMode-09322",
+          "text": "If the <code>resolveMode</code> of any element of <code>pColorAttachments</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> If the <code>pNext</code> chain contains a <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a> structure, the union of stripe areas defined by the elements of <a href=\"#VkRenderPassStripeInfoARM\">VkRenderPassStripeInfoARM</a>::<code>pStripeInfos</code> <strong class=\"purple\">must</strong> cover the <code>renderArea</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09479",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>imageView</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09480",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, and there is an element of <code>pColorAttachments</code> with either its <code>resolveMode</code> member set to <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, or its <code>imageView</code> member not set to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and its <code>resolveMode</code> member not set to <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveImageView</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09481",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09482",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageView</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09483",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09484",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageView</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-imageView-09485",
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-imageView-09486",
+          "text": "If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a>, <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a>, <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>, or <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pColorAttachments-parameter",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pDepthAttachment-parameter",
+          "text": "If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingInfo-pStencilAttachment-parameter",
+          "text": "If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderingAttachmentInfo": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06129",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has a non-integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_AVERAGE_BIT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has a non-integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_AVERAGE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06130",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has an integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_SAMPLE_ZERO_BIT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has an integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_SAMPLE_ZERO_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06864",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06865",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>imageView</code> and <code>resolveImageView</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06135",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06136",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-parameter",
-          "text": " If <code>resolveMode</code> is not <code>0</code>, <code>resolveMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkResolveModeFlagBits\">VkResolveModeFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageView-parameter",
-          "text": " If <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter",
-          "text": " <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-loadOp-parameter",
-          "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-storeOp-parameter",
-          "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-clearValue-parameter",
-          "text": " <code>clearValue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkClearValue\">VkClearValue</a> union"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-commonparent",
-          "text": " Both of <code>imageView</code>, and <code>resolveImageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06132",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06860",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06861",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> does not includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the <code>multisampledRenderToSingleSampledEnable</code> field equal to <code>VK_TRUE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code> if all of the following hold:<div class=\"ulist\">\n<ul>\n<li>\n<p><code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a></p>\n</li>\n<li>\n<p><code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code></p>\n</li>\n<li>\n<p>the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> does not include a\n<a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the\n<code>multisampledRenderToSingleSampledEnable</code> field equal to\n<code>VK_TRUE</code></p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06862",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> does not includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the <code>multisampledRenderToSingleSampledEnable</code> field equal to <code>VK_TRUE</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>resolveImageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> if all of the following hold:<div class=\"ulist\">\n<ul>\n<li>\n<p><code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a></p>\n</li>\n<li>\n<p><code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code></p>\n</li>\n<li>\n<p>the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> does not include a\n<a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the\n<code>multisampledRenderToSingleSampledEnable</code> field equal to\n<code>VK_TRUE</code></p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06863",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the <code>multisampledRenderToSingleSampledEnable</code> field equal to <code>VK_TRUE</code>, and <code>imageView</code> has a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with the <code>multisampledRenderToSingleSampledEnable</code> field equal to <code>VK_TRUE</code>, and <code>imageView</code> has a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06864",
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06865",
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>imageView</code> and <code>resolveImageView</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06135",
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06136",
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06137",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_shading_rate_image)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06138",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06139",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06140",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06141",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06142",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06143",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06144",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_swapchain)": [
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06145",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06146",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, <code>resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09324",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be a valid image view",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325",
+          "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_TRUE</code> and <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with an image with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09326",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with an external format specified by <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09327",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with a <code>subresourceRange.layerCount</code> of <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09328",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_TRUE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09329",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09330",
+          "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create <code>resolveImageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageView-parameter",
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-imageLayout-parameter",
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-parameter",
+          "text": "If <code>resolveMode</code> is not <code>0</code>, <code>resolveMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkResolveModeFlagBits\">VkResolveModeFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageView-parameter",
+          "text": "If <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter",
+          "text": "<code>resolveImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-loadOp-parameter",
+          "text": "<code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-storeOp-parameter",
+          "text": "<code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-clearValue-parameter",
+          "text": "<code>clearValue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkClearValue\">VkClearValue</a> union",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAttachmentInfo-commonparent",
+          "text": "Both of <code>imageView</code>, and <code>resolveImageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderingFragmentShadingRateAttachmentInfoKHR": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderingFragmentDensityMapAttachmentInfoEXT": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908",
+          "text": "If <a href=\"#VK_KHR_multiview\">VK_KHR_multiview</a> is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [
+      ]
+    },
+    "vkGetRenderingAreaGranularityKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06160",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
+          "vuid": "VUID-vkGetRenderingAreaGranularityKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameter",
+          "text": "<code>pRenderingAreaInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAreaInfoKHR\">VkRenderingAreaInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameter",
+          "text": "<code>pGranularity</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkRenderingAreaInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkRenderingAreaInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderingAreaInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkRenderPassStripeBeginInfoARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-09450",
+          "text": "<code>stripeInfoCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRenderPassStripedPropertiesARM</code>::<code>maxRenderPassStripes</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeBeginInfoARM-stripeArea-09451",
+          "text": "The <code>stripeArea</code> defined by each element of <code>pStripeInfos</code> <strong class=\"purple\">must</strong> not overlap the <code>stripeArea</code> of any other element",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeBeginInfoARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeBeginInfoARM-pStripeInfos-parameter",
+          "text": "<code>pStripeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stripeInfoCount</code> valid <a href=\"#VkRenderPassStripeInfoARM\">VkRenderPassStripeInfoARM</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-arraylength",
+          "text": "<code>stripeInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkRenderPassStripeInfoARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-stripeArea-09452",
+          "text": "<code>stripeArea.offset.x</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>::<code>renderPassStripeGranularity.width</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-stripeArea-09453",
+          "text": "<code>stripeArea.extent.width</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>::<code>renderPassStripeGranularity.width</code>, or the sum of <code>stripeArea.offset.x</code> and <code>stripeArea.extent.width</code> <strong class=\"purple\">must</strong> be equal to the <code>renderArea.extent.width</code> of the render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-stripeArea-09454",
+          "text": "<code>stripeArea.offset.y</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>::<code>renderPassStripeGranularity.height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-stripeArea-09455",
+          "text": "<code>stripeArea.extent.height</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>::<code>renderPassStripeGranularity.height</code>, or the sum of <code>stripeArea.offset.y</code> and <code>stripeArea.extent.height</code> <strong class=\"purple\">must</strong> be equal to the <code>renderArea.extent.height</code> of the render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassStripeInfoARM-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndRendering": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndRendering-None-06161",
-          "text": " The current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "text": "The current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-commandBuffer-06162",
-          "text": " The current render pass instance <strong class=\"purple\">must</strong> have been begun in <code>commandBuffer</code>"
+          "text": "The current render pass instance <strong class=\"purple\">must</strong> have been begun in <code>commandBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndRendering-None-06781",
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-None-06999",
-          "text": " If <code>vkCmdBeginQuery</code>* was called within the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass"
+          "text": "If <code>vkCmdBeginQuery</code>* was called within the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRendering-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_transform_feedback)": [
-        {
-          "vuid": "VUID-vkCmdEndRendering-None-06781",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkTilePropertiesQCOM": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkTilePropertiesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTilePropertiesQCOM-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDynamicRenderingTilePropertiesQCOM": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameter",
-          "text": " <code>pRenderingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> structure"
+          "text": "<code>pRenderingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDynamicRenderingTilePropertiesQCOM-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkTilePropertiesQCOM\">VkTilePropertiesQCOM</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkTilePropertiesQCOM\">VkTilePropertiesQCOM</a> structure",
+          "page": "vkspec"
         }
       ]
     },
@@ -7660,19 +9293,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreateRenderPass-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass-pRenderPass-parameter",
-          "text": " <code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
+          "text": "<code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -7680,379 +9317,452 @@
       "core": [
         {
           "vuid": "VUID-VkRenderPassCreateInfo-attachment-00834",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471",
+          "text": "If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836",
-          "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-02511",
-          "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837",
-          "text": " For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838",
-          "text": " For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06866",
-          "text": " For any element of <code>pDependencies</code>, if its <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, it <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06867",
-          "text": " For any element of <code>pDependencies</code>, if its <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, it <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>, <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>, or <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter",
-          "text": " <code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription\">VkSubpassDescription</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter",
-          "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength",
-          "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471",
-          "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566",
-          "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01567",
-          "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01926",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>subpass</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>subpass</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>inputAttachmentIndex</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than the value of <code>inputAttachmentCount</code> in the element of <code>pSubpasses</code> identified by its <code>subpass</code> member"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>inputAttachmentIndex</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than the value of <code>inputAttachmentCount</code> in the element of <code>pSubpasses</code> identified by its <code>subpass</code> member",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, for any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> where the <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of the corresponding element of <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>::<code>pAspectReferences</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> at <code>attachment</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, for any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> where the <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of the corresponding element of <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>::<code>pAspectReferences</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> at <code>attachment</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01928",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and its <code>subpassCount</code> member is not zero, that member <strong class=\"purple\">must</strong> be equal to the value of <code>subpassCount</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and its <code>subpassCount</code> member is not zero, that member <strong class=\"purple\">must</strong> be equal to the value of <code>subpassCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01929",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, if its <code>dependencyCount</code> member is not zero, it <strong class=\"purple\">must</strong> be equal to <code>dependencyCount</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, if its <code>dependencyCount</code> member is not zero, it <strong class=\"purple\">must</strong> be equal to <code>dependencyCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-01930",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for each non-zero element of <code>pViewOffsets</code>, the <code>srcSubpass</code> and <code>dstSubpass</code> members of <code>pDependencies</code> at the same index <strong class=\"purple\">must</strong> not be equal"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for each non-zero element of <code>pViewOffsets</code>, the <code>srcSubpass</code> and <code>dstSubpass</code> members of <code>pDependencies</code> at the same index <strong class=\"purple\">must</strong> not be equal",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-02512",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for any element of <code>pDependencies</code> with a <code>dependencyFlags</code> member that does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, the corresponding element of the <code>pViewOffsets</code> member of that <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> instance <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for any element of <code>pDependencies</code> with a <code>dependencyFlags</code> member that does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, the corresponding element of the <code>pViewOffsets</code> member of that <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> instance <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-02513",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, elements of its <code>pViewMasks</code> member <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, elements of its <code>pViewMasks</code> member <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-02514",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and each element of its <code>pViewMasks</code> member is <code>0</code>, the <code>dependencyFlags</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and each element of its <code>pViewMasks</code> member is <code>0</code>, the <code>dependencyFlags</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo-pNext-02515",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and each element of its <code>pViewMasks</code> member is <code>0</code>, its <code>correlationMaskCount</code> member <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and each element of its <code>pViewMasks</code> member is <code>0</code>, its <code>correlationMaskCount</code> member <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837",
+          "text": "For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838",
+          "text": "For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06866",
+          "text": "For any element of <code>pDependencies</code>, if its <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, it <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-06867",
+          "text": "For any element of <code>pDependencies</code>, if its <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, it <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>, <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>, or <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter",
+          "text": "If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter",
+          "text": "<code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription\">VkSubpassDescription</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter",
+          "text": "If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength",
+          "text": "<code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassMultiviewCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841",
-          "text": " Each view index <strong class=\"purple\">must</strong> not be set in more than one element of <code>pCorrelationMasks</code>"
+          "text": "Each view index <strong class=\"purple\">must</strong> not be set in more than one element of <code>pCorrelationMasks</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-multiview-06555",
-          "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, each element of <code>pViewMasks</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, each element of <code>pViewMasks</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697",
-          "text": " The index of the most significant bit in each element of <code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
+          "text": "The index of the most significant bit in each element of <code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameter",
-          "text": " If <code>subpassCount</code> is not <code>0</code>, <code>pViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> <code>uint32_t</code> values"
+          "text": "If <code>subpassCount</code> is not <code>0</code>, <code>pViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameter",
-          "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pViewOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> <code>int32_t</code> values"
+          "text": "If <code>dependencyCount</code> is not <code>0</code>, <code>pViewOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> <code>int32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameter",
-          "text": " If <code>correlationMaskCount</code> is not <code>0</code>, <code>pCorrelationMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlationMaskCount</code> <code>uint32_t</code> values"
+          "text": "If <code>correlationMaskCount</code> is not <code>0</code>, <code>pCorrelationMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlationMaskCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkMultiviewPerViewAttributesInfoNVX": {
-      "(VK_NVX_multiview_per_view_attributes)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassFragmentDensityMapCreateInfoEXT": {
-      "(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548",
-          "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> not be an element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code>, <code>VkSubpassDescription</code>::<code>pColorAttachments</code>, <code>VkSubpassDescription</code>::<code>pResolveAttachments</code>, <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code>, or <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> for any subpass"
+          "text": "If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> not be an element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code>, <code>VkSubpassDescription</code>::<code>pColorAttachments</code>, <code>VkSubpassDescription</code>::<code>pResolveAttachments</code>, <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code>, or <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> for any subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549",
-          "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550",
-          "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_LOAD</code> or <code>VK_ATTACHMENT_LOAD_OP_DONT_CARE</code>"
+          "text": "If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_LOAD</code> or <code>VK_ATTACHMENT_LOAD_OP_DONT_CARE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551",
-          "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>storeOp</code> equal to <code>VK_ATTACHMENT_STORE_OP_DONT_CARE</code>"
+          "text": "If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>storeOp</code> equal to <code>VK_ATTACHMENT_STORE_OP_DONT_CARE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter",
-          "text": " <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure"
+          "text": "<code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentDescription": {
       "core": [
         {
-          "vuid": "VUID-VkAttachmentDescription-format-06698",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> not be VK_FORMAT_UNDEFINED"
-        },
-        {
           "vuid": "VUID-VkAttachmentDescription-format-06699",
-          "text": " If <code>format</code> includes a color or depth aspect and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+          "text": "If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-finalLayout-00843",
-          "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
+          "text": "<code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03280",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03281",
-          "text": " If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03282",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03283",
-          "text": " If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAttachmentDescription-format-06700",
-          "text": " If <code>format</code> includes a stencil aspect and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-format-03292",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-format-03293",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-format-06242",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-format-06243",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-loadOp-parameter",
-          "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-storeOp-parameter",
-          "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-stencilLoadOp-parameter",
-          "text": " <code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-stencilStoreOp-parameter",
-          "text": " <code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-initialLayout-parameter",
-          "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter",
-          "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkAttachmentDescription-format-06487",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-06488",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03286",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03287",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-06906",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-06907",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03290",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes only the depth component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-format-03291",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_KHR_synchronization2)": [
+          "text": "If <code>format</code> is a depth/stencil format which includes only the depth component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAttachmentDescription-synchronization2-06908",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-synchronization2-06909",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_EXT_attachment_feedback_loop_layout)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-samples-08745",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) for the given <code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-06698",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> not be VK_FORMAT_UNDEFINED",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-06700",
+          "text": "If <code>format</code> includes a stencil component and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-03292",
+          "text": "If <code>format</code> is a depth/stencil format which includes only the stencil component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-03293",
+          "text": "If <code>format</code> is a depth/stencil format which includes only the stencil component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-06242",
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-06243",
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-format-parameter",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-samples-parameter",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-loadOp-parameter",
+          "text": "<code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-storeOp-parameter",
+          "text": "<code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-stencilLoadOp-parameter",
+          "text": "<code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-stencilStoreOp-parameter",
+          "text": "<code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-initialLayout-parameter",
+          "text": "<code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter",
+          "text": "<code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassInputAttachmentAspectCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter",
-          "text": " <code>pAspectReferences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>aspectReferenceCount</code> valid <a href=\"#VkInputAttachmentAspectReference\">VkInputAttachmentAspectReference</a> structures"
+          "text": "<code>pAspectReferences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>aspectReferenceCount</code> valid <a href=\"#VkInputAttachmentAspectReference\">VkInputAttachmentAspectReference</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylength",
-          "text": " <code>aspectReferenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>aspectReferenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkInputAttachmentAspectReference": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+      "core": [
         {
           "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-01964",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-parameter",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -8060,203 +9770,223 @@
       "core": [
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06912",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06913",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06914",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06915",
-          "text": " If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, ts <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, ts <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescription-colorAttachmentCount-00845",
-          "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-loadOp-00846",
-          "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00847",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00848",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00849",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00850",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pColorAttachments-06868",
-          "text": " If neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647",
-          "text": " All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648",
-          "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649",
-          "text": " All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650",
-          "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418",
-          "text": " If neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and any attachments in <code>pColorAttachments</code> are not <code>VK_ATTACHMENT_UNUSED</code>, they <strong class=\"purple\">must</strong> have the same sample count"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-attachment-00853",
-          "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854",
-          "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-layout-02519",
-          "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-04438",
-          "text": " <code>pDepthStencilAttachment</code> and <code>pColorAttachments</code> must not contain references to the same attachment"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter",
-          "text": " If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter",
-          "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter",
-          "text": " If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkSubpassDescription-attachment-06916",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06917",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06918",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06919",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06920",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_KHR_synchronization2)": [
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06921",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06922",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-attachment-06923",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "!(VK_HUAWEI_subpass_shading)": [
-        {
-          "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-00844",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)": [
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-04952",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>"
-        }
-      ],
-      "(VK_NV_linear_color_attachment)": [
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-colorAttachmentCount-00845",
+          "text": "<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-loadOp-00846",
+          "text": "If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00847",
+          "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00848",
+          "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00849",
+          "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00850",
+          "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pColorAttachments-09430",
+          "text": "All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647",
+          "text": "All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648",
+          "text": "All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649",
+          "text": "All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650",
+          "text": "If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06496",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06497",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06498",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
-        }
-      ],
-      "(VK_AMD_mixed_attachment_samples)": [
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSubpassDescription-pColorAttachments-01506",
-          "text": " If the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or equal to the sample count of <code>pDepthStencilAttachment</code> if it is not <code>VK_ATTACHMENT_UNUSED</code>"
-        }
-      ],
-      "(VK_NVX_multiview_per_view_attributes)": [
+          "vuid": "VUID-VkSubpassDescription-None-09431",
+          "text": "If either of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>all attachments in <code>pColorAttachments</code> that are not\n<code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or\nequal to the sample count of <code>pDepthStencilAttachment</code> if it is not\n<code>VK_ATTACHMENT_UNUSED</code></p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418",
+          "text": "If <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and any attachments in <code>pColorAttachments</code> are not <code>VK_ATTACHMENT_UNUSED</code>, they <strong class=\"purple\">must</strong> have the same sample count , if none of the following are enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-attachment-00853",
+          "text": "Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854",
+          "text": "Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-layout-02519",
+          "text": "If any attachment is used by more than one <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-flags-00856",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>"
-        }
-      ],
-      "(VK_QCOM_render_pass_shader_resolve)": [
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-flags-03341",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription-flags-03343",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain"
-        }
-      ],
-      "(VK_QCOM_render_pass_transform)": [
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription-pInputAttachments-02868",
-          "text": " If the render pass is created with <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code> each of the elements of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
+          "text": "If the render pass is created with <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code> each of the elements of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-04438",
+          "text": "<code>pDepthStencilAttachment</code> and <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not contain references to the same attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-parameter",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter",
+          "text": "If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter",
+          "text": "If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter",
+          "text": "If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -8264,29 +9994,28 @@
       "core": [
         {
           "vuid": "VUID-VkAttachmentReference-layout-03077",
-          "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
+          "text": "If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference-separateDepthStencilLayouts-03313",
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, and <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference-synchronization2-06910",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReference-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkAttachmentReference-separateDepthStencilLayouts-03313",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, and <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
-        }
-      ],
-      "(VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkAttachmentReference-synchronization2-06910",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_EXT_attachment_feedback_loop_layout)": [
-        {
-          "vuid": "VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -8294,1199 +10023,1421 @@
       "core": [
         {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcSubpass-00864",
-          "text": " <code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcSubpass-00865",
-          "text": " <code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcSubpass-06809",
-          "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and <code>srcStageMask</code> includes a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> only contain <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcAccessMask-00868",
-          "text": " Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstAccessMask-00869",
-          "text": " Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcSubpass-02243",
-          "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dependencyFlags-parameter",
-          "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-srcStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcStageMask-07318",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcStageMask-03937",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-04090",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-04091",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-04092",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-04093",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-04094",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-dstStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-dstStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-dstStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-dstStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkSubpassDependency-srcStageMask-04996",
-          "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency-dstStageMask-04996",
-          "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcSubpass-00864",
+          "text": "<code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcSubpass-00865",
+          "text": "<code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcSubpass-06809",
+          "text": "If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and <code>srcStageMask</code> includes a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> only contain <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcAccessMask-00868",
+          "text": "Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstAccessMask-00869",
+          "text": "Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcSubpass-02243",
+          "text": "If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDependency-dependencyFlags-02520",
-          "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
+          "text": "If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-dependencyFlags-02521",
-          "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
+          "text": "If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency-srcSubpass-00872",
-          "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code> and that subpass has more than one bit set in the view mask, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
+          "text": "If <code>srcSubpass</code> equals <code>dstSubpass</code> and that subpass has more than one bit set in the view mask, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-srcAccessMask-parameter",
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dstAccessMask-parameter",
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency-dependencyFlags-parameter",
+          "text": "<code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdSetAttachmentFeedbackLoopEnableEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862",
+          "text": "The <a href=\"#features-attachmentFeedbackLoopDynamicState\"><code>attachmentFeedbackLoopDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> only include <code>VK_IMAGE_ASPECT_NONE</code>, <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_NONE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateRenderPass2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateRenderPass2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass2-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo2\">VkRenderPassCreateInfo2</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo2\">VkRenderPassCreateInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass2-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRenderPass2-pRenderPass-parameter",
-          "text": " <code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
+          "text": "<code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassCreateInfo2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-None-03049",
-          "text": " If any two subpasses operate on attachments with overlapping ranges of the same <code>VkDeviceMemory</code> object, and at least one subpass writes to that area of <code>VkDeviceMemory</code>, a subpass dependency <strong class=\"purple\">must</strong> be included (either directly or via some intermediate subpasses) between them"
+          "text": "If any two subpasses operate on attachments with overlapping ranges of the same <code>VkDeviceMemory</code> object, and at least one subpass writes to that area of <code>VkDeviceMemory</code>, a subpass dependency <strong class=\"purple\">must</strong> be included (either directly or via some intermediate subpasses) between them",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03050",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or the attachment indexed by any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is bound to a range of a <code>VkDeviceMemory</code> object that overlaps with any other attachment in any subpass (including the same subpass), the <code>VkAttachmentDescription2</code> structures describing them <strong class=\"purple\">must</strong> include <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> in <code>flags</code>"
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or the attachment indexed by any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is bound to a range of a <code>VkDeviceMemory</code> object that overlaps with any other attachment in any subpass (including the same subpass), the <code>VkAttachmentDescription2</code> structures describing them <strong class=\"purple\">must</strong> include <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472",
+          "text": "If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-06473",
+          "text": "If the <code>pSubpasses</code> pNext chain includes a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure and the <code>pDepthStencilResolveAttachment</code> member is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522",
-          "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02523",
-          "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03054",
-          "text": " For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass"
+          "text": "For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03055",
-          "text": " For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass"
+          "text": "For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056",
-          "text": " The set of bits included in any element of <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> not overlap with the set of bits included in any other element of <code>pCorrelatedViewMasks</code>"
+          "text": "The set of bits included in any element of <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> not overlap with the set of bits included in any other element of <code>pCorrelatedViewMasks</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03057",
-          "text": " If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, <code>correlatedViewMaskCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, <code>correlatedViewMaskCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03058",
-          "text": " The <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>"
+          "text": "The <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03059",
-          "text": " If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, the <code>dependencyFlags</code> member of any element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
+          "text": "If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, the <code>dependencyFlags</code> member of any element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03060",
-          "text": " For any element of <code>pDependencies</code> where its <code>srcSubpass</code> member equals its <code>dstSubpass</code> member, if the <code>viewMask</code> member of the corresponding element of <code>pSubpasses</code> includes more than one bit, its <code>dependencyFlags</code> member <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
+          "text": "For any element of <code>pDependencies</code> where its <code>srcSubpass</code> member equals its <code>dstSubpass</code> member, if the <code>viewMask</code> member of the corresponding element of <code>pSubpasses</code> includes more than one bit, its <code>dependencyFlags</code> member <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-02525",
-          "text": " If the <code>attachment</code> member of any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of that element of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> specified by <code>attachment</code>"
+          "text": "If the <code>attachment</code> member of any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of that element of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> specified by <code>attachment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-srcSubpass-02526",
-          "text": " The <code>srcSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
+          "text": "The <code>srcSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-dstSubpass-02527",
-          "text": " The <code>dstSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
+          "text": "The <code>dstSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2</code>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkRenderPassCreationControlEXT\">VkRenderPassCreationControlEXT</a>, <a href=\"#VkRenderPassCreationFeedbackCreateInfoEXT\">VkRenderPassCreationFeedbackCreateInfoEXT</a>, or <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter",
-          "text": " <code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter",
-          "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency2\">VkSubpassDependency2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter",
-          "text": " If <code>correlatedViewMaskCount</code> is not <code>0</code>, <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlatedViewMaskCount</code> <code>uint32_t</code> values"
-        },
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength",
-          "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472",
-          "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-06473",
-          "text": " If the <code>pSubpasses</code> pNext chain includes a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure and the <code>pDepthStencilResolveAttachment</code> member is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [
-        {
           "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04585",
-          "text": " If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> not be used as any other attachment in the render pass"
+          "text": "If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> not be used as any other attachment in the render pass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-09387",
+          "text": "If any element of <code>pAttachments</code> is used as a fragment shading rate attachment, the <code>loadOp</code> for that attachment <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-flags-04521",
+          "text": "If <code>flags</code> includes <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>, an element of <code>pSubpasses</code> includes an instance of <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> in its <code>pNext</code> chain, and the <code>pFragmentShadingRateAttachment</code> member of that structure is not equal to <code>NULL</code>, the <code>attachment</code> member of <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04586",
-          "text": " If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_QCOM_render_pass_transform)": [
-        {
-          "vuid": "VUID-VkRenderPassCreateInfo2-flags-04521",
-          "text": " If <code>flags</code> includes <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>, an element of <code>pSubpasses</code> includes an instance of <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> in its <code>pNext</code> chain, and the <code>pFragmentShadingRateAttachment</code> member of that structure is not equal to <code>NULL</code>, the <code>attachment</code> member of <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)": [
+          "text": "If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905",
-          "text": " If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension</code> is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
+          "text": "If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension</code> is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906",
-          "text": " If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false"
+          "text": "If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-flags-04907",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-flags-04908",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-flags-04909",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06244",
-          "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, and the <code>pNext</code> chain of that structure does not include a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes both depth and stencil aspects"
+          "text": "If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, and the <code>pNext</code> chain of that structure does not include a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes both depth and stencil components",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06245",
-          "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> have a <code>format</code> that includes only a stencil aspect"
+          "text": "If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> have a <code>format</code> that includes only a stencil component",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreateInfo2-attachment-06246",
-          "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes only a stencil aspect"
+          "text": "If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes only a stencil component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331",
+          "text": "If any element of <code>pResolveAttachments</code> of any element of <code>pSubpasses</code> references an attachment description with a format of <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment-&gt;attachment</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkRenderPassCreationControlEXT\">VkRenderPassCreationControlEXT</a>, <a href=\"#VkRenderPassCreationFeedbackCreateInfoEXT\">VkRenderPassCreationFeedbackCreateInfoEXT</a>, or <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter",
+          "text": "If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter",
+          "text": "<code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter",
+          "text": "If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency2\">VkSubpassDependency2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter",
+          "text": "If <code>correlatedViewMaskCount</code> is not <code>0</code>, <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlatedViewMaskCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength",
+          "text": "<code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentDescription2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-06698",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> not be VK_FORMAT_UNDEFINED"
-        },
+      "core": [
         {
           "vuid": "VUID-VkAttachmentDescription2-format-06699",
-          "text": " If <code>format</code> includes a color or depth aspect and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+          "text": "If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-finalLayout-00843",
-          "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
+          "text": "<code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03280",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03281",
-          "text": " If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03282",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03283",
-          "text": " If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAttachmentDescription2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter",
-          "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter",
-          "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter",
-          "text": " <code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter",
-          "text": " <code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter",
-          "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter",
-          "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkAttachmentDescription2-format-06487",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-06488",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03285",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03286",
-          "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03287",
-          "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-06906",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-06907",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03290",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes only the depth component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-format-03291",
-          "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If <code>format</code> is a depth/stencil format which includes only the depth component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAttachmentDescription2-pNext-06704",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil aspect, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-pNext-06705",
-          "text": " If the <code>pNext</code> chain does includes a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil aspect, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>::<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-06249",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>initialLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-06250",
-          "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>finalLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-06247",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        },
-        {
-          "vuid": "VUID-VkAttachmentDescription2-format-06248",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)": [
-        {
           "vuid": "VUID-VkAttachmentDescription2-synchronization2-06908",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-synchronization2-06909",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07309",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkAttachmentDescription2-format-06703",
-          "text": " If <code>format</code> includes a stencil aspect and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+          "vuid": "VUID-VkAttachmentDescription2-samples-08745",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) for the given <code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-pNext-06704",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil component, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-pNext-06705",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil component, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>::<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-06249",
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, and <code>initialLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-06250",
+          "text": "If <code>format</code> is a depth/stencil format which includes both depth and stencil components, and <code>finalLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-06247",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-06248",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-09332",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-09334",
+          "text": "If <code>format</code> is <code>VK_FORMAT_UNDEFINED</code>, there <strong class=\"purple\">must</strong> be a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure in the <code>pNext</code> chain with a <code>externalFormat</code> that is not equal to <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> or <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-format-parameter",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-samples-parameter",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter",
+          "text": "<code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter",
+          "text": "<code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter",
+          "text": "<code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter",
+          "text": "<code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter",
+          "text": "<code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter",
+          "text": "<code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentDescriptionStencilLayout": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+      "core": [
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308",
-          "text": " <code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309",
-          "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "<code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310",
-          "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
+          "text": "<code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter",
-          "text": " <code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter",
-          "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassDescription2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06912",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06913",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06914",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06915",
-          "text": " If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, ts <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, ts <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063",
-          "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-loadOp-03064",
-          "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067",
-          "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068",
-          "text": " Any given element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897",
-          "text": " All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898",
-          "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899",
-          "text": " All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900",
-          "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872",
-          "text": " If none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, all attachments in <code>pDepthStencilAttachment</code> or <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-attachment-03073",
-          "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074",
-          "text": " Any given element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-layout-02528",
-          "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-attachment-02799",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-attachment-02800",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-attachment-02801",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-04440",
-          "text": " An attachment <strong class=\"purple\">must</strong> not be used in both <code>pDepthStencilAttachment</code> and <code>pColorAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a>, <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>, <a href=\"#VkRenderPassCreationControlEXT\">VkRenderPassCreationControlEXT</a>, <a href=\"#VkRenderPassSubpassFeedbackCreateInfoEXT\">VkRenderPassSubpassFeedbackCreateInfoEXT</a>, or <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter",
-          "text": " If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter",
-          "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter",
-          "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter",
-          "text": " If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-VkSubpassDescription2-attachment-06916",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06917",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06918",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06919",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06920",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescription2-attachment-06251",
-          "text": " If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and its <code>pNext</code> chain includes a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, the <code>layout</code> member of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)": [
-        {
           "vuid": "VUID-VkSubpassDescription2-attachment-06921",
-          "text": " If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06922",
-          "text": " If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
+          "text": "If the <code>attachment</code> member of an element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-06923",
-          "text": " If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_HUAWEI_subpass_shading)": [
+          "text": "If the <code>attachment</code> member of an element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-03062",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_HUAWEI_subpass_shading)": [
+          "vuid": "VUID-VkSubpassDescription2-attachment-06251",
+          "text": "If the <code>attachment</code> member of <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and its <code>pNext</code> chain includes a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure, the <code>layout</code> member of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-04953",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063",
+          "text": "<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-loadOp-03064",
+          "text": "If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067",
+          "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09335",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336",
+          "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_FALSE</code> and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that has a format of <code>VK_FORMAT_UNDEFINED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337",
+          "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_TRUE</code> and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that has a format of <code>VK_FORMAT_UNDEFINED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> have the value <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09338",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09339",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, each element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869",
-          "text": " If none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count"
+          "text": "If the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescription2-pNext-06870",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then all attachments in <code>pColorAttachments</code> and <code>pDepthStencilAttachment</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is either <code>VK_SAMPLE_COUNT_1_BIT</code> or equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
+          "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897",
+          "text": "All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> and any of the following is true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a>\nfeature is not enabled</p>\n</li>\n<li>\n<p>the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is\n<code>VK_FALSE</code></p>\n</li>\n<li>\n<p>does not have a non-zero value of\n<a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code></p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p><strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format\n    features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>\n    or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code></p>\n</div>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescription2-pNext-06871",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> also include a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure with <code>pDepthStencilResolveAttachment</code> that is either <code>NULL</code> or has the value <code>VK_ATTACHMENT_UNUSED</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_linear_color_attachment)": [
+          "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898",
+          "text": "All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-09343",
+          "text": "All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> and do not have an image format of <code>VK_FORMAT_UNDEFINED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900",
+          "text": "If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06499",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06500",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06501",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03070",
-          "text": " If the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or equal to the sample count of <code>pDepthStencilAttachment</code> if it is not <code>VK_ATTACHMENT_UNUSED</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [
+          "vuid": "VUID-VkSubpassDescription2-None-09456",
+          "text": "If either of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>all attachments in <code>pColorAttachments</code> that are not\n<code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or\nequal to the sample count of <code>pDepthStencilAttachment</code> if it is not\n<code>VK_ATTACHMENT_UNUSED</code></p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pNext-06870",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then all attachments in <code>pColorAttachments</code> and <code>pDepthStencilAttachment</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is either <code>VK_SAMPLE_COUNT_1_BIT</code> or equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pNext-06871",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> also include a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure with <code>pDepthStencilResolveAttachment</code> that is either <code>NULL</code> or has the value <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872",
+          "text": "All attachments in <code>pDepthStencilAttachment</code> or <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count , if none of the following are enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>The <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature,</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-attachment-03073",
+          "text": "Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074",
+          "text": "Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-layout-02528",
+          "text": "If any attachment is used by more than one <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-flags-03076",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_image_drm_format_modifier)": [
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-attachment-02799",
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-attachment-02800",
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-attachment-02801",
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-attachment-04563",
-          "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-04440",
+          "text": "An attachment <strong class=\"purple\">must</strong> not be used in both <code>pDepthStencilAttachment</code> and <code>pColorAttachments</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassDescription2-multiview-06558",
-          "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescription2-viewMask-06706",
-          "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
+          "text": "The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09344",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and <code>colorAttachmentCount</code> is not <code>1</code>, any element of <code>pResolveAttachments</code> that is not <code>VK_ATTACHMENT_UNUSED</code>, <strong class=\"purple\">must</strong> not have a format of <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09345",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, and the corresponding element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the color attachment <strong class=\"purple\">must</strong> have a <code>samples</code> value of <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09346",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09347",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a>::<code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> either be <code>NULL</code> or a <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure with a <code>attachment</code> value of <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09348",
+          "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, elements of <code>pInputAttachments</code> referencing either a color attachment or resolve attachment used in this subpass <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE<em>_i_</em>BIT</code> for any index <em>i</em> in its <code>aspectMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a>, <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>, <a href=\"#VkRenderPassCreationControlEXT\">VkRenderPassCreationControlEXT</a>, <a href=\"#VkRenderPassSubpassFeedbackCreateInfoEXT\">VkRenderPassSubpassFeedbackCreateInfoEXT</a>, or <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter",
+          "text": "If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter",
+          "text": "If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter",
+          "text": "If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter",
+          "text": "If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassDescriptionDepthStencilResolve": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> or have the value <code>VK_ATTACHMENT_UNUSED</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> or have the value <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a depth component with the same number of bits and numerical type"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a depth component with the same number of bits and <a href=\"#formats-numericformat\">numeric format</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a stencil component with the same number of bits and numerical type"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a stencil component with the same number of bits and <a href=\"#formats-numericformat\">numeric format</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> not both be <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> not both be <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter",
-          "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873",
-          "text": " If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure, the <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> not both be <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure, the <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> not both be <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06874",
-          "text": " If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> that has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> that has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875",
-          "text": " If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, and <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876",
-          "text": " If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with both depth and stencil components, and both <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> are <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical"
+          "text": "If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with both depth and stencil components, and both <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> are <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877",
-          "text": " If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
+          "text": "If the <code>pNext</code> chain of <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> includes a <code>VkMultisampledRenderToSingleSampledInfoEXT</code> structure whose <code>multisampledRenderToSingleSampledEnable</code> field is <code>VK_TRUE</code>, <code>pDepthStencilAttachment</code> is not <code>NULL</code>, does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and has a <a href=\"#VkFormat\">VkFormat</a> with both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter",
+          "text": "If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkFragmentShadingRateAttachmentInfoKHR": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter",
-          "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code>, <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
+          "text": "If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code>, <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMultisampledRenderToSingleSampledInfoEXT": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)": [
+      "core": [
         {
           "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878",
-          "text": " The value of <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> not be <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "The value of <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> not be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880",
+          "text": "If added to the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>, each <code>imageView</code> member of any element of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code>, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment</code>, or <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameter",
-          "text": " <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880",
-          "text": " If added to the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>, each <code>imageView</code> member of any element of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code>, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment</code>, or <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <code>rasterizationSamples</code>"
+          "text": "<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentReference2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-VkAttachmentReference2-layout-03077",
-          "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
+          "text": "If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313",
+          "text": "If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, and <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference2-synchronization2-06910",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAttachmentReference2-attachmentFeedbackLoopLayout-07311",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReference2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReference2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReference2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReference2-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
-          "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313",
-          "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, and <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkAttachmentReference2-synchronization2-06910",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR</code> or <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)": [
-        {
-          "vuid": "VUID-VkAttachmentReference2-attachmentFeedbackLoopLayout-07311",
-          "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code>"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentReferenceStencilLayout": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+      "core": [
         {
           "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318",
-          "text": " <code>stencilLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
+          "text": "<code>stencilLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReferenceStencilLayout-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter",
-          "text": " <code>stencilLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>stencilLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassDependency2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04090",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04091",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084",
-          "text": " <code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085",
-          "text": " <code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcSubpass-06810",
-          "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and <code>srcStageMask</code> includes a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> only contain <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088",
-          "text": " Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089",
-          "text": " Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090",
-          "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091",
-          "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245",
-          "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-viewOffset-02530",
-          "text": " If <code>viewOffset</code> is not equal to <code>0</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>dstSubpass</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092",
-          "text": " If <code>dependencyFlags</code> does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>viewOffset</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-parameter",
-          "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter",
-          "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter",
-          "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter",
-          "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter",
-          "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04092",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04093",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04094",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-srcStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcStageMask-07318",
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcStageMask-03937",
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04090",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04091",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04092",
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04093",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04094",
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-dstStageMask-04095",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-dstStageMask-04096",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04097",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-dstStageMask-07318",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-07319",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassDependency2-dstStageMask-03937",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
-        {
-          "vuid": "VUID-VkSubpassDependency2-srcStageMask-04996",
-          "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubpassDependency2-dstStageMask-04996",
-          "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-07949",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084",
+          "text": "<code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085",
+          "text": "<code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcSubpass-06810",
+          "text": "If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and <code>srcStageMask</code> includes a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> only contain <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088",
+          "text": "Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089",
+          "text": "Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090",
+          "text": "If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091",
+          "text": "If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245",
+          "text": "If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-viewOffset-02530",
+          "text": "If <code>viewOffset</code> is not equal to <code>0</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>dstSubpass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092",
+          "text": "If <code>dependencyFlags</code> does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>viewOffset</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcStageMask-parameter",
+          "text": "<code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter",
+          "text": "<code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter",
+          "text": "<code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter",
+          "text": "<code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter",
+          "text": "<code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -9494,31 +11445,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyRenderPass-renderPass-00873",
-          "text": " All submitted commands that refer to <code>renderPass</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>renderPass</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-renderPass-00874",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-renderPass-00875",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-renderPass-parameter",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyRenderPass-renderPass-parent",
-          "text": " If <code>renderPass</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>renderPass</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -9526,23 +11484,28 @@
       "core": [
         {
           "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-02777",
-          "text": " If <code>pCreateInfo-&gt;flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>attachmentCount</code> is not <code>0</code>, each element of <code>pCreateInfo-&gt;pAttachments</code> <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "If <code>pCreateInfo-&gt;flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>attachmentCount</code> is not <code>0</code>, each element of <code>pCreateInfo-&gt;pAttachments</code> <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFramebuffer-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFramebuffer-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter",
-          "text": " <code>pFramebuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
+          "text": "<code>pFramebuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -9550,339 +11513,371 @@
       "core": [
         {
           "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-00876",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the attachment count specified in <code>renderPass</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the attachment count specified in <code>renderPass</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-02778",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code> and <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code> and <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00877",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> value that matches the <a href=\"#VkFormat\">VkFormat</a> specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value that matches the <code>samples</code> value specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04533",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.width</code> greater than or equal to <code>width</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04534",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.height</code> greater than or equal to <code>height</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04535",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> greater than or equal to <code>layers</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-width-00885",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-width-00886",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-height-00887",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-height-00888",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-layers-00889",
-          "text": " <code>layers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-layers-00890",
-          "text": " <code>layers</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferLayers\"><code>maxFramebufferLayers</code></a>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04113",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFramebufferCreateFlagBits\">VkFramebufferCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter",
-          "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-commonparent",
-          "text": " Both of <code>renderPass</code>, and the elements of <code>pAttachments</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each element of <code>pAttachments</code> that is used as a fragment density map attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> not have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "Each element of <code>pAttachments</code> that is used as a fragment density map attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> not have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02553",
-          "text": " If <code>renderPass</code> has a fragment density map attachment and the <a href=\"#features-fragmentDensityMapNonSubsampledImages\"><code>fragmentDensityMapNonSubsampledImages</code></a> feature is not enabled, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> unless that element is the fragment density map attachment"
+          "text": "If <code>renderPass</code> has a fragment density map attachment and the <a href=\"#features-fragmentDensityMapNonSubsampledImages\"><code>fragmentDensityMapNonSubsampledImages</code></a> feature is not enabled, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> unless that element is the fragment density map attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-06502",
+          "text": "If <code>renderPass</code> was created with <a href=\"#renderpass-fragmentdensitymapoffsets\">fragment density map offsets</a> other than <span class=\"eq\">(0,0)</span>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> value that matches the <a href=\"#VkFormat\">VkFormat</a> specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value that matches the <code>samples</code> value specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-04533",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.width</code> greater than or equal to <code>width</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-04534",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.height</code> greater than or equal to <code>height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-04535",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> greater than or equal to <code>layers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04536",
+          "text": "If <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than the index of the most significant bit set in any of those view masks",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746",
+          "text": "Each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code> or if <code>renderPass</code> was specified with non-zero view masks, greater than the index of the most significant bit set in any of those view masks",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02555",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02556",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-06502",
-          "text": " If <code>renderPass</code> was created with <a href=\"#renderpass-fragmentdensitymapoffsets\">fragment density map offsets</a> other than <span class=\"eq\">(0,0)</span>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>."
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-06502",
-          "text": " If <code>renderPass</code> was created with <a href=\"#renderpass-fragmentdensitymapoffsets\">fragment density map offsets</a> other than <span class=\"eq\">(0,0)</span>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04536",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than the index of the most significant bit set in any of those view masks"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, <code>layers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02744",
-          "text": " Each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code> or greater than the index of the most significant bit set in any of those view masks"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04537",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04538",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than <code>layers</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)": [
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than <code>layers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-08921",
+          "text": "If <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code> or greater than the index of the most significant bit set in any of those view masks",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04539",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a width at least as large as <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a width at least as large as <span class=\"eq\">⌈<code>width</code> / <code>texelWidth</code>⌉</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04540",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a height at least as large as <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a height at least as large as <span class=\"eq\">⌈<code>height</code> / <code>texelHeight</code>⌉</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04548",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-width-00885",
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-width-00886",
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-height-00887",
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-height-00888",
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-layers-00889",
+          "text": "<code>layers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-layers-00890",
+          "text": "<code>layers</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferLayers\"><code>maxFramebufferLayers</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531",
+          "text": "If <code>renderPass</code> was specified with non-zero view masks, <code>layers</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891",
-          "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is a 2D or 2D array image view taken from a 3D image <strong class=\"purple\">must</strong> not be a depth/stencil format"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is a 2D or 2D array image view taken from a 3D image <strong class=\"purple\">must</strong> not be a depth/stencil format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03189",
-          "text": " If the <a href=\"#features-imagelessFramebuffer\"><code>imagelessFramebuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>"
+          "text": "If the <a href=\"#features-imagelessFramebuffer\"><code>imagelessFramebuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03190",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03191",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentImageInfoCount</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to either zero or <code>attachmentCount</code>"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentImageInfoCount</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to either zero or <code>attachmentCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04541",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>width</code>"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>width</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04542",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>height</code>"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>height</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-03201",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-03202",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-03204",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-03205",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, at least one element of the <code>pViewFormats</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> used to create <code>renderPass</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)": [
-        {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03196",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03197",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04543",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">⌈<code>width</code> / <code>texelWidth</code>⌉</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04544",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">⌈<code>height</code> / <code>texelHeight</code>⌉</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04545",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be either <code>1</code>, or greater than or equal to <code>layers</code>"
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be either <code>1</code>, or greater than or equal to <code>layers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04587",
-          "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198",
-          "text": " If multiview is enabled for <code>renderPass</code> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than the maximum bit index set in the view mask in the subpasses in which it is used in <code>renderPass</code>"
+          "text": "If multiview is enabled for <code>renderPass</code> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than the maximum bit index set in the view mask in the subpasses in which it is used in <code>renderPass</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04546",
-          "text": " If multiview is not enabled for <code>renderPass</code> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If multiview is not enabled for <code>renderPass</code> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-flags-04547",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)": [
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-03201",
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-03202",
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-03203",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-03204",
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-03205",
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, at least one element of the <code>pViewFormats</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> used to create <code>renderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-04113",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-04548",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-flags-04549",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-samples-06881",
-          "text": " If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <code>VkAttachmentDescription</code>::<code>samples</code> or <code>VkAttachmentDescription2</code>::<code>samples</code> equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code> in their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
+          "text": "If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <code>VkAttachmentDescription</code>::<code>samples</code> or <code>VkAttachmentDescription2</code>::<code>samples</code> equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code> in their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-samples-07009",
-          "text": " If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <code>VkAttachmentDescription</code>::<code>samples</code> or <code>VkAttachmentDescription2</code>::<code>samples</code> equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
+          "text": "If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <code>VkAttachmentDescription</code>::<code>samples</code> or <code>VkAttachmentDescription2</code>::<code>samples</code> equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349",
+          "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the format of the color attachment for each subpass in <code>renderPass</code> that includes an external format image as a resolve attachment <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create the image view use as its resolve attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-09350",
+          "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, then if an element of <code>pAttachments</code> has a format of <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value identical to that provided in the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> specified by the corresponding <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> in <code>renderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFramebufferCreateFlagBits\">VkFramebufferCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter",
+          "text": "<code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-commonparent",
+          "text": "Both of <code>renderPass</code>, and the elements of <code>pAttachments</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkFramebufferAttachmentsCreateInfo": {
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+      "core": [
         {
           "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter",
-          "text": " If <code>attachmentImageInfoCount</code> is not <code>0</code>, <code>pAttachmentImageInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentImageInfoCount</code> valid <a href=\"#VkFramebufferAttachmentImageInfo\">VkFramebufferAttachmentImageInfo</a> structures"
+          "text": "If <code>attachmentImageInfoCount</code> is not <code>0</code>, <code>pAttachmentImageInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentImageInfoCount</code> valid <a href=\"#VkFramebufferAttachmentImageInfo\">VkFramebufferAttachmentImageInfo</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkFramebufferAttachmentImageInfo": {
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+      "core": [
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter",
-          "text": " If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
+          "text": "If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -9890,31 +11885,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892",
-          "text": " All submitted commands that refer to <code>framebuffer</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>framebuffer</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter",
-          "text": " If <code>framebuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
+          "text": "If <code>framebuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent",
-          "text": " If <code>framebuffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>framebuffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -9922,195 +11924,232 @@
       "core": [
         {
           "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00898",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00899",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900",
-          "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-06451",
-          "text": " The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-dstStageMask-06452",
-          "text": " The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532",
-          "text": " For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter",
-          "text": " <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter",
-          "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00896",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-01758",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-02842",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843",
-          "text": " If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_attachment_feedback_loop_layout)": [
+          "text": "If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00898",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00899",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900",
+          "text": "If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-06451",
+          "text": "The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-dstStageMask-06452",
+          "text": "The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532",
+          "text": "For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-09045",
+          "text": "If any attachments specified in <code>framebuffer</code> are used by <code>renderPass</code> and are bound to overlapping memory locations, there <strong class=\"purple\">must</strong> be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-07000",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> and either the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> and either the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-07001",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter",
+          "text": "<code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter",
+          "text": "<code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginRenderPass2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02779",
-          "text": " Both the <code>framebuffer</code> and <code>renderPass</code> members of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> that <code>commandBuffer</code> was allocated on"
+          "text": "Both the <code>framebuffer</code> and <code>renderPass</code> members of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> that <code>commandBuffer</code> was allocated on",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03094",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03096",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100",
-          "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-06453",
-          "text": " The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-dstStageMask-06454",
-          "text": " The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533",
-          "text": " For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter",
-          "text": " <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter",
-          "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
-        {
           "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-02844",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845",
-          "text": " If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)": [
+          "text": "If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099",
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100",
+          "text": "If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-06453",
+          "text": "The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-dstStageMask-06454",
+          "text": "The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533",
+          "text": "For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-09046",
+          "text": "If any attachments specified in <code>framebuffer</code> are used by <code>renderPass</code> and are bound to overlapping memory locations, there <strong class=\"purple\">must</strong> be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-07002",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> and either the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including either the <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> and either the <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bits",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-07003",
-          "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit"
+          "text": "If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value the <code>VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> usage bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter",
+          "text": "<code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter",
+          "text": "<code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -10118,289 +12157,410 @@
       "core": [
         {
           "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-00902",
-          "text": " <code>clearValueCount</code> <strong class=\"purple\">must</strong> be greater than the largest attachment index in <code>renderPass</code> specifying a <code>loadOp</code> (or <code>stencilLoadOp</code>, if the attachment has a depth/stencil format) of <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
+          "text": "<code>clearValueCount</code> <strong class=\"purple\">must</strong> be greater than the largest attachment index in <code>renderPass</code> specifying a <code>loadOp</code> (or <code>stencilLoadOp</code>, if the attachment has a depth/stencil format) of <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-04962",
-          "text": " If <code>clearValueCount</code> is not <code>0</code>, <code>pClearValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>clearValueCount</code> <a href=\"#VkClearValue\">VkClearValue</a> unions"
+          "text": "If <code>clearValueCount</code> is not <code>0</code>, <code>pClearValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>clearValueCount</code> <a href=\"#VkClearValue\">VkClearValue</a> unions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904",
-          "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure specified when creating <code>framebuffer</code>"
+          "text": "<code>renderPass</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure specified when creating <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO</code>"
+          "vuid": "VUID-VkRenderPassBeginInfo-None-08996",
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassBeginInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a>, <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a>, or <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>"
+          "vuid": "VUID-VkRenderPassBeginInfo-None-08997",
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassBeginInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-renderPass-parameter",
-          "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter",
-          "text": " <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-commonparent",
-          "text": " Both of <code>framebuffer</code>, and <code>renderPass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02846",
-          "text": " <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02847",
-          "text": " <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02848",
-          "text": " <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
-        },
-        {
-          "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02849",
-          "text": " <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02850",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02851",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02852",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <span class=\"eq\"><code>renderArea.offset.x</code> +  <code>renderArea.extent.width</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02853",
-          "text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
+          "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <span class=\"eq\"><code>renderArea.offset.y</code> +  <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02856",
-          "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.x</code> &#43; <code>extent.width</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
+          "text": "If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.x</code> +  <code>extent.width</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02857",
-          "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.y</code> &#43; <code>extent.height</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+          "text": "If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.y</code> +  <code>extent.height</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03207",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that did not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure, its <code>attachmentCount</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that did not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure, its <code>attachmentCount</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03208",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentCount</code> of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>attachmentImageInfoCount</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentCount</code> of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>attachmentImageInfoCount</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-02780",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> as <code>framebuffer</code> and <code>renderPass</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> as <code>framebuffer</code> and <code>renderPass</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> equal to the <code>flags</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> equal to the <code>flags</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-04627",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with <a href=\"#resources-image-inherited-usage\">an inherited usage</a> equal to the <code>usage</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with <a href=\"#resources-image-inherited-usage\">an inherited usage</a> equal to the <code>usage</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a width equal to the <code>width</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a width equal to the <code>width</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a height equal to the <code>height</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a height equal to the <code>height</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> equal to the <code>layerCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> equal to the <code>layerCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> equal to the <code>viewFormatCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> equal to the <code>viewFormatCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a set of elements in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> equal to the set of elements in the <code>pViewFormats</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a set of elements in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> equal to the set of elements in the <code>pViewFormats</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>format</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> in <code>renderPass</code>"
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>format</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> in <code>renderPass</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03217",
-          "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>samples</code> in <code>renderPass</code>"
-        }
-      ],
-      "(VK_QCOM_render_pass_transform)": [
+          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09353",
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, the format of the color attachment for each subpass that includes an external format image as a resolve attachment <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create the image view use as its resolve attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09354",
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> equal to <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> in the <code>pNext</code> chain of the corresponding <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> structure used to create <code>renderPass</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09047",
+          "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>samples</code> in <code>renderPass</code> , or <code>VK_SAMPLE_COUNT_1_BIT</code> if <code>renderPass</code> was created with <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure in the <code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02869",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.offset</code> <strong class=\"purple\">must</strong> equal <span class=\"eq\">(0,0)</span>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.offset</code> <strong class=\"purple\">must</strong> equal <span class=\"eq\">(0,0)</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassBeginInfo-pNext-02870",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.extent</code> transformed by <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code> <strong class=\"purple\">must</strong> equal the <code>framebuffer</code> dimensions"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.extent</code> transformed by <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code> <strong class=\"purple\">must</strong> equal the <code>framebuffer</code> dimensions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859",
+          "text": "If the <code>perViewRenderAreaCount</code> member of a <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a> structure included in the <code>pNext</code> chain is not <code>0</code>, then the <a href=\"#features-multiview-per-view-render-areas\"><code>multiviewPerViewRenderAreas</code></a> feature <strong class=\"purple\">must</strong> be enabled.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860",
+          "text": "If the <code>perViewRenderAreaCount</code> member of a <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a> structure included in the <code>pNext</code> chain is not <code>0</code>, then <code>renderArea</code> <strong class=\"purple\">must</strong> specify a render area that includes the union of all per view render areas. If the <code>pNext</code> chain contains a <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a> structure, the union of stripe areas defined by the elements of <a href=\"#VkRenderPassStripeInfoARM\">VkRenderPassStripeInfoARM</a>::<code>pStripeInfos</code> <strong class=\"purple\">must</strong> cover the <code>renderArea</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM\">VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM</a>, <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a>, <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a>, <a href=\"#VkRenderPassStripeBeginInfoARM\">VkRenderPassStripeBeginInfoARM</a>, or <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-renderPass-parameter",
+          "text": "<code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter",
+          "text": "<code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassBeginInfo-commonparent",
+          "text": "Both of <code>framebuffer</code>, and <code>renderPass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassSampleLocationsBeginInfoEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter",
-          "text": " If <code>attachmentInitialSampleLocationsCount</code> is not <code>0</code>, <code>pAttachmentInitialSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentInitialSampleLocationsCount</code> valid <a href=\"#VkAttachmentSampleLocationsEXT\">VkAttachmentSampleLocationsEXT</a> structures"
+          "text": "If <code>attachmentInitialSampleLocationsCount</code> is not <code>0</code>, <code>pAttachmentInitialSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentInitialSampleLocationsCount</code> valid <a href=\"#VkAttachmentSampleLocationsEXT\">VkAttachmentSampleLocationsEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter",
-          "text": " If <code>postSubpassSampleLocationsCount</code> is not <code>0</code>, <code>pPostSubpassSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>postSubpassSampleLocationsCount</code> valid <a href=\"#VkSubpassSampleLocationsEXT\">VkSubpassSampleLocationsEXT</a> structures"
+          "text": "If <code>postSubpassSampleLocationsCount</code> is not <code>0</code>, <code>pPostSubpassSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>postSubpassSampleLocationsCount</code> valid <a href=\"#VkSubpassSampleLocationsEXT\">VkSubpassSampleLocationsEXT</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkAttachmentSampleLocationsEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531",
-          "text": " <code>attachmentIndex</code> <strong class=\"purple\">must</strong> be less than the <code>attachmentCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with"
+          "text": "<code>attachmentIndex</code> <strong class=\"purple\">must</strong> be less than the <code>attachmentCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter",
-          "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
+          "text": "<code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassSampleLocationsEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532",
-          "text": " <code>subpassIndex</code> <strong class=\"purple\">must</strong> be less than the <code>subpassCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with"
+          "text": "<code>subpassIndex</code> <strong class=\"purple\">must</strong> be less than the <code>subpassCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter",
-          "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
+          "text": "<code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassTransformBeginInfoQCOM": {
-      "(VK_QCOM_render_pass_transform)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871",
-          "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
+          "text": "<code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872",
-          "text": " The <code>renderpass</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a>::<code>flags</code> containing <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>"
+          "text": "The <code>renderpass</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a>::<code>flags</code> containing <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassBeginInfo": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
+        {
+          "vuid": "VUID-VkSubpassBeginInfo-contents-09382",
+          "text": "If <code>contents</code> is <code>VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT</code>, then <a href=\"#features-nestedCommandBuffer\"><code>nestedCommandBuffer</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSubpassBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassBeginInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassBeginInfo-contents-parameter",
-          "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
+          "text": "<code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupRenderPassBeginInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a subset of the command buffer&#8217;s initial device mask"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> be a subset of the command buffer&#8217;s initial device mask",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908",
-          "text": " <code>deviceRenderAreaCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
+          "text": "<code>deviceRenderAreaCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166",
-          "text": " The <code>offset.x</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "The <code>offset.x</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167",
-          "text": " The <code>offset.y</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
+          "text": "The <code>offset.y</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168",
-          "text": " The sum of the <code>offset.x</code> and <code>extent.width</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
+          "text": "The sum of the <code>offset.x</code> and <code>extent.width</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169",
-          "text": " The sum of the <code>offset.y</code> and <code>extent.height</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
+          "text": "The sum of the <code>offset.y</code> and <code>extent.height</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998",
+          "text": "The <code>extent.width</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999",
+          "text": "The <code>extent.height</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter",
-          "text": " If <code>deviceRenderAreaCount</code> is not <code>0</code>, <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceRenderAreaCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "If <code>deviceRenderAreaCount</code> is not <code>0</code>, <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceRenderAreaCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassAttachmentBeginInfo": {
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218",
-          "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level"
+          "text": "Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219",
-          "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
+          "text": "Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114",
-          "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>"
+          "text": "Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010",
+          "text": "If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all element of <code>pAttachments</code> which have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassAttachmentBeginInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles"
+          "text": "If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles",
+          "page": "vkspec"
         }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_multisampled_render_to_single_sampled)": [
+      ]
+    },
+    "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM": {
+      "core": [
         {
-          "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010",
-          "text": " If <a href=\"#subpass-multisampledrendertosinglesampled\">multisampled-render-to-single-sampled</a> is enabled for any subpass, all element of <code>pAttachments</code> which have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code> <strong class=\"purple\">must</strong> have a format that supports the sample count specified in <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07861",
+          "text": "The <code>offset.x</code> member of any element of <code>pPerViewRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07862",
+          "text": "The <code>offset.y</code> member of any element of <code>pPerViewRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07863",
+          "text": "The sum of the <code>offset.x</code> and <code>extent.width</code> members of any element of <code>pPerViewRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07864",
+          "text": "The sum of the <code>offset.y</code> and <code>extent.height</code> members of any element of <code>pPerViewRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07865",
+          "text": "If this structure is in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> and if the render pass object included an element in <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> that set bit <code>n</code>, then <code>perViewRenderAreaCount</code> <strong class=\"purple\">must</strong> be at least equal to <code>n+1</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07866",
+          "text": "If this structure is in the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> and if <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code> set bit <code>n</code>, then <code>perViewRenderAreaCount</code> <strong class=\"purple\">must</strong> be at least equal to <code>n+1</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pPerViewRenderAreas-parameter",
+          "text": "If <code>perViewRenderAreaCount</code> is not <code>0</code>, <code>pPerViewRenderAreas</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>perViewRenderAreaCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -10408,19 +12568,23 @@
       "core": [
         {
           "vuid": "VUID-vkGetRenderAreaGranularity-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parameter",
-          "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
+          "text": "<code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRenderAreaGranularity-pGranularity-parameter",
-          "text": " <code>pGranularity</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
+          "text": "<code>pGranularity</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parent",
-          "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>renderPass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -10428,87 +12592,102 @@
       "core": [
         {
           "vuid": "VUID-vkCmdNextSubpass-None-00909",
-          "text": " The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one"
+          "text": "The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdNextSubpass-None-02349",
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-contents-parameter",
-          "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
+          "text": "<code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
-        {
-          "vuid": "VUID-vkCmdNextSubpass-None-02349",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdNextSubpass2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdNextSubpass2-None-03102",
-          "text": " The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one"
+          "text": "The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdNextSubpass2-None-02350",
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter",
-          "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure"
+          "text": "<code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter",
-          "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure"
+          "text": "<code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdNextSubpass2-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
-        {
-          "vuid": "VUID-vkCmdNextSubpass2-None-02350",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -10516,319 +12695,1004 @@
       "core": [
         {
           "vuid": "VUID-vkCmdEndRenderPass-None-00910",
-          "text": " The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one"
+          "text": "The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndRenderPass-None-02351",
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndRenderPass-None-06170",
+          "text": "The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-None-07004",
-          "text": " If <code>vkCmdBeginQuery</code>* was called within a subpass of the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass"
+          "text": "If <code>vkCmdBeginQuery</code>* was called within a subpass of the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
-        {
-          "vuid": "VUID-vkCmdEndRenderPass-None-02351",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-vkCmdEndRenderPass-None-06170",
-          "text": " The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndRenderPass2": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndRenderPass2-None-03103",
-          "text": " The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one"
+          "text": "The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndRenderPass2-None-02352",
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndRenderPass2-None-06171",
+          "text": "The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-None-07005",
-          "text": " If <code>vkCmdBeginQuery</code>* was called within a subpass of the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass"
+          "text": "If <code>vkCmdBeginQuery</code>* was called within a subpass of the render pass, the corresponding <code>vkCmdEndQuery</code>* <strong class=\"purple\">must</strong> have been called subsequently within the same subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter",
-          "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure"
+          "text": "<code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndRenderPass2-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
-        {
-          "vuid": "VUID-vkCmdEndRenderPass2-None-02352",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-vkCmdEndRenderPass2-None-06171",
-          "text": " The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassEndInfo": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassEndInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_END_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_END_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassEndInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSubpassFragmentDensityMapOffsetEndInfoQCOM\">VkSubpassFragmentDensityMapOffsetEndInfoQCOM</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSubpassFragmentDensityMapOffsetEndInfoQCOM\">VkSubpassFragmentDensityMapOffsetEndInfoQCOM</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassEndInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassFragmentDensityMapOffsetEndInfoQCOM": {
-      "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503",
-          "text": " If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffsets</code></a> feature is not enabled or fragment density map is not enabled in the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffsets</code></a> feature is not enabled or fragment density map is not enabled in the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504",
-          "text": " If <code>VkSubpassDescription</code>::<code>fragmentDensityMapAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If <code>VkSubpassDescription</code>::<code>fragmentDensityMapAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505",
-          "text": " If <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506",
-          "text": " If any element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If any element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507",
-          "text": " If any element of <code>VkSubpassDescription</code>::<code>pColorAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If any element of <code>VkSubpassDescription</code>::<code>pColorAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508",
-          "text": " If any element of <code>VkSubpassDescription</code>::<code>pResolveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If any element of <code>VkSubpassDescription</code>::<code>pResolveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509",
-          "text": " If any element of <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>"
+          "text": "If any element of <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510",
-          "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal the <code>layerCount</code> that was specified in creating the fragment density map attachment view"
+          "text": "If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal the <code>layerCount</code> that was specified in creating the fragment density map attachment view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511",
-          "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is not enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>1</code>"
+          "text": "If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is not enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512",
-          "text": " The <code>x</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.width</code>"
+          "text": "The <code>x</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.width</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513",
-          "text": " The <code>y</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.height</code>"
+          "text": "The <code>y</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.height</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter",
-          "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code>, <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fragmentDensityOffsetCount</code> <a href=\"#VkOffset2D\">VkOffset2D</a> structures"
+          "text": "If <code>fragmentDensityOffsetCount</code> is not <code>0</code>, <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fragmentDensityOffsetCount</code> <a href=\"#VkOffset2D\">VkOffset2D</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassCreationControlEXT": {
-      "(VK_EXT_subpass_merge_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassCreationControlEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassCreationFeedbackCreateInfoEXT": {
-      "(VK_EXT_subpass_merge_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassCreationFeedbackCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameter",
-          "text": " <code>pRenderPassFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPassCreationFeedbackInfoEXT\">VkRenderPassCreationFeedbackInfoEXT</a> structure"
+          "text": "<code>pRenderPassFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPassCreationFeedbackInfoEXT\">VkRenderPassCreationFeedbackInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkRenderPassSubpassFeedbackCreateInfoEXT": {
-      "(VK_EXT_subpass_merge_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameter",
-          "text": " <code>pSubpassFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPassSubpassFeedbackInfoEXT\">VkRenderPassSubpassFeedbackInfoEXT</a> structure"
+          "text": "<code>pSubpassFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPassSubpassFeedbackInfoEXT\">VkRenderPassSubpassFeedbackInfoEXT</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateShadersEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateShadersEXT-None-08400",
+          "text": "The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08402",
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, the <code>flags</code> member of all other elements of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> <strong class=\"purple\">must</strong> also include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08403",
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, the <code>flags</code> member of all other elements of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> <strong class=\"purple\">must</strong> also include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08404",
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, there <strong class=\"purple\">must</strong> be no member of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code> and whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08405",
+          "text": "If there is any element of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> and whose <code>flags</code> member includes both <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> and <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code>, there <strong class=\"purple\">must</strong> be no element of <code>pCreateInfos</code> whose <code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> and whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08409",
+          "text": "For each element of <code>pCreateInfos</code> whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, if there is any other element of <code>pCreateInfos</code> whose <code>stage</code> is logically later than the <code>stage</code> of the former and whose <code>flags</code> member also includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, the <code>nextStage</code> of the former <strong class=\"purple\">must</strong> be equal to the <code>stage</code> of the element with the logically earliest <code>stage</code> following the <code>stage</code> of the former whose <code>flags</code> member also includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08410",
+          "text": "The <code>stage</code> member of each element of <code>pCreateInfos</code> whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08411",
+          "text": "The <code>codeType</code> member of all elements of <code>pCreateInfos</code> whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08867",
+          "text": "If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the type of subdivision, it <strong class=\"purple\">must</strong> match the subdivision type specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08868",
+          "text": "If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the orientation of triangles, it <strong class=\"purple\">must</strong> match the triangle orientation specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08869",
+          "text": "If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying <code>PointMode</code>, the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage <strong class=\"purple\">must</strong> also contain an <code>OpExecutionMode</code> instruction specifying <code>PointMode</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08870",
+          "text": "If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the spacing of segments on the edges of tessellated primitives, it <strong class=\"purple\">must</strong> match the segment spacing specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08871",
+          "text": "If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the output patch size, it <strong class=\"purple\">must</strong> match the output patch size specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-parameter",
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkShaderCreateInfoEXT\">VkShaderCreateInfoEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-pShaders-parameter",
+          "text": "<code>pShaders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkShaderEXT\">VkShaderEXT</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateShadersEXT-createInfoCount-arraylength",
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkShaderCreateInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeSize-08735",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08736",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> point to valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08737",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08738",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> declare the <code>Shader</code> capability for SPIR-V code",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08739",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> not declare any capability that is not supported by the API, as described by the <a href=\"#spirvenv-module-validation\">Capabilities</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08740",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>pCode</code> declares any of the capabilities listed in the <a href=\"#spirvenv-capabilities-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08741",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> not declare any SPIR-V extension that is not supported by the API, as described by the <a href=\"#spirvenv-extensions\">Extension</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08742",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>pCode</code> declares any of the SPIR-V extensions listed in the <a href=\"#spirvenv-extensions-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08412",
+          "text": "If <code>stage</code> is not <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08486",
+          "text": "If <code>stage</code> is not <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08487",
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08488",
+          "text": "If <code>stage</code> is not <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08489",
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-09404",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT</code>, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-09405",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code>, the <a href=\"#features-computeFullSubgroups\"><code>computeFullSubgroups</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08992",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code>, <code>stage</code> <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, or <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08485",
+          "text": "If <code>stage</code> is not <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08414",
+          "text": "If <code>stage</code> is not <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08416",
+          "text": "If <code>flags</code> includes both <code>VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT</code> and <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code>, the local workgroup size in the X dimension of the shader <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-08417",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code> but not <code>VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT</code> and no <a href=\"#VkShaderRequiredSubgroupSizeCreateInfoEXT\">VkShaderRequiredSubgroupSizeCreateInfoEXT</a> structure is included in the <code>pNext</code> chain, the local workgroup size in the X dimension of the shader <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08418",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_ALL_GRAPHICS</code> or <code>VK_SHADER_STAGE_ALL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08419",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08420",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08421",
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08422",
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08425",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-08426",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08427",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08428",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>nextStage</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08429",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>nextStage</code> <strong class=\"purple\">must</strong> not include <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08430",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08431",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> and <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08433",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08434",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> or <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08435",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-08436",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>nextStage</code> <strong class=\"purple\">must</strong> not include any bits other than <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pName-08440",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>pCode</code> with an execution model that matches <code>stage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08492",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_BINARY_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08493",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> be aligned to <code>4</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08448",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the identified entry point includes any variable in its interface that is declared with the <code>ClipDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxClipDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08449",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the identified entry point includes any variable in its interface that is declared with the <code>CullDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxCullDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08450",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the identified entry point includes any variables in its interface that are declared with the <code>ClipDistance</code> or <code>CullDistance</code> <code>BuiltIn</code> decoration, those variables <strong class=\"purple\">must</strong> not have array sizes which sum to more than <code>VkPhysicalDeviceLimits</code>::<code>maxCombinedClipAndCullDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08451",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the identified entry point includes any variable in its interface that is declared with the <code>SampleMask</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxSampleMaskWords</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08452",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any input variable in its interface that is decorated with <code>CullDistance</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08453",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, and the identified entry point has an <code>OpExecutionMode</code> instruction specifying a patch size with <code>OutputVertices</code>, the patch size <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08454",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output vertex count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryOutputVertices</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08455",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying an invocation count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryShaderInvocations</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08456",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is a <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>, and the identified entry point writes to <code>Layer</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>Layer</code> for all vertices of a given primitive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08457",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is a <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>, and the identified entry point writes to <code>ViewportIndex</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>ViewportIndex</code> for all vertices of a given primitive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08458",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any output variables in its interface decorated with <code>CullDistance</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08459",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragDepth</code> in any execution path, all execution paths that are not exclusive to helper invocations <strong class=\"purple\">must</strong> either discard the fragment, or write or initialize the value of <code>FragDepth</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08460",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, the shader code in <code>pCode</code> <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08872",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08873",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the orientation of triangles generated by the tessellator",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08874",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the spacing of segments on the edges of tessellated primitives",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08875",
+          "text": "If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the output patch size",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderCreateFlagBitsEXT\">VkShaderCreateFlagBitsEXT</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-stage-parameter",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-nextStage-parameter",
+          "text": "<code>nextStage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeType-parameter",
+          "text": "<code>codeType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderCodeTypeEXT\">VkShaderCodeTypeEXT</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pCode-parameter",
+          "text": "<code>pCode</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>codeSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pName-parameter",
+          "text": "If <code>pName</code> is not <code>NULL</code>, <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter",
+          "text": "If <code>setLayoutCount</code> is not <code>0</code>, and <code>pSetLayouts</code> is not <code>NULL</code>, <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setLayoutCount</code> valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pPushConstantRanges-parameter",
+          "text": "If <code>pushConstantRangeCount</code> is not <code>0</code>, and <code>pPushConstantRanges</code> is not <code>NULL</code>, <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pushConstantRangeCount</code> valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-pSpecializationInfo-parameter",
+          "text": "If <code>pSpecializationInfo</code> is not <code>NULL</code>, <code>pSpecializationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSpecializationInfo\">VkSpecializationInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-codeSize-arraylength",
+          "text": "<code>codeSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetShaderBinaryDataEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-None-08461",
+          "text": "The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-None-08499",
+          "text": "If <code>pData</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-shader-parameter",
+          "text": "<code>shader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderEXT\">VkShaderEXT</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-pDataSize-parameter",
+          "text": "<code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-pData-parameter",
+          "text": "If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetShaderBinaryDataEXT-shader-parent",
+          "text": "<code>shader</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdBindShadersEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-None-08462",
+          "text": "The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-08463",
+          "text": "Every element of <code>pStages</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-08464",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> not contain <code>VK_SHADER_STAGE_ALL_GRAPHICS</code> or <code>VK_SHADER_STAGE_ALL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-08465",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> not contain <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-08467",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> not contain <code>VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-08468",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> not contain <code>VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08469",
+          "text": "For each element of <code>pStages</code>, if <code>pShaders</code> is not <code>NULL</code>, and the element of the <code>pShaders</code> array with the same index is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with a <code>stage</code> equal to the corresponding element of <code>pStages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08470",
+          "text": "If <code>pStages</code> contains both <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> and <code>VK_SHADER_STAGE_VERTEX_BIT</code>, and <code>pShaders</code> is not <code>NULL</code>, and the same index in <code>pShaders</code> as <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> in <code>pStages</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the same index in <code>pShaders</code> as <code>VK_SHADER_STAGE_VERTEX_BIT</code> in <code>pStages</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08471",
+          "text": "If <code>pStages</code> contains both <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> and <code>VK_SHADER_STAGE_VERTEX_BIT</code>, and <code>pShaders</code> is not <code>NULL</code>, and the same index in <code>pShaders</code> as <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> in <code>pStages</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the same index in <code>pShaders</code> as <code>VK_SHADER_STAGE_VERTEX_BIT</code> in <code>pStages</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08474",
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, and <code>pStages</code> contains <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, and <code>pShaders</code> is not <code>NULL</code>, the same index or indices in <code>pShaders</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08475",
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, and <code>pStages</code> contains <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and <code>pShaders</code> is not <code>NULL</code>, the same index in <code>pShaders</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08490",
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, and <code>pStages</code> contains <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, and <code>pShaders</code> is not <code>NULL</code>, the same index in <code>pShaders</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08491",
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, and <code>pStages</code> contains <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, and <code>pShaders</code> is not <code>NULL</code>, the same index in <code>pShaders</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08476",
+          "text": "If <code>pStages</code> contains <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08477",
+          "text": "If <code>pStages</code> contains <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-08478",
+          "text": "If <code>pStages</code> contains <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> or <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pStages-parameter",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-pShaders-parameter",
+          "text": "If <code>pShaders</code> is not <code>NULL</code>, <code>pShaders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkShaderEXT\">VkShaderEXT</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-stageCount-arraylength",
+          "text": "<code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindShadersEXT-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pShaders</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkDestroyShaderEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-None-08481",
+          "text": "The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-shader-08482",
+          "text": "All submitted commands that refer to <code>shader</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-pAllocator-08483",
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>shader</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-pAllocator-08484",
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>shader</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-shader-parameter",
+          "text": "<code>shader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderEXT\">VkShaderEXT</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyShaderEXT-shader-parent",
+          "text": "<code>shader</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateShaderModule": {
-      "(VK_EXT_validation_cache)": [
-        {
-          "vuid": "VUID-vkCreateShaderModule-pCreateInfo-06904",
-          "text": " If <code>pCreateInfo</code> is not <code>NULL</code>, <code>pCreateInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a <a href=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a> structure"
-        }
-      ],
-      "!(VK_EXT_validation_cache)": [
-        {
-          "vuid": "VUID-vkCreateShaderModule-pCreateInfo-06905",
-          "text": " If <code>pCreateInfo</code> is not <code>NULL</code>, <code>pCreateInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkCreateShaderModule-pCreateInfo-06904",
+          "text": "If <code>pCreateInfo</code> is not <code>NULL</code>, <code>pCreateInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a <a href=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCreateShaderModule-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateShaderModule-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateShaderModule-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateShaderModule-pShaderModule-parameter",
-          "text": " <code>pShaderModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
+          "text": "<code>pShaderModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModule\">VkShaderModule</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkShaderModuleCreateInfo": {
       "core": [
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085",
-          "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be greater than 0"
+          "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-08735",
+          "text": "If pCode is a pointer to SPIR-V code, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01089",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> declare the <code>Shader</code> capability for SPIR-V code"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08736",
+          "text": "If pCode is a pointer to SPIR-V code, <code>pCode</code> <strong class=\"purple\">must</strong> point to valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01090",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> not declare any capability that is not supported by the API, as described by the <a href=\"#spirvenv-module-validation\">Capabilities</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08737",
+          "text": "If pCode is a pointer to SPIR-V code, <code>pCode</code> <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01091",
-          "text": " If <code>pCode</code> declares any of the capabilities listed in the <a href=\"#spirvenv-capabilities-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08738",
+          "text": "If pCode is a pointer to SPIR-V code, <code>pCode</code> <strong class=\"purple\">must</strong> declare the <code>Shader</code> capability for SPIR-V code",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04146",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> not declare any SPIR-V extension that is not supported by the API, as described by the <a href=\"#spirvenv-extensions\">Extension</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08739",
+          "text": "If pCode is a pointer to SPIR-V code, <code>pCode</code> <strong class=\"purple\">must</strong> not declare any capability that is not supported by the API, as described by the <a href=\"#spirvenv-module-validation\">Capabilities</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04147",
-          "text": " If <code>pCode</code> declares any of the SPIR-V extensions listed in the <a href=\"#spirvenv-extensions-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08740",
+          "text": "If pCode is a pointer to SPIR-V code, and <code>pCode</code> declares any of the capabilities listed in the <a href=\"#spirvenv-capabilities-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO</code>"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08741",
+          "text": "If pCode is a pointer to SPIR-V code, <code>pCode</code> <strong class=\"purple\">must</strong> not declare any SPIR-V extension that is not supported by the API, as described by the <a href=\"#spirvenv-extensions\">Extension</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-08742",
+          "text": "If pCode is a pointer to SPIR-V code, and <code>pCode</code> declares any of the SPIR-V extensions listed in the <a href=\"#spirvenv-extensions-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-parameter",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) <code>uint32_t</code> values"
-        }
-      ],
-      "!(VK_NV_glsl_shader)": [
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01086",
-          "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
-        },
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01087",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> point to valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a>"
-        },
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01088",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
-        }
-      ],
-      "(VK_NV_glsl_shader)": [
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01376",
-          "text": " If <code>pCode</code> is a pointer to SPIR-V code, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
-        },
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01377",
-          "text": " <code>pCode</code> <strong class=\"purple\">must</strong> point to either valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> or valid GLSL code which <strong class=\"purple\">must</strong> be written to the <code>GL_KHR_vulkan_glsl</code> extension specification"
-        },
-        {
-          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01378",
-          "text": " If <code>pCode</code> is a pointer to SPIR-V code, that code <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-07912",
+          "text": "If the <a href=\"#VK_NV_glsl_shader\">VK_NV_glsl_shader</a> extension is not enabled, <code>pCode</code> <strong class=\"purple\">must</strong> be a pointer to SPIR-V code",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01379",
-          "text": " If <code>pCode</code> is a pointer to GLSL code, it <strong class=\"purple\">must</strong> be valid GLSL code written to the <code>GL_KHR_vulkan_glsl</code> GLSL extension specification"
+          "text": "If <code>pCode</code> is a pointer to GLSL code, it <strong class=\"purple\">must</strong> be valid GLSL code written to the <code>GL_KHR_vulkan_glsl</code> GLSL extension specification",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085",
+          "text": "<code>codeSize</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderModuleCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderModuleCreateInfo-pCode-parameter",
+          "text": "<code>pCode</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkShaderModuleValidationCacheCreateInfoEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter",
-          "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
+          "text": "<code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -10836,291 +13700,588 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyShaderModule-shaderModule-01092",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyShaderModule-shaderModule-01093",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyShaderModule-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyShaderModule-shaderModule-parameter",
-          "text": " If <code>shaderModule</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shaderModule</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
+          "text": "If <code>shaderModule</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shaderModule</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyShaderModule-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyShaderModule-shaderModule-parent",
-          "text": " If <code>shaderModule</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>shaderModule</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetShaderModuleIdentifierEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884",
-          "text": " <a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "<a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleIdentifierEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameter",
-          "text": " <code>shaderModule</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
+          "text": "<code>shaderModule</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameter",
-          "text": " <code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModuleIdentifierEXT\">VkShaderModuleIdentifierEXT</a> structure"
+          "text": "<code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModuleIdentifierEXT\">VkShaderModuleIdentifierEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parent",
-          "text": " <code>shaderModule</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>shaderModule</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetShaderModuleCreateInfoIdentifierEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885",
-          "text": " <a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "<a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameter",
-          "text": " <code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModuleIdentifierEXT\">VkShaderModuleIdentifierEXT</a> structure"
+          "text": "<code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModuleIdentifierEXT\">VkShaderModuleIdentifierEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkShaderModuleIdentifierEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-VkShaderModuleIdentifierEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkShaderModuleIdentifierEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPatchControlPointsEXT": {
-      "(VK_EXT_extended_dynamic_state2)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetPatchControlPointsEXT-None-04873",
-          "text": " The <a href=\"#features-extendedDynamicState2PatchControlPoints\"><code>extendedDynamicState2PatchControlPoints</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetPatchControlPointsEXT-None-09422",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState2PatchControlPoints\"><code>extendedDynamicState2PatchControlPoints</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874",
-          "text": " <code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
+          "text": "<code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPatchControlPointsEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter",
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter",
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter",
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV": {
-      "(VK_NV_cooperative_matrix)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCooperativeMatrixPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-AType-parameter",
+          "text": "<code>AType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeKHR\">VkComponentTypeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-BType-parameter",
+          "text": "<code>BType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeKHR\">VkComponentTypeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-CType-parameter",
+          "text": "<code>CType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeKHR\">VkComponentTypeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameter",
+          "text": "<code>ResultType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeKHR\">VkComponentTypeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCooperativeMatrixPropertiesKHR-scope-parameter",
+          "text": "<code>scope</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkScopeKHR\">VkScopeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkCooperativeMatrixPropertiesNV": {
-      "(VK_NV_cooperative_matrix)": [
+      "core": [
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-AType-parameter",
-          "text": " <code>AType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
+          "text": "<code>AType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-BType-parameter",
-          "text": " <code>BType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
+          "text": "<code>BType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-CType-parameter",
-          "text": " <code>CType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
+          "text": "<code>CType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-DType-parameter",
-          "text": " <code>DType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
+          "text": "<code>DType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCooperativeMatrixPropertiesNV-scope-parameter",
-          "text": " <code>scope</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkScopeNV\">VkScopeNV</a> value"
+          "text": "<code>scope</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkScopeNV\">VkScopeNV</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateValidationCacheEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateValidationCacheEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkValidationCacheCreateInfoEXT\">VkValidationCacheCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkValidationCacheCreateInfoEXT\">VkValidationCacheCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateValidationCacheEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter",
-          "text": " <code>pValidationCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
+          "text": "<code>pValidationCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkValidationCacheCreateInfoEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to the size of <code>pInitialData</code>, as returned by <code>vkGetValidationCacheDataEXT</code> when <code>pInitialData</code> was originally retrieved"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to the size of <code>pInitialData</code>, as returned by <code>vkGetValidationCacheDataEXT</code> when <code>pInitialData</code> was originally retrieved",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> have been retrieved from a previous call to <code>vkGetValidationCacheDataEXT</code>"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> have been retrieved from a previous call to <code>vkGetValidationCacheDataEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameter",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>initialDataSize</code> bytes"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>initialDataSize</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
     "vkMergeValidationCachesEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-01536",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parameter",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter",
-          "text": " <code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handles"
+          "text": "<code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength",
-          "text": " <code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parent",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parent",
-          "text": " Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetValidationCacheDataEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-vkGetValidationCacheDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parameter",
-          "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
+          "text": "<code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetValidationCacheDataEXT-pDataSize-parameter",
-          "text": " <code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
+          "text": "<code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetValidationCacheDataEXT-pData-parameter",
-          "text": " If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes"
+          "text": "If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parent",
-          "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>validationCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyValidationCacheEXT": {
-      "(VK_EXT_validation_cache)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01537",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01538",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parameter",
-          "text": " If <code>validationCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
+          "text": "If <code>validationCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parent",
-          "text": " If <code>validationCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>validationCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateCudaModuleNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateCudaModuleNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaModuleNV-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCudaModuleCreateInfoNV\">VkCudaModuleCreateInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaModuleNV-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaModuleNV-pModule-parameter",
+          "text": "<code>pModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCudaModuleNV\">VkCudaModuleNV</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCudaModuleCreateInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkCudaModuleCreateInfoNV-dataSize-09413",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be the total size in bytes of the PTX files or binary cache passed to <code>pData</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaModuleCreateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaModuleCreateInfoNV-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaModuleCreateInfoNV-pData-parameter",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaModuleCreateInfoNV-dataSize-arraylength",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateCudaFunctionNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateCudaFunctionNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaFunctionNV-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCudaFunctionCreateInfoNV\">VkCudaFunctionCreateInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaFunctionNV-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateCudaFunctionNV-pFunction-parameter",
+          "text": "<code>pFunction</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCudaFunctionNV\">VkCudaFunctionNV</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCudaFunctionCreateInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkCudaFunctionCreateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaFunctionCreateInfoNV-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaFunctionCreateInfoNV-module-parameter",
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCudaModuleNV\">VkCudaModuleNV</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaFunctionCreateInfoNV-pName-parameter",
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkDestroyCudaFunctionNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyCudaFunctionNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaFunctionNV-function-parameter",
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCudaFunctionNV\">VkCudaFunctionNV</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaFunctionNV-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaFunctionNV-function-parent",
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkDestroyCudaModuleNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyCudaModuleNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaModuleNV-module-parameter",
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCudaModuleNV\">VkCudaModuleNV</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaModuleNV-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyCudaModuleNV-module-parent",
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetCudaModuleCacheNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetCudaModuleCacheNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetCudaModuleCacheNV-module-parameter",
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCudaModuleNV\">VkCudaModuleNV</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheSize-parameter",
+          "text": "<code>pCacheSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheData-parameter",
+          "text": "If the value referenced by <code>pCacheSize</code> is not <code>0</code>, and <code>pCacheData</code> is not <code>NULL</code>, <code>pCacheData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCacheSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetCudaModuleCacheNV-module-parent",
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -11128,175 +14289,222 @@
       "core": [
         {
           "vuid": "VUID-vkCreateComputePipelines-flags-00695",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-flags-00696",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873",
+          "text": "If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parameter",
-          "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-pCreateInfos-parameter",
-          "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a> structures"
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-pPipelines-parameter",
-          "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
+          "text": "<code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-createInfoCount-arraylength",
-          "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parent",
-          "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873",
-          "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkComputePipelineCreateInfo": {
       "core": [
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-00697",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a compute <code>VkPipeline</code>"
+          "vuid": "VUID-VkComputePipelineCreateInfo-None-09497",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> structure, <code>flags</code> must be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-00698",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-07984",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid compute <code>VkPipeline</code> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-00699",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-07985",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-00700",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1"
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-07986",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-stage-00701",
-          "text": " The <code>stage</code> member of <code>stage</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>"
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-07987",
+          "text": "If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-stage-00702",
-          "text": " The shader code for the entry point identified by <code>stage</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-07988",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the shader stage",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-layout-00703",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with the layout of the compute shader specified in <code>stage</code>"
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-07990",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, and the descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor type",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-layout-01687",
-          "text": " The number of resources in <code>layout</code> accessible to the compute shader stage <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>"
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-07991",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader as an array, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor count",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>, or <a href=\"#VkSubpassShadingPipelineCreateInfoHUAWEI\">VkSubpassShadingPipelineCreateInfoHUAWEI</a>"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
-        },
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-commonparent",
-          "text": " Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_KHR_pipeline_library)": [
-        {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-03364",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_ray_tracing_pipeline)": [
-        {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03365",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03366",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03367",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03368",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03369",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03370",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-03576",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing_motion_blur)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-04945",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkComputePipelineCreateInfo-flags-02874",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-09007",
+          "text": "If the <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-09008",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a pointer to a valid instance of <a href=\"#VkComputePipelineIndirectBufferInfoNV\">VkComputePipelineIndirectBufferInfoNV</a> specifying the address where the pipeline&#8217;s metadata will be saved",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875",
-          "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
-        }
-      ],
-      "(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)": [
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-stage-00701",
+          "text": "The <code>stage</code> member of <code>stage</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-stage-00702",
+          "text": "The shader code for the entry point identified by <code>stage</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-01687",
+          "text": "The number of resources in <code>layout</code> accessible to the compute shader stage <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177",
+          "text": "If <a href=\"#features-shaderEnqueue\"><code>shaderEnqueue</code></a> is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-09178",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, the shader specified by <code>stage</code> <strong class=\"purple\">must</strong> not declare the <code>ShaderEnqueueAMDX</code> capability",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566",
-          "text": " If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)": [
+          "text": "If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkComputePipelineCreateInfo-flags-07367",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-07996",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>, or <a href=\"#VkSubpassShadingPipelineCreateInfoHUAWEI\">VkSubpassShadingPipelineCreateInfoHUAWEI</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineCreateInfo-commonparent",
+          "text": "Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -11304,337 +14512,496 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00704",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00705",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_ALL_GRAPHICS</code>, or <code>VK_SHADER_STAGE_ALL</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707",
-          "text": " <code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>module</code> with an execution model that matches <code>stage</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708",
-          "text": " If the identified entry point includes any variable in its interface that is declared with the <code>ClipDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxClipDistances</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709",
-          "text": " If the identified entry point includes any variable in its interface that is declared with the <code>CullDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxCullDistances</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710",
-          "text": " If the identified entry point includes any variables in its interface that are declared with the <code>ClipDistance</code> or <code>CullDistance</code> <code>BuiltIn</code> decoration, those variables <strong class=\"purple\">must</strong> not have array sizes which sum to more than <code>VkPhysicalDeviceLimits</code>::<code>maxCombinedClipAndCullDistances</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711",
-          "text": " If the identified entry point includes any variable in its interface that is declared with the <code>SampleMask</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxSampleMaskWords</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00712",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any input variable in its interface that is decorated with <code>CullDistance</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00713",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, and the identified entry point has an <code>OpExecutionMode</code> instruction specifying a patch size with <code>OutputVertices</code>, the patch size <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00714",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output vertex count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryOutputVertices</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00715",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying an invocation count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryShaderInvocations</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02596",
-          "text": " If <code>stage</code> is either <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and the identified entry point writes to <code>Layer</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>Layer</code> for all vertices of a given primitive"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02597",
-          "text": " If <code>stage</code> is either <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and the identified entry point writes to <code>ViewportIndex</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>ViewportIndex</code> for all vertices of a given primitive"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00718",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any output variables in its interface decorated with <code>CullDistance</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06685",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragDepth</code> in any execution path, all execution paths that are not exclusive to helper invocations <strong class=\"purple\">must</strong> either discard the fragment, or write or initialize the value of <code>FragDepth</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a>, <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>, <a href=\"#VkPipelineShaderStageModuleIdentifierCreateInfoEXT\">VkPipelineShaderStageModuleIdentifierCreateInfoEXT</a>, <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>, <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a>, or <a href=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineShaderStageCreateFlagBits\">VkPipelineShaderStageCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter",
-          "text": " If <code>module</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter",
-          "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
-        },
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter",
-          "text": " If <code>pSpecializationInfo</code> is not <code>NULL</code>, <code>pSpecializationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSpecializationInfo\">VkSpecializationInfo</a> structure"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02091",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShaders</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShaders</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02092",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShaders</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_shader_stencil_export)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShaders</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-clustercullingShader-07813",
+          "text": "If the <a href=\"#features-clustercullingShader\"><code>clustercullingShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_ALL_GRAPHICS</code>, or <code>VK_SHADER_STAGE_ALL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707",
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>module</code> with an execution model that matches <code>stage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708",
+          "text": "If the identified entry point includes any variable in its interface that is declared with the <code>ClipDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxClipDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709",
+          "text": "If the identified entry point includes any variable in its interface that is declared with the <code>CullDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxCullDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710",
+          "text": "If the identified entry point includes any variables in its interface that are declared with the <code>ClipDistance</code> or <code>CullDistance</code> <code>BuiltIn</code> decoration, those variables <strong class=\"purple\">must</strong> not have array sizes which sum to more than <code>VkPhysicalDeviceLimits</code>::<code>maxCombinedClipAndCullDistances</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711",
+          "text": "If the identified entry point includes any variable in its interface that is declared with the <code>SampleMask</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxSampleMaskWords</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00713",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, and the identified entry point has an <code>OpExecutionMode</code> instruction specifying a patch size with <code>OutputVertices</code>, the patch size <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00714",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output vertex count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryOutputVertices</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00715",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying an invocation count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryShaderInvocations</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02596",
+          "text": "If <code>stage</code> is either <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and the identified entry point writes to <code>Layer</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>Layer</code> for all vertices of a given primitive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02597",
+          "text": "If <code>stage</code> is either <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, and the identified entry point writes to <code>ViewportIndex</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>ViewportIndex</code> for all vertices of a given primitive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06685",
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragDepth</code> in any execution path, all execution paths that are not exclusive to helper invocations <strong class=\"purple\">must</strong> either discard the fragment, or write or initialize the value of <code>FragDepth</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06686",
-          "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragStencilRefEXT</code> in any execution path, all execution paths that are not exclusive to helper invocations <strong class=\"purple\">must</strong> either discard the fragment, or write or initialize the value of <code>FragStencilRefEXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
+          "text": "If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragStencilRefEXT</code> in any execution path, all execution paths that are not exclusive to helper invocations <strong class=\"purple\">must</strong> either discard the fragment, or write or initialize the value of <code>FragStencilRefEXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02784",
-          "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02785",
-          "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the <a href=\"#features-computeFullSubgroups\"><code>computeFullSubgroups</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the <a href=\"#features-computeFullSubgroups\"><code>computeFullSubgroups</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-08988",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code>, <code>stage</code> <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, or <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02754",
-          "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, <code>flags</code> <strong class=\"purple\">must</strong> not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set"
+          "text": "If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, <code>flags</code> <strong class=\"purple\">must</strong> not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02755",
-          "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled, and <code>stage</code> <strong class=\"purple\">must</strong> be a valid bit specified in <a href=\"#limits-requiredSubgroupSizeStages\"><code>requiredSubgroupSizeStages</code></a>"
+          "text": "If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled, and <code>stage</code> <strong class=\"purple\">must</strong> be a valid bit specified in <a href=\"#limits-requiredSubgroupSizeStages\"><code>requiredSubgroupSizeStages</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02756",
-          "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain and <code>stage</code> is <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, the local workgroup size of the shader <strong class=\"purple\">must</strong> be less than or equal to the product of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code> and <a href=\"#limits-maxComputeWorkgroupSubgroups\"><code>maxComputeWorkgroupSubgroups</code></a>"
+          "text": "If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure     is included in the <code>pNext</code> chain and <code>stage</code> is     <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, or <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>,     the local workgroup size of the shader <strong class=\"purple\">must</strong> be less than or equal to     the product of     <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code>     and <a href=\"#limits-maxComputeWorkgroupSubgroups\"><code>maxComputeWorkgroupSubgroups</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02757",
-          "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, and <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code>"
+          "text": "If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, and <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02758",
-          "text": " If <code>flags</code> has both the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> and <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flags set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>"
+          "text": "If <code>flags</code> has both the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> and <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flags set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02759",
-          "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set and <code>flags</code> does not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set and no <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>"
-        }
-      ],
-      "!(VK_EXT_graphics_pipeline_library+VK_EXT_shader_module_identifier)": [
+          "text": "If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set and <code>flags</code> does not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set and no <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-06716",
-          "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>"
-        }
-      ],
-      "(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)": [
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-08987",
+          "text": "If <code>module</code> uses the <code>OpTypeCooperativeMatrixKHR</code> instruction with a <code>Scope</code> equal to <code>Subgroup</code>, then the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>.",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06844",
-          "text": " If a shader module identifier is specified for this <code>stage</code>, a <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure <strong class=\"purple\">must</strong> not be present in the <code>pNext</code> chain"
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-08771",
+          "text": "If a shader module identifier is not specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> if none of the following features are enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a></p>\n</li>\n<li>\n<p><a href=\"#features-maintenance5\"><code>maintenance5</code></a></p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06845",
-          "text": " If a shader module identifier is not specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> or there <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure in the <code>pNext</code> chain"
+          "text": "If a shader module identifier is not specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>, or there <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure in the <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06846",
-          "text": " If a shader module identifier is not specified for this <code>stage</code>, and the <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> feature is not enabled, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>"
-        }
-      ],
-      "(VK_EXT_shader_module_identifier)+!(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06847",
-          "text": " If a shader identifier is not specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>"
-        }
-      ],
-      "(VK_EXT_shader_module_identifier)": [
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06844",
+          "text": "If a shader module identifier is specified for this <code>stage</code>, a <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure <strong class=\"purple\">must</strong> not be present in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06848",
-          "text": " If a shader module identifier is specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If a shader module identifier is specified for this <code>stage</code>, <code>module</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849",
-          "text": " If a shader module identifier is not specified, the shader code used by the pipeline <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants"
-        }
-      ],
-      "!(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-graphicsPipelineLibrary-06717",
-          "text": " If the <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> feature is not enabled, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>"
+          "text": "If a shader module identifier is not specified, the shader code used by the pipeline <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-06718",
-          "text": " If <code>module</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, there <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure in the <code>pNext</code> chain"
-        }
-      ],
-      "!(VK_EXT_shader_module_identifier)": [
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06719",
-          "text": " The shader code used by the pipeline <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants"
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a>, <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>, <a href=\"#VkPipelineShaderStageModuleIdentifierCreateInfoEXT\">VkPipelineShaderStageModuleIdentifierCreateInfoEXT</a>, <a href=\"#VkPipelineShaderStageNodeCreateInfoAMDX\">VkPipelineShaderStageNodeCreateInfoAMDX</a>, <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>, <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a>, or <a href=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineShaderStageCreateFlagBits\">VkPipelineShaderStageCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter",
+          "text": "If <code>module</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter",
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter",
+          "text": "If <code>pSpecializationInfo</code> is not <code>NULL</code>, <code>pSpecializationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSpecializationInfo\">VkSpecializationInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo": {
-      "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760",
-          "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be a power-of-two integer"
+          "text": "<code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be a power-of-two integer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761",
-          "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be greater or equal to <a href=\"#limits-minSubgroupSize\"><code>minSubgroupSize</code></a>"
+          "text": "<code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be greater or equal to <a href=\"#limits-minSubgroupSize\"><code>minSubgroupSize</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762",
-          "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>"
+          "text": "<code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassShadingPipelineCreateInfoHUAWEI": {
-      "(VK_HUAWEI_subpass_shading)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946",
-          "text": " <code>subpass</code> <strong class=\"purple\">must</strong> be created with <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code> bind point"
+          "text": "<code>subpass</code> <strong class=\"purple\">must</strong> be created with <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code> bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI": {
-      "(VK_HUAWEI_subpass_shading)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameter",
-          "text": " <code>renderpass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
+          "text": "<code>renderpass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameter",
-          "text": " <code>pMaxWorkgroupSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
+          "text": "<code>pMaxWorkgroupSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parent",
-          "text": " <code>renderpass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>renderpass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRobustnessCreateInfoEXT": {
-      "(VK_EXT_pipeline_robustness)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926",
-          "text": " If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>storageBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>"
+          "text": "If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>storageBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927",
-          "text": " If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>uniformBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>"
+          "text": "If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>uniformBuffers</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928",
-          "text": " If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>vertexInputs</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>"
+          "text": "If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>vertexInputs</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929",
-          "text": " If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>images</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT</code>"
+          "text": "If the <a href=\"#features-pipelineRobustness\"><code>pipelineRobustness</code></a> feature is not enabled, <code>images</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930",
-          "text": " If the <a href=\"#features-robustImageAccess\"><code>robustImageAccess</code></a> feature is not supported, <code>images</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT</code>"
+          "text": "If the <a href=\"#features-robustImageAccess\"><code>robustImageAccess</code></a> feature is not supported, <code>images</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931",
-          "text": " If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>storageBuffers</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>"
+          "text": "If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>storageBuffers</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932",
-          "text": " If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>uniformBuffers</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>"
+          "text": "If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>uniformBuffers</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933",
-          "text": " If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>vertexInputs</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>"
+          "text": "If the <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> feature is not supported, <code>vertexInputs</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934",
-          "text": " If the <a href=\"#features-robustImageAccess2\"><code>robustImageAccess2</code></a> feature is not supported, <code>images</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT</code>"
+          "text": "If the <a href=\"#features-robustImageAccess2\"><code>robustImageAccess2</code></a> feature is not supported, <code>images</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameter",
-          "text": " <code>storageBuffers</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value"
+          "text": "<code>storageBuffers</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameter",
-          "text": " <code>uniformBuffers</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value"
+          "text": "<code>uniformBuffers</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameter",
-          "text": " <code>vertexInputs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value"
+          "text": "<code>vertexInputs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessBufferBehaviorEXT\">VkPipelineRobustnessBufferBehaviorEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRobustnessCreateInfoEXT-images-parameter",
-          "text": " <code>images</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessImageBehaviorEXT\">VkPipelineRobustnessImageBehaviorEXT</a> value"
+          "text": "<code>images</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineRobustnessImageBehaviorEXT\">VkPipelineRobustnessImageBehaviorEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineShaderStageModuleIdentifierCreateInfoEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850",
-          "text": " If this structure is included in a <code>pNext</code> chain and <code>identifierSize</code> is not equal to 0, the <a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If this structure is included in a <code>pNext</code> chain and <code>identifierSize</code> is not equal to 0, the <a href=\"#features-shaderModuleIdentifier\"><code>shaderModuleIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851",
-          "text": " If this struct is included in a <code>pNext</code> chain of <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> and <code>identifierSize</code> is not equal to 0, the pipeline <strong class=\"purple\">must</strong> be created with the <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> flag set"
+          "text": "If this struct is included in a <code>pNext</code> chain of <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> and <code>identifierSize</code> is not equal to 0, the pipeline <strong class=\"purple\">must</strong> be created with the <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852",
-          "text": " <code>identifierSize</code> <strong class=\"purple\">must</strong> be less-or-equal to <code>VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT</code>"
+          "text": "<code>identifierSize</code> <strong class=\"purple\">must</strong> be less-or-equal to <code>VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter",
-          "text": " If <code>identifierSize</code> is not <code>0</code>, <code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>identifierSize</code> <code>uint8_t</code> values"
+          "text": "If <code>identifierSize</code> is not <code>0</code>, <code>pIdentifier</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>identifierSize</code> <code>uint8_t</code> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkComputePipelineIndirectBufferInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009",
+          "text": "The <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010",
+          "text": "The pipeline creation flags in <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011",
+          "text": "<code>deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a>::<code>alignment</code>, as returned by <a href=\"#vkGetPipelineIndirectMemoryRequirementsNV\">vkGetPipelineIndirectMemoryRequirementsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012",
+          "text": "<code>deviceAddress</code> <strong class=\"purple\">must</strong> have been allocated from a buffer that was created with usage <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> and <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-size-09013",
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than or equal to the <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a>::<code>size</code>, as returned by <a href=\"#vkGetPipelineIndirectMemoryRequirementsNV\">vkGetPipelineIndirectMemoryRequirementsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014",
+          "text": "If <code>pipelineDeviceAddressCaptureReplay</code> is non-zero then the <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputeCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015",
+          "text": "If <code>pipelineDeviceAddressCaptureReplay</code> is non-zero then that address <strong class=\"purple\">must</strong> have been allocated with flag <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016",
+          "text": "If <code>pipelineDeviceAddressCaptureReplay</code> is non-zero, the <code>pipeline</code> <strong class=\"purple\">must</strong> have been recreated for replay",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017",
+          "text": "<code>pipelineDeviceAddressCaptureReplay</code> <strong class=\"purple\">must</strong> satisfy the <code>alignment</code> and <code>size</code> requirements similar to <code>deviceAddress</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdUpdatePipelineIndirectBufferNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkComputePipelineIndirectBufferInfoNV\">VkComputePipelineIndirectBufferInfoNV</a> structure specifying a valid address where its metadata will be saved",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021",
+          "text": "The <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -11642,1411 +15009,1734 @@
       "core": [
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-flags-00720",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-flags-00721",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876",
+          "text": "If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter",
-          "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter",
-          "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a> structures"
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter",
-          "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
+          "text": "<code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength",
-          "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent",
-          "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876",
-          "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkGraphicsPipelineCreateInfo": {
       "core": [
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00722",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a graphics <code>VkPipeline</code>"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-09497",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> structure, <code>flags</code> must be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00723",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07984",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid graphics <code>VkPipeline</code> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00724",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07985",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00725",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07986",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage, it <strong class=\"purple\">must</strong> include a tessellation evaluation shader stage"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07987",
+          "text": "If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation evaluation shader stage, it <strong class=\"purple\">must</strong> include a tessellation control shader stage"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07988",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the shader stage",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00731",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage and a tessellation evaluation shader stage, <code>pTessellationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07990",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, and the descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor type",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both stages contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline, they <strong class=\"purple\">must</strong> both specify the same subdivision mode"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the output patch size in the pipeline"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both contain an <code>OpExecutionMode</code> instruction specifying the out patch size in the pipeline, they <strong class=\"purple\">must</strong> both specify the same patch size"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00736",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the <code>topology</code> member of <code>pInputAssembly</code> <strong class=\"purple\">must</strong> be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-00737",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>pStages</code> <strong class=\"purple\">must</strong> include tessellation shader stages"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Vertex-07722",
-          "text": " If the pipeline is being created with a <code>Vertex</code> {ExecutionModel} and no <code>TessellationEvaluation</code> or <code>Geometry</code> {ExecutionModel}, and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723",
-          "text": " If the pipeline is being created with a <code>TessellationEvaluation</code> {ExecutionModel}, no <code>Geometry</code> {ExecutionModel}, uses the <code>PointMode</code> {ExecutionMode}, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724",
-          "text": " If the pipeline is being created with a <code>TessellationEvaluation</code> {ExecutionModel}, no <code>Geometry</code> {ExecutionModel}, uses the <code>PointMode</code> {ExecutionMode}, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is not enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> not be written to"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Geometry-07725",
-          "text": " If the pipeline is being created with a <code>Geometry</code> {ExecutionModel}, uses the <code>OutputPoints</code> {ExecutionMode}, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Geometry-07726",
-          "text": " If the pipeline is being created with a <code>Geometry</code> {ExecutionModel}, uses the <code>OutputPoints</code> {ExecutionMode}, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is not enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> not be written to"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and does not include any tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology specified in <code>pInputAssembly</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and also includes tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology that is output by the tessellation stages"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the geometry shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06038",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment that is defined as <code>VK_ATTACHMENT_UNUSED</code> in <code>subpass</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and multiple pre-rasterization shader stages are included in <code>pStages</code>, the shader code for the entry points identified by those <code>pStages</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04889",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the fragment shader and last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> and any relevant state <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06041",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, then for each color attachment in the subpass, if the <a href=\"#potential-format-features\">potential format features</a> of the format of the corresponding attachment description do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <a href=\"#features-wideLines\"><code>wideLines</code></a> feature is not enabled, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_WIDTH</code>, the <code>lineWidth</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>1.0</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06043",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06044",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>subpass</code> uses color attachments, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <a href=\"#features-depthBiasClamp\"><code>depthBiasClamp</code></a> feature is not enabled, no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code>, and the <code>depthBiasEnable</code> member of <code>pRasterizationState</code> is <code>VK_TRUE</code>, the <code>depthBiasClamp</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>0.0</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-00756",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>subpass</code> does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06046",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> <strong class=\"purple\">must</strong> be a valid subpass within <code>renderPass</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-01688",
-          "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06894",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> but not <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, elements of <code>pStages</code> <strong class=\"purple\">must</strong> not have <code>stage</code> set to <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06895",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> but not <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, elements of <code>pStages</code> <strong class=\"purple\">must</strong> not have <code>stage</code> set to a shader stage which participates in pre-rasterization"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06896",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, all elements of <code>pStages</code> <strong class=\"purple\">must</strong> have a <code>stage</code> set to a shader stage which participates in <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-06897",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and/or <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, any value of <code>stage</code> <strong class=\"purple\">must</strong> not be set in more than one element of <code>pStages</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>, <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>, or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter",
-          "text": " If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent",
-          "text": " Each of <code>basePipelineHandle</code>, <code>layout</code>, and <code>renderPass</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_VERTEX_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the geometric shader stages provided in <code>pStages</code> <strong class=\"purple\">must</strong> be either from the mesh shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>) or from the primitive shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>)"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07991",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader as an array, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the geometric shader stages provided in <code>pStages</code> <strong class=\"purple\">must</strong> be either from the mesh shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>) or from the primitive shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063",
+          "text": "The shader stages for <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> <strong class=\"purple\">must</strong> use either the <code>TaskNV</code> and <code>MeshNV</code> <code>Execution</code> <code>Model</code> or the <code>TaskEXT</code> and <code>MeshEXT</code> <code>Execution</code> <code>Model</code>, but <strong class=\"purple\">must</strong> not use both",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage, it <strong class=\"purple\">must</strong> include a tessellation evaluation shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation evaluation shader stage, it <strong class=\"purple\">must</strong> include a tessellation control shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-09022",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state is not set, <code>pTessellationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023",
+          "text": "If <code>pTessellationState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both stages contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline, they <strong class=\"purple\">must</strong> both specify the same subdivision mode",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the output patch size in the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both contain an <code>OpExecutionMode</code> instruction specifying the out patch size in the pipeline, they <strong class=\"purple\">must</strong> both specify the same patch size",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08888",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pStages</code> includes tessellation shader stages, and either <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state is not enabled or <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, the <code>topology</code> member of <code>pInputAssembly</code> <strong class=\"purple\">must</strong> be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08889",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, and either <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state is not enabled or <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then <code>pStages</code> <strong class=\"purple\">must</strong> include tessellation shader stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723",
+          "text": "If the pipeline is being created with a <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>, no <code>Geometry</code> <code>Execution</code> <code>Model</code>, uses the <code>PointMode</code> <code>Execution</code> <code>Mode</code>, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to if <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08773",
+          "text": "If the pipeline is being created with a <code>Vertex</code> <code>Execution</code> <code>Model</code> and no <code>TessellationEvaluation</code> or <code>Geometry</code> <code>Execution</code> <code>Model</code>, and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, and either <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state is not enabled or <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to if <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775",
+          "text": "If <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is enabled and a <code>PointSize</code> decorated variable is written to, all execution paths <strong class=\"purple\">must</strong> write to a <code>PointSize</code> decorated variable",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724",
+          "text": "If the pipeline is being created with a <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>, no <code>Geometry</code> <code>Execution</code> <code>Model</code>, uses the <code>PointMode</code> <code>Execution</code> <code>Mode</code>, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is not enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> not be written to",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776",
+          "text": "If the pipeline is being created with a <code>Geometry</code> <code>Execution</code> <code>Model</code>, uses the <code>OutputPoints</code> <code>Execution</code> <code>Mode</code>, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to for every vertex emitted if <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Geometry-07726",
+          "text": "If the pipeline is being created with a <code>Geometry</code> <code>Execution</code> <code>Model</code>, uses the <code>OutputPoints</code> <code>Execution</code> <code>Mode</code>, and <a href=\"#features-shaderTessellationAndGeometryPointSize\"><code>shaderTessellationAndGeometryPointSize</code></a> is not enabled, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> not be written to",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and does not include any tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology specified in <code>pInputAssembly</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and also includes tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology that is output by the tessellation stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the geometry shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the mesh shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths"
-        }
-      ],
-      "(VK_NV_mesh_shader+VK_EXT_mesh_shader)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the mesh shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063",
-          "text": " The shader stages for <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> <strong class=\"purple\">must</strong> use either the <code>TaskNV</code> and <code>MeshNV</code> {ExecutionModel} or the <code>TaskEXT</code> and <code>MeshEXT</code> {ExecutionModel}, but <strong class=\"purple\">must</strong> not use both"
-        }
-      ],
-      "!(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06038",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment that is defined as <code>VK_ATTACHMENT_UNUSED</code> in <code>subpass</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06042",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and multiple pre-rasterization shader stages are included in <code>pStages</code>, the shader code for the entry points identified by those <code>pStages</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04889",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the fragment shader and last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> and any relevant state <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06041",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, then for each color attachment in the subpass, if the <a href=\"#potential-format-features\">potential format features</a> of the format of the corresponding attachment description do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07609",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code>pColorBlendState</code> pointer is not <code>NULL</code>, and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code>pColorBlendState</code> pointer is not <code>NULL</code>, and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370",
-          "text": " If the <a href=\"#features-extendedDynamicState3TessellationDomainOrigin\"><code>extendedDynamicState3TessellationDomainOrigin</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371",
-          "text": " If the <a href=\"#features-extendedDynamicState3DepthClampEnable\"><code>extendedDynamicState3DepthClampEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372",
-          "text": " If the <a href=\"#features-extendedDynamicState3PolygonMode\"><code>extendedDynamicState3PolygonMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373",
-          "text": " If the <a href=\"#features-extendedDynamicState3RasterizationSamples\"><code>extendedDynamicState3RasterizationSamples</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374",
-          "text": " If the <a href=\"#features-extendedDynamicState3SampleMask\"><code>extendedDynamicState3SampleMask</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375",
-          "text": " If the <a href=\"#features-extendedDynamicState3AlphaToCoverageEnable\"><code>extendedDynamicState3AlphaToCoverageEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376",
-          "text": " If the <a href=\"#features-extendedDynamicState3AlphaToOneEnable\"><code>extendedDynamicState3AlphaToOneEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377",
-          "text": " If the <a href=\"#features-extendedDynamicState3LogicOpEnable\"><code>extendedDynamicState3LogicOpEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378",
-          "text": " If the <a href=\"#features-extendedDynamicState3ColorBlendEnable\"><code>extendedDynamicState3ColorBlendEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379",
-          "text": " If the <a href=\"#features-extendedDynamicState3ColorBlendEquation\"><code>extendedDynamicState3ColorBlendEquation</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380",
-          "text": " If the <a href=\"#features-extendedDynamicState3ColorWriteMask\"><code>extendedDynamicState3ColorWriteMask</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381",
-          "text": " If the <a href=\"#features-extendedDynamicState3RasterizationStream\"><code>extendedDynamicState3RasterizationStream</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382",
-          "text": " If the <a href=\"#features-extendedDynamicState3ConservativeRasterizationMode\"><code>extendedDynamicState3ConservativeRasterizationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383",
-          "text": " If the <a href=\"#features-extendedDynamicState3ExtraPrimitiveOverestimationSize\"><code>extendedDynamicState3ExtraPrimitiveOverestimationSize</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384",
-          "text": " If the <a href=\"#features-extendedDynamicState3DepthClipEnable\"><code>extendedDynamicState3DepthClipEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385",
-          "text": " If the <a href=\"#features-extendedDynamicState3SampleLocationsEnable\"><code>extendedDynamicState3SampleLocationsEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386",
-          "text": " If the <a href=\"#features-extendedDynamicState3ColorBlendAdvanced\"><code>extendedDynamicState3ColorBlendAdvanced</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387",
-          "text": " If the <a href=\"#features-extendedDynamicState3ProvokingVertexMode\"><code>extendedDynamicState3ProvokingVertexMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388",
-          "text": " If the <a href=\"#features-extendedDynamicState3LineRasterizationMode\"><code>extendedDynamicState3LineRasterizationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389",
-          "text": " If the <a href=\"#features-extendedDynamicState3LineStippleEnable\"><code>extendedDynamicState3LineStippleEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390",
-          "text": " If the <a href=\"#features-extendedDynamicState3DepthClipNegativeOneToOne\"><code>extendedDynamicState3DepthClipNegativeOneToOne</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391",
-          "text": " If the <a href=\"#features-extendedDynamicState3ViewportWScalingEnable\"><code>extendedDynamicState3ViewportWScalingEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392",
-          "text": " If the <a href=\"#features-extendedDynamicState3ViewportSwizzle\"><code>extendedDynamicState3ViewportSwizzle</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageToColorEnable\"><code>extendedDynamicState3CoverageToColorEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageToColorLocation\"><code>extendedDynamicState3CoverageToColorLocation</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageModulationMode\"><code>extendedDynamicState3CoverageModulationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageModulationTableEnable\"><code>extendedDynamicState3CoverageModulationTableEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageModulationTable\"><code>extendedDynamicState3CoverageModulationTable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398",
-          "text": " If the <a href=\"#features-extendedDynamicState3CoverageReductionMode\"><code>extendedDynamicState3CoverageReductionMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399",
-          "text": " If the <a href=\"#features-extendedDynamicState3RepresentativeFragmentTestEnable\"><code>extendedDynamicState3RepresentativeFragmentTestEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400",
-          "text": " If the <a href=\"#features-extendedDynamicState3ShadingRateImageEnable\"><code>extendedDynamicState3ShadingRateImageEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;viewportCount</code> valid <code>VkViewport</code> structures"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;scissorCount</code> <code>VkRect2D</code> structures"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;viewportCount</code> valid <code>VkViewport</code> structures"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>pViewportState-&gt;pViewports</code> is not dynamic, then <code>pViewportState-&gt;pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;viewportCount</code> valid <code>VkViewport</code> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;scissorCount</code> <code>VkRect2D</code> structures"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>pViewportState-&gt;pScissors</code> is not dynamic, then <code>pViewportState-&gt;pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;scissorCount</code> <code>VkRect2D</code> structures",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>viewportCount</code> <strong class=\"purple\">must</strong> be zero"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <a href=\"#features-wideLines\"><code>wideLines</code></a> feature is not enabled, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_WIDTH</code>, the <code>lineWidth</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>1.0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>scissorCount</code> <strong class=\"purple\">must</strong> be zero"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state is enabled or the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>, and either the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or either the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic states are not set, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_VIEWPORT</code> <strong class=\"purple\">must</strong> not be present"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025",
+          "text": "If <code>pViewportState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_SCISSOR</code> <strong class=\"purple\">must</strong> not be present"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or any of the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic states is not set, or <a href=\"#features-alphaToOne\">alphaToOne</a> is enabled on the device and <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> is not set, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869",
-          "text": " If the <a href=\"#features-extendedDynamicState2LogicOp\"><code>extendedDynamicState2LogicOp</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027",
+          "text": "If <code>pMultisampleState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870",
-          "text": " If the <a href=\"#features-extendedDynamicState2PatchControlPoints\"><code>extendedDynamicState2PatchControlPoints</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>"
-        }
-      ],
-      "!(VK_EXT_depth_range_unrestricted)": [
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>alphaToCoverageEnable</code> is not ignored and is <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "(VK_EXT_depth_range_unrestricted)": [
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09028",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or, any of the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>, <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_OP</code>, or <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic states are not set, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029",
+          "text": "If <code>pDepthStencilState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09030",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>subpass</code> uses color attachments, and <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or any of the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic states are not set, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <a href=\"#features-depthBiasClamp\"><code>depthBiasClamp</code></a> feature is not enabled, no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code>, and the <code>depthBiasEnable</code> member of <code>pRasterizationState</code> is <code>VK_TRUE</code>, the <code>depthBiasClamp</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>0.0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> or <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>rasterizationSamples</code> and <code>sampleLocationsInfo</code> are not dynamic, and <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07611",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> or <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>rasterizationSamples</code> and <code>sampleLocationsInfo</code> are not dynamic, and <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> the included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> or <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>rasterizationSamples</code> and <code>sampleLocationsInfo</code> are not dynamic, and <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07613",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07614",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07615",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count for those subpass attachments"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, <code>rasterizationSamples</code> is not dynamic, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count for those subpass attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> equal the maximum of the sample counts of those subpass attachments",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06854",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code><a href=\"#VK_EXT_multisampled_render_to_single_sampled\">VK_EXT_multisampled_render_to_single_sampled</a></code> extension is enabled, and <code>subpass</code> has a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure included in the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
-        }
-      ],
-      "(VK_AMD_mixed_attachment_samples)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> equal the maximum of the sample counts of those subpass attachments"
-        }
-      ],
-      "(VK_NV_framebuffer_mixed_samples)": [
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code><a href=\"#VK_EXT_multisampled_render_to_single_sampled\">VK_EXT_multisampled_render_to_single_sampled</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and <code>subpass</code> has a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure included in the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01411",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and if <code>subpass</code> has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01412",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has any color attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be greater than or equal to the sample count for those subpass attachments"
-        }
-      ],
-      "(VK_NV_coverage_reduction_mode)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and if <code>subpass</code> has any color attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be greater than or equal to the sample count for those subpass attachments",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the coverage reduction mode specified by <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>::<code>coverageReductionMode</code>, the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <code>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, and <code>rasterizationSamples</code> is not dynamic, the coverage reduction mode specified by <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>::<code>coverageReductionMode</code>, the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <code>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>rasterizationSamples</code> is not dynamic, and <code>subpass</code> does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06046",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> <strong class=\"purple\">must</strong> be a valid subpass within <code>renderPass</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06047",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewTessellationShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewTessellationShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06048",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewGeometryShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewGeometryShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06049",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06050",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, then all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, then all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07717",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, then all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>ViewMask</code> built-in decoration in their interfaces"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)+(VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07064",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewMeshShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a mesh shader"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and an input attachment was referenced by an <code>aspectMask</code> at <code>renderPass</code> creation time, the fragment shader <strong class=\"purple\">must</strong> only read from the aspects that were specified for that input attachment"
-        }
-      ],
-      "(VK_NV_clip_space_w_scaling)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures"
-        }
-      ],
-      "(VK_NV_scissor_exclusive)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
-        }
-      ],
-      "(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures"
-        }
-      ],
-      "(VK_EXT_discard_rectangles)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
-        }
-      ],
-      "!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> is not set, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure"
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>subpass</code> viewMask is not <code>0</code>, then all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>ViewMask</code> built-in decoration in their interfaces",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#features-vertexInputDynamicState\"><code>vertexInputDynamicState</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07064",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>subpass</code> viewMask is not <code>0</code>, and <code>multiviewMeshShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a mesh shader",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and an input attachment was referenced by an <code>aspectMask</code> at <code>renderPass</code> creation time, the fragment shader <strong class=\"purple\">must</strong> only read from the aspects that were specified for that input attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-01688",
+          "text": "The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854",
+          "text": "If <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> is included in the <code>pDynamicStates</code> array then the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of the <code><a href=\"#VK_NV_scissor_exclusive\">VK_NV_scissor_exclusive</a></code> extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855",
+          "text": "If <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> is included in the <code>pDynamicStates</code> array then the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856",
+          "text": "If <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> is included in the <code>pDynamicStates</code> array then the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, and <code>pVertexInputState</code> is not dynamic, then <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-07904",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-08733",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, and <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-09198",
+          "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, and <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> has a 64-bit component, then all <code>Input</code> variables at the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or either <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic states are not set, or <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032",
+          "text": "If <code>pInputAssemblyState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>Xfb</code> execution mode <strong class=\"purple\">can</strong> be specified by no more than one shader stage in <code>pStages</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>Xfb</code> execution mode <strong class=\"purple\">can</strong> be specified by no more than one shader stage in <code>pStages</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02318",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and any shader stage in <code>pStages</code> specifies <code>Xfb</code> execution mode it <strong class=\"purple\">must</strong> be the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and any shader stage in <code>pStages</code> specifies <code>Xfb</code> execution mode it <strong class=\"purple\">must</strong> be the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and a <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with identical <code>Stream</code> values that match the <code>rasterizationStream</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and a <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with identical <code>Stream</code> values that match the <code>rasterizationStream</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with a <code>Stream</code> value of zero, or <strong class=\"purple\">must</strong> not specify the <code>Stream</code> decoration"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with a <code>Stream</code> value of zero, or <strong class=\"purple\">must</strong> not specify the <code>Stream</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> is a geometry shader, and that geometry shader uses the <code>GeometryStreams</code> capability, then <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> is a geometry shader, and that geometry shader uses the <code>GeometryStreams</code> capability, then <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and there are any mesh shader stages in the pipeline there <strong class=\"purple\">must</strong> not be any shader stage in the pipeline with a <code>Xfb</code> execution mode"
-        }
-      ],
-      "(VK_EXT_line_rasterization)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and there are any mesh shader stages in the pipeline there <strong class=\"purple\">must</strong> not be any shader stage in the pipeline with a <code>Xfb</code> execution mode",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and at least one of <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>pMultisampleState</code> is not <code>NULL</code>, the <code>lineRasterizationMode</code> member of a <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pRasterizationState</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code> or <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <code>alphaToCoverageEnable</code>, <code>alphaToOneEnable</code>, and <code>sampleShadingEnable</code> members of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> all be <code>VK_FALSE</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and at least one of <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>pMultisampleState</code> is not <code>NULL</code>, the <code>lineRasterizationMode</code> member of a <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pRasterizationState</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code> or <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <code>alphaToCoverageEnable</code>, <code>alphaToOneEnable</code>, and <code>sampleShadingEnable</code> members of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> all be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>stippledLineEnable</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> is <code>VK_TRUE</code>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code>, then the <code>lineStippleFactor</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>"
-        }
-      ],
-      "(VK_KHR_pipeline_library)+!(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03371",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_ray_tracing_pipeline)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>stippledLineEnable</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> is <code>VK_TRUE</code>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code>, then the <code>lineStippleFactor</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03372",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03373",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03374",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03375",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03376",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03377",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03577",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578",
-          "text": " All elements of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> not be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing_motion_blur)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04947",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378",
-          "text": " If the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_CULL_MODE</code>, <code>VK_DYNAMIC_STATE_FRONT_FACE</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code>, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code>, <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>, <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, or <code>VK_DYNAMIC_STATE_STENCIL_OP</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>     feature is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is less than Version 1.3     there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of     <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_CULL_MODE</code>,     <code>VK_DYNAMIC_STATE_FRONT_FACE</code>,     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code>,     <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>,     <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>,     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code>,     <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>,     <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>,     <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>,     <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>,     <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, or     <code>VK_DYNAMIC_STATE_STENCIL_OP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>viewportCount</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>scissorCount</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_VIEWPORT</code> <strong class=\"purple\">must</strong> not be present",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_SCISSOR</code> <strong class=\"purple\">must</strong> not be present",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code>, or <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code>, or <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868",
-          "text": " If the <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     the <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a>     feature is not enabled, and     the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create     the <a href=\"#VkInstance\">VkInstance</a> is less than Version 1.3     there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of     <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code>,     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or     <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869",
+          "text": "If the <a href=\"#features-extendedDynamicState2LogicOp\"><code>extendedDynamicState2LogicOp</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870",
+          "text": "If the <a href=\"#features-extendedDynamicState2PatchControlPoints\"><code>extendedDynamicState2PatchControlPoints</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)": [
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then the <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then the <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878",
-          "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
-        }
-      ],
-      "(VK_EXT_pipeline_protected_access)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368",
-          "text": " If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07369",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code> and <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be a power-of-two value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be a power-of-two value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> and <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> both be equal to <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportIndex</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code> is greater than <code>1</code>, entry points specified in <code>pStages</code> <strong class=\"purple\">must</strong> not write to the <code>PrimitiveShadingRateKHR</code> built-in"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportMaskNV</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in"
-        }
-      ],
-      "(VK_NV_fragment_shading_rate_enums)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-06569",
-          "text": "  If the pipeline is being created with  <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateTypeNV\">VkFragmentShadingRateTypeNV</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-supersampleFragmentShadingRates\"><code>supersampleFragmentShadingRates</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-noInvocationFragmentShadingRates\"><code>noInvocationFragmentShadingRates</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>"
-        }
-      ],
-      "!(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-06573",
-          "text": " The pipeline <strong class=\"purple\">must</strong> be created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06600",
-          "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601",
-          "text": " <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-06602",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06603",
-          "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-06604",
-          "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_EXT_color_write_enable)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800",
-          "text": " If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code>"
-        }
-      ],
-      "(VK_QCOM_render_pass_shader_resolve)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899",
-          "text": " If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900",
-          "text": " If the pipeline is being created with fragment shader state, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04901",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04902",
-          "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06574",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid render pass object"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06575",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> or a valid render pass object"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576",
-          "text": " If the <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature is not enabled and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-multiview-06577",
-          "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06578",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the index of the most significant bit in <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06579",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> is not 0, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06580",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06583",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06584",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06585",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06586",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06587",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06588",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06589",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06053",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and either of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> or <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> are not <code>VK_FORMAT_UNDEFINED</code>, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06054",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> is not equal to <code>0</code>, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06055",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pColorBlendState-&gt;attachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06056",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06581",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and any element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, that format <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06582",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and any element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, that format <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06590",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> but not <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06057",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and the <a href=\"#features-multiview-tess\"><code>multiviewTessellationShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06058",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and the <a href=\"#features-multiview-gs\"><code>multiviewGeometryShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07718",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06059",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07719",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>ViewIndex</code> built-in decoration in their interfaces"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06061",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, fragment shaders in <code>pStages</code> <strong class=\"purple\">must</strong> not include the <code>InputAttachment</code> capability"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06062",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, for each color attachment format defined by the <code>pColorAttachmentFormats</code> member of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, if its <a href=\"#potential-format-features\">potential format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)+(VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07720",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and <code>multiviewMeshShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a mesh shader"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06063",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>pNext</code> chain includes <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <code>VkAttachmentSampleCountInfoNV</code>, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>"
-        }
-      ],
-      "(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06591",
-          "text": " If <code>pStages</code> includes a fragment shader stage, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode, the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06484",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code> <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06485",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06486",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06482",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06483",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592",
-          "text": " If the <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, elements of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> <strong class=\"purple\">must</strong> be valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593",
-          "text": " If the <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> is not 0, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        }
-      ],
-      "(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594",
-          "text": " If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>"
-        }
-      ],
-      "(VK_NVX_multiview_per_view_attributes)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06595",
-          "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> is <code>VK_TRUE</code> then <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06596",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> specified in both this pipeline and the library <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> specified in both libraries <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06598",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> specified in both this pipeline and the library <strong class=\"purple\">must</strong> be equal"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> specified in both libraries <strong class=\"purple\">must</strong> be equal"
-        }
-      ],
-      "!(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-06605",
-          "text": " If the <code>pNext</code> chain includes an instance of <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, its <code>groupCount</code> member <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606",
-          "text": " If the <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607",
-          "text": " If the <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> feature is not enabled, the pipeline <strong class=\"purple\">must</strong> be created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06608",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-complete\">all possible state subsets</a>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06609",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06610",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>, pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611",
-          "text": " Any pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> <strong class=\"purple\">must</strong> not include any <a href=\"#pipelines-graphics-subsets\">state subset</a> already defined by this structure or defined by any other pipeline library in <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06612",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, and <code>layout</code> was not created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by this pipeline and the library <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was not created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by each library <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06614",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and <code>layout</code> was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by the library <strong class=\"purple\">must</strong> also have been created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by both libraries <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06616",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and <code>layout</code> was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, elements of the <code>pSetLayouts</code> array which <code>layout</code> was created with that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be <em>identically defined</em> to the element at the same index of <code>pSetLayouts</code> used to create the library&#8217;s <code>layout</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, elements of the <code>pSetLayouts</code> array which either <code>layout</code> was created with that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be <em>identically defined</em> to the element at the same index of <code>pSetLayouts</code> used to create the other library&#8217;s <code>layout</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06618",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, any descriptor set layout <em>N</em> specified by <code>layout</code> in both this pipeline and the library which include bindings accessed by shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, any descriptor set layout <em>N</em> specified by <code>layout</code> in both libraries which include bindings accessed by shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06620",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, push constants specified in <code>layout</code> in both this pipeline and the library which are available to shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, push constants specified in <code>layout</code> in both this pipeline and the library which are available to shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06679",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array which <code>layout</code> was created with was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06680",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create this pipeline&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and any element of the <code>pSetLayouts</code> array used to create each library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the other library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06756",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array which <code>layout</code> was created with was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06757",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create this pipeline&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and any element of the <code>pSetLayouts</code> array used to create each library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the other library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06682",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes both <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>layout</code> <strong class=\"purple\">must</strong> have been created with no elements of the <code>pSetLayouts</code> array set to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06683",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and <code>pRasterizationState</code>-&gt;<code>rasterizerDiscardEnable</code> is <code>VK_TRUE</code>, <code>layout</code> <strong class=\"purple\">must</strong> have been created with no elements of the <code>pSetLayouts</code> array set to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06684",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>subpass</code> <strong class=\"purple\">must</strong> be equal to that used to create the library"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>subpass</code> used to create each library <strong class=\"purple\">must</strong> be identical"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06624",
-          "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, <code>renderPass</code> <strong class=\"purple\">must</strong> be compatible with that used to create the library"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the <code>renderPass</code> objects used to create each library <strong class=\"purple\">must</strong> be compatible or all equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06633",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be <em>identically defined</em> to that used to create the library"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634",
-          "text": " If an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and if <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be <em>identically defined</em> to that used to create the library"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and if a different element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, the <code>pMultisampleState</code> used to create each library <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code> and a value of <code>pMultisampleState-&gt;sampleShading</code> equal <code>VK_TRUE</code>, and if a different element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the <code>pMultisampleState</code> used to create each library <strong class=\"purple\">must</strong> be <em>identically defined</em>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06637",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState-&gt;sampleShading</code> is <code>VK_TRUE</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the <code>pMultisampleState</code> used to create that library <strong class=\"purple\">must</strong> be <em>identically defined</em> <code>pMultisampleState</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06640",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06641",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06642",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06643",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06644",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06729",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a> specified entirely by libraries, and each library was created with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is <a href=\"#descriptorsets-compatibility\">compatible</a> with the union of the libraries' pipeline layouts other than the inclusion/exclusion of <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06730",
-          "text": " If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a> specified entirely by libraries, and each library was created with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is <a href=\"#descriptorsets-compatibility\">compatible</a> with the union of the libraries' pipeline layouts"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06625",
-          "text": " If <code>renderpass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>renderPass</code> used to create that library <strong class=\"purple\">must</strong> also be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06626",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> used by this pipeline and that specified by the library <strong class=\"purple\">must</strong> be identical"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, and <code>renderPass</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> for both libraries, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> set by each library <strong class=\"purple\">must</strong> be identical"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06631",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>pMultisampleState</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-06632",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> with a fragment shader that either enables <a href=\"#primsrast-sampleshading\">sample shading</a> or decorates any variable in the <code>Input</code> storage class with <code>Sample</code>, then <code>pMultisampleState</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)+!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06630",
-          "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> <code>pMultisampleState</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)+(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06638",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, values specified in <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a> for both this pipeline and that library <strong class=\"purple\">must</strong> be identical"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639",
-          "text": " If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, values specified in <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a> for both this pipeline and that library <strong class=\"purple\">must</strong> be identical"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06645",
-          "text": " If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> is non-zero, if <code>flags</code> includes <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, any libraries <strong class=\"purple\">must</strong> have also been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646",
-          "text": " If <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes more than one library, and any library was created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, all libraries <strong class=\"purple\">must</strong> have also been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647",
-          "text": " If <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one library, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> is non-zero, and any library was created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648",
-          "text": " If the pipeline is not created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, or <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>libraryCount</code> is not <code>0</code>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> and <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>pipelineCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the pipeline is not created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, or <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>libraryCount</code> is not <code>0</code>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> and <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>pipelineCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649",
-          "text": " If the pipeline is created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>libraryCount</code> is <code>0</code>, and the <code>pNext</code> chain includes an instance of <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_EXT_conservative_rasterization)": [
+          "text": "If the pipeline is created with a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, and <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>libraryCount</code> is <code>0</code>, and the <code>pNext</code> chain includes an instance of <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759",
-          "text": " If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported; the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>; the pipeline does not include a geometry shader; and the value of <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, or <code>VK_PRIMITIVE_TOPOLOGY_LINE_STRIP</code>, then <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878",
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368",
+          "text": "If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07369",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code> and <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be a power-of-two value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be a power-of-two value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> and <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> both be equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code> is greater than <code>1</code>, entry points specified in <code>pStages</code> <strong class=\"purple\">must</strong> not write to the <code>PrimitiveShadingRateKHR</code> built-in",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportIndex</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportMaskNV</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-06569",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateTypeNV\">VkFragmentShadingRateTypeNV</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-supersampleFragmentShadingRates\"><code>supersampleFragmentShadingRates</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-noInvocationFragmentShadingRates\"><code>noInvocationFragmentShadingRates</code></a> feature is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578",
+          "text": "All elements of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> not be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#features-vertexInputDynamicState\"><code>vertexInputDynamicState</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and includes a mesh shader, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04901",
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04902",
+          "text": "If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576",
+          "text": "If the <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature is not enabled and the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-multiview-06577",
+          "text": "If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06578",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the index of the most significant bit in <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06579",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> is not 0, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06580",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06582",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and any element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, that format <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06583",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06584",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06585",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06586",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06587",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06588",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06589",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09033",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and either of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> or <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> are not <code>VK_FORMAT_UNDEFINED</code>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or any of the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>, <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_OP</code>, or <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic states are not set, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034",
+          "text": "If <code>pDepthStencilState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09035",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> but not <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or any of the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>, <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_OP</code>, or <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic states are not set, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036",
+          "text": "If <code>pDepthStencilState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09037",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> is not equal to <code>0</code>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or any of the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic states are not set, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038",
+          "text": "If <code>pColorBlendState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06055",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pColorBlendState</code> is not dynamic, and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pColorBlendState-&gt;attachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06057",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and the <a href=\"#features-multiview-tess\"><code>multiviewTessellationShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06058",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and the <a href=\"#features-multiview-gs\"><code>multiviewGeometryShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07718",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06059",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07719",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, all of the shaders in the pipeline <strong class=\"purple\">must</strong> not include variables decorated with the <code>ViewIndex</code> built-in decoration in their interfaces",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-07720",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> is not <code>0</code>, and <code>multiviewMeshShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a mesh shader",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06061",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, fragment shaders in <code>pStages</code> <strong class=\"purple\">must</strong> not include the <code>InputAttachment</code> capability",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-08710",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, fragment shaders in <code>pStages</code> <strong class=\"purple\">must</strong> not include any of the <code>TileImageColorReadAccessEXT</code>, <code>TileImageDepthReadAccessEXT</code>, or <code>TileImageStencilReadAccessEXT</code> capabilities",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06062",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, for each color attachment format defined by the <code>pColorAttachmentFormats</code> member of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, if its <a href=\"#potential-format-features\">potential format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06063",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>pNext</code> chain includes <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <code>VkAttachmentSampleCountInfoNV</code>, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06591",
+          "text": "If <code>pStages</code> includes a fragment shader stage, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode, the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06482",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06483",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592",
+          "text": "If the <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, elements of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> <strong class=\"purple\">must</strong> be valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593",
+          "text": "If the <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> is not 0, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06484",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code> <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06485",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06486",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594",
+          "text": "If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06595",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> is <code>VK_TRUE</code> then <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06596",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> specified in both this pipeline and the library <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributes</code> specified in both libraries <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06598",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> specified in both this pipeline and the library <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the value of <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>::<code>perViewAttributesPositionXOnly</code> specified in both libraries <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06600",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled, or any of the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic states are not set, or <a href=\"#features-alphaToOne\">alphaToOne</a> is enabled on the device and <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> is not set, then <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040",
+          "text": "If <code>pRasterizationState</code> is not <code>NULL</code> it <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-06602",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06603",
+          "text": "If <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output state</a>, and <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-06604",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606",
+          "text": "If the <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06608",
+          "text": "If the pipeline defines, or includes as libraries, all the state subsets required for a <a href=\"#pipelines-graphics-subsets-complete\">complete graphics pipeline</a>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06609",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-09245",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> also include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06610",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>, pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611",
+          "text": "Any pipeline libraries included via <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> <strong class=\"purple\">must</strong> not include any <a href=\"#pipelines-graphics-subsets\">state subset</a> already defined by this structure or defined by any other pipeline library in <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06612",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, and <code>layout</code> was not created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by this pipeline and the library <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was not created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by each library <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06614",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and <code>layout</code> was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by the library <strong class=\"purple\">must</strong> also have been created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then the <code>layout</code> used by both libraries <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06616",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and <code>layout</code> was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, elements of the <code>pSetLayouts</code> array which <code>layout</code> was created with that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be <em>identically defined</em> to the element at the same index of <code>pSetLayouts</code> used to create the library&#8217;s <code>layout</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and the <code>layout</code> specified by either library was created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, elements of the <code>pSetLayouts</code> array which either <code>layout</code> was created with that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be <em>identically defined</em> to the element at the same index of <code>pSetLayouts</code> used to create the other library&#8217;s <code>layout</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06618",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, any descriptor set layout <em>N</em> specified by <code>layout</code> in both this pipeline and the library which include bindings accessed by shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, any descriptor set layout <em>N</em> specified by <code>layout</code> in both libraries which include bindings accessed by shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06620",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, push constants specified in <code>layout</code> in both this pipeline and the library which are available to shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, push constants specified in <code>layout</code> in both this pipeline and the library which are available to shader stages in each <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06679",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, any element of the <code>pSetLayouts</code> array when <code>layout</code> was created and the corresponding element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not both be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and any element of the <code>pSetLayouts</code> array used to create each library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the other library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06756",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array which <code>layout</code> was created with was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06757",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other subset, and any element of the <code>pSetLayouts</code> array used to create the library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create this pipeline&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and any element of the <code>pSetLayouts</code> array used to create each library&#8217;s <code>layout</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of the <code>pSetLayouts</code> array used to create the other library&#8217;s <code>layout</code> <strong class=\"purple\">must</strong> not have shader bindings for shaders in the other subset",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06682",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes both <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>layout</code> <strong class=\"purple\">must</strong> have been created with no elements of the <code>pSetLayouts</code> array set to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06683",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and <code>pRasterizationState-&gt;rasterizerDiscardEnable</code> is <code>VK_TRUE</code>, <code>layout</code> <strong class=\"purple\">must</strong> have been created with no elements of the <code>pSetLayouts</code> array set to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06684",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>subpass</code> <strong class=\"purple\">must</strong> be equal to that used to create the library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>subpass</code> used to create each library <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06624",
+          "text": "If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, <code>renderPass</code> <strong class=\"purple\">must</strong> be compatible with that used to create the library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06625",
+          "text": "If <code>renderpass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the value of <code>renderPass</code> used to create that library <strong class=\"purple\">must</strong> also be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06626",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> used by this pipeline and that specified by the library <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, and <code>renderPass</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> for both libraries, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> set by each library <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one of and no more than two of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and another element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes one of the other flags, the <code>renderPass</code> objects used to create each library <strong class=\"purple\">must</strong> be compatible or all equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderpass-06631",
+          "text": "If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or any of the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic states is not set, or <a href=\"#features-alphaToOne\">alphaToOne</a> is enabled on the device and <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> is not set, then <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-06632",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> with a fragment shader that either enables <a href=\"#primsrast-sampleshading\">sample shading</a> or decorates any variable in the <code>Input</code> storage class with <code>Sample</code>, and the <code><a href=\"#VK_EXT_extended_dynamic_state3\">VK_EXT_extended_dynamic_state3</a></code> extension is not enabled or any of the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>, or <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic states is not set, or <a href=\"#features-alphaToOne\">alphaToOne</a> is enabled on the device and <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> is not set, then <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06633",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be <em>identically defined</em> to that used to create the library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634",
+          "text": "If an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and if <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be <em>identically defined</em> to that used to create the library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code> with a <code>pMultisampleState</code> that was not <code>NULL</code>, and if a different element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, the <code>pMultisampleState</code> used to create each library <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code> and a value of <code>pMultisampleState-&gt;sampleShading</code> equal <code>VK_TRUE</code>, and if a different element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the <code>pMultisampleState</code> used to create each library <strong class=\"purple\">must</strong> be <em>identically defined</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06637",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, <code>pMultisampleState-&gt;sampleShading</code> is <code>VK_TRUE</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> was created with <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, the <code>pMultisampleState</code> used to create that library <strong class=\"purple\">must</strong> be <em>identically defined</em> <code>pMultisampleState</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06638",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes only one of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and an element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes the other flag, values specified in <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a> for both this pipeline and that library <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639",
+          "text": "If one element of <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> and another element includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, values specified in <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a> for both this pipeline and that library <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06640",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06642",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06643",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06644",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> or <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06645",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> is non-zero, if <code>flags</code> includes <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, any libraries <strong class=\"purple\">must</strong> have also been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646",
+          "text": "If <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes more than one library, and any library was created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, all libraries <strong class=\"purple\">must</strong> have also been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647",
+          "text": "If <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code> includes at least one library, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> is non-zero, and any library was created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-07826",
+          "text": "If the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, and there are no libraries included in <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code>, then <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> <strong class=\"purple\">must</strong> be a valid pipeline layout",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07827",
+          "text": "If the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a> specified entirely by libraries, and each library was created with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> created without <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the layouts in those libraries",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06729",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a> specified entirely by libraries, and each library was created with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the union of the libraries' pipeline layouts other than the inclusion/exclusion of <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06730",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT</code>, the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a> specified entirely by libraries, and each library was created with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> created with <code>VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT</code>, then <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the union of the libraries' pipeline layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892",
+          "text": "If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported; the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>; the pipeline does not include a geometry shader; and the value of <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, or <code>VK_PRIMITIVE_TOPOLOGY_LINE_STRIP</code>, and either <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state is not enabled or <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760",
-          "text": " If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the pipeline includes a geometry shader with either the <code>OutputPoints</code> or <code>OutputLineStrip</code> execution modes, <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_conservative_rasterization)+(VK_NV_mesh_shader)": [
+          "text": "If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the pipeline includes a geometry shader with either the <code>OutputPoints</code> or <code>OutputLineStrip</code> execution modes, <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761",
-          "text": " If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the pipeline includes a mesh shader with either the <code>OutputPoints</code> or <code>OutputLinesNV</code> execution modes, <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)": [
+          "text": "If <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the pipeline includes a mesh shader with either the <code>OutputPoints</code> or <code>OutputLinesNV</code> execution modes, <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>::<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06894",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> but not <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, elements of <code>pStages</code> <strong class=\"purple\">must</strong> not have <code>stage</code> set to <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06895",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> but not <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, elements of <code>pStages</code> <strong class=\"purple\">must</strong> not have <code>stage</code> set to a shader stage which participates in pre-rasterization",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06896",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, all elements of <code>pStages</code> <strong class=\"purple\">must</strong> have a <code>stage</code> set to a shader stage which participates in <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-06897",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and/or <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, any value of <code>stage</code> <strong class=\"purple\">must</strong> not be set in more than one element of <code>pStages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370",
+          "text": "If the <a href=\"#features-extendedDynamicState3TessellationDomainOrigin\"><code>extendedDynamicState3TessellationDomainOrigin</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371",
+          "text": "If the <a href=\"#features-extendedDynamicState3DepthClampEnable\"><code>extendedDynamicState3DepthClampEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372",
+          "text": "If the <a href=\"#features-extendedDynamicState3PolygonMode\"><code>extendedDynamicState3PolygonMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373",
+          "text": "If the <a href=\"#features-extendedDynamicState3RasterizationSamples\"><code>extendedDynamicState3RasterizationSamples</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374",
+          "text": "If the <a href=\"#features-extendedDynamicState3SampleMask\"><code>extendedDynamicState3SampleMask</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375",
+          "text": "If the <a href=\"#features-extendedDynamicState3AlphaToCoverageEnable\"><code>extendedDynamicState3AlphaToCoverageEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376",
+          "text": "If the <a href=\"#features-extendedDynamicState3AlphaToOneEnable\"><code>extendedDynamicState3AlphaToOneEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377",
+          "text": "If the <a href=\"#features-extendedDynamicState3LogicOpEnable\"><code>extendedDynamicState3LogicOpEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378",
+          "text": "If the <a href=\"#features-extendedDynamicState3ColorBlendEnable\"><code>extendedDynamicState3ColorBlendEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379",
+          "text": "If the <a href=\"#features-extendedDynamicState3ColorBlendEquation\"><code>extendedDynamicState3ColorBlendEquation</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380",
+          "text": "If the <a href=\"#features-extendedDynamicState3ColorWriteMask\"><code>extendedDynamicState3ColorWriteMask</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381",
+          "text": "If the <a href=\"#features-extendedDynamicState3RasterizationStream\"><code>extendedDynamicState3RasterizationStream</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382",
+          "text": "If the <a href=\"#features-extendedDynamicState3ConservativeRasterizationMode\"><code>extendedDynamicState3ConservativeRasterizationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383",
+          "text": "If the <a href=\"#features-extendedDynamicState3ExtraPrimitiveOverestimationSize\"><code>extendedDynamicState3ExtraPrimitiveOverestimationSize</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384",
+          "text": "If the <a href=\"#features-extendedDynamicState3DepthClipEnable\"><code>extendedDynamicState3DepthClipEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385",
+          "text": "If the <a href=\"#features-extendedDynamicState3SampleLocationsEnable\"><code>extendedDynamicState3SampleLocationsEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386",
+          "text": "If the <a href=\"#features-extendedDynamicState3ColorBlendAdvanced\"><code>extendedDynamicState3ColorBlendAdvanced</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387",
+          "text": "If the <a href=\"#features-extendedDynamicState3ProvokingVertexMode\"><code>extendedDynamicState3ProvokingVertexMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388",
+          "text": "If the <a href=\"#features-extendedDynamicState3LineRasterizationMode\"><code>extendedDynamicState3LineRasterizationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389",
+          "text": "If the <a href=\"#features-extendedDynamicState3LineStippleEnable\"><code>extendedDynamicState3LineStippleEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390",
+          "text": "If the <a href=\"#features-extendedDynamicState3DepthClipNegativeOneToOne\"><code>extendedDynamicState3DepthClipNegativeOneToOne</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391",
+          "text": "If the <a href=\"#features-extendedDynamicState3ViewportWScalingEnable\"><code>extendedDynamicState3ViewportWScalingEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392",
+          "text": "If the <a href=\"#features-extendedDynamicState3ViewportSwizzle\"><code>extendedDynamicState3ViewportSwizzle</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageToColorEnable\"><code>extendedDynamicState3CoverageToColorEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageToColorLocation\"><code>extendedDynamicState3CoverageToColorLocation</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageModulationMode\"><code>extendedDynamicState3CoverageModulationMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageModulationTableEnable\"><code>extendedDynamicState3CoverageModulationTableEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageModulationTable\"><code>extendedDynamicState3CoverageModulationTable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398",
+          "text": "If the <a href=\"#features-extendedDynamicState3CoverageReductionMode\"><code>extendedDynamicState3CoverageReductionMode</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399",
+          "text": "If the <a href=\"#features-extendedDynamicState3RepresentativeFragmentTestEnable\"><code>extendedDynamicState3RepresentativeFragmentTestEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400",
+          "text": "If the <a href=\"#features-extendedDynamicState3ShadingRateImageEnable\"><code>extendedDynamicState3ShadingRateImageEnable</code></a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07401",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>"
-        }
-      ],
-      "(VK_QCOM_multiview_per_view_viewports)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07997",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730",
-          "text": "    If the pipeline is being created with    <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader    state</a>, and no element of the <code>pDynamicStates</code> member of    <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or    <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, and if    <a href=\"#features-multiview-per-view-viewports\">multiviewPerViewViewports</a> is enabled, then the index of the most    significant bit in each element of    <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less    than <code>pViewportState</code>::<code>viewportCount</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, and if <a href=\"#features-multiview-per-view-viewports\"><code>multiviewPerViewViewports</code></a> is enabled, then the index of the most significant bit in each element of <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <code>pViewportState-&gt;viewportCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731",
-          "text": "    If the pipeline is being created with    <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader    state</a>, and no element of the <code>pDynamicStates</code> member of    <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or    <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, and if    <a href=\"#features-multiview-per-view-viewports\">multiviewPerViewViewports</a> is enabled, then the index of the most    significant bit in each element of    <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less    than <code>pViewportState</code>::<code>scissorCount</code>"
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, and if <a href=\"#features-multiview-per-view-viewports\"><code>multiviewPerViewViewports</code></a> is enabled, then the index of the most significant bit in each element of <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <code>pViewportState-&gt;scissorCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08711",
+          "text": "If <code>pStages</code> includes a fragment shader stage, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> is not set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-08712",
+          "text": "If <code>pStages</code> includes a fragment shader stage, <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> is not set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the value of <a href=\"#VkStencilOpState\">VkStencilOpState</a>::<code>writeMask</code> for both <code>front</code> and <code>back</code> in <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-08744",
+          "text": "If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output state</a> or <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, the pipeline enables <a href=\"#primsrast-sampleshading\">sample shading</a>, <code>rasterizationSamples</code> is not dynamic, and the <code>pNext</code> chain includes a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a> structure, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) for every element of <code>depthAttachmentFormat</code>, <code>stencilAttachmentFormat</code> and the <code>pColorAttachmentFormats</code> array which is not <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08897",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT</code>, <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is specified either in a library or by the inclusion of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, and that state includes a vertex shader stage in <code>pStages</code>, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08898",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT</code>, and <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is not specified, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08899",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is specified either in a library or by the inclusion of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, and that state includes a vertex shader stage in <code>pStages</code>, the pipeline <strong class=\"purple\">must</strong> either define <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or include that state in a linked pipeline library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08900",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code> the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08901",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, the pipeline <strong class=\"purple\">must</strong> either define <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or include that state in a linked pipeline library",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08903",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is specified either in a library or by the inclusion of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, and that state either includes <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> or has <code>pRasterizationState-&gt;rasterizerDiscardEnable</code> set to <code>VK_FALSE</code>, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08904",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is not specified, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08906",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is specified either in a library or by the inclusion of <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT</code>, and that state either includes <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> or has <code>pRasterizationState-&gt;rasterizerDiscardEnable</code> set to <code>VK_FALSE</code>, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08907",
+          "text": "If <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>::<code>flags</code> includes <code>VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT</code>, and <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is not specified, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-08909",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> is specified either in a library or by the inclusion of <code>VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT</code>, and that state either includes <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> or has <code>pRasterizationState-&gt;rasterizerDiscardEnable</code> set to <code>VK_FALSE</code>, the pipeline <strong class=\"purple\">must</strong> define <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a> and <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or include those states in linked pipeline libraries",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-09043",
+          "text": "If <code>pDynamicState-&gt;pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>, and the format of any color attachment is <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the <code>colorWriteMask</code> member of the corresponding element of <code>pColorBlendState-&gt;pAttachments</code> <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>, <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>rasterizationSamples</code> is not dynamic, <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>blendEnable</code> is not dynamic, the <code>blendEnable</code> member of each element of <code>pColorBlendState-&gt;pAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState-&gt;pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>width</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState-&gt;pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> <strong class=\"purple\">must</strong> not statically use a variable with the <code>PrimitiveShadingRateKHR</code> built-in",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, the fragment shader <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>rasterizationSamples</code> is not dynamic, <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>blendEnable</code> is not dynamic, the <code>blendEnable</code> member of each element of <code>pColorBlendState-&gt;pAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState-&gt;pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>width</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState-&gt;pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317",
+          "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>subpass</code> includes an external format resolve attachment, the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> <strong class=\"purple\">must</strong> not statically use a variable with the <code>PrimitiveShadingRateKHR</code> built-in",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>, <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>, or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter",
+          "text": "If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent",
+          "text": "Each of <code>basePipelineHandle</code>, <code>layout</code>, and <code>renderPass</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRenderingCreateInfo": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRenderingCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPipelineCreateFlags2CreateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits2KHR\">VkPipelineCreateFlagBits2KHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkGraphicsPipelineLibraryCreateInfoEXT": {
-      "(VK_EXT_graphics_pipeline_library)": [
+      "core": [
         {
           "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGraphicsPipelineLibraryFlagBitsEXT\">VkGraphicsPipelineLibraryFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGraphicsPipelineLibraryFlagBitsEXT\">VkGraphicsPipelineLibraryFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -13054,897 +16744,1079 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442",
-          "text": " Each element of <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be unique"
+          "text": "Each element of <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDynamicStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter",
-          "text": " If <code>dynamicStateCount</code> is not <code>0</code>, <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicStateCount</code> valid <a href=\"#VkDynamicState\">VkDynamicState</a> values"
+          "text": "If <code>dynamicStateCount</code> is not <code>0</code>, <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicStateCount</code> valid <a href=\"#VkDynamicState\">VkDynamicState</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkGraphicsPipelineShaderGroupsCreateInfoNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879",
-          "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be at least <code>1</code> and as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>"
+          "text": "<code>groupCount</code> <strong class=\"purple\">must</strong> be at least <code>1</code> and as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880",
-          "text": " The sum of <code>groupCount</code> including those groups added from referenced <code>pPipelines</code> <strong class=\"purple\">must</strong> also be as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>"
+          "text": "The sum of <code>groupCount</code> including those groups added from referenced <code>pPipelines</code> <strong class=\"purple\">must</strong> also be as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881",
-          "text": " The state of the first element of <code>pGroups</code> <strong class=\"purple\">must</strong> match its equivalent within the parent&#8217;s <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>"
+          "text": "The state of the first element of <code>pGroups</code> <strong class=\"purple\">must</strong> match its equivalent within the parent&#8217;s <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882",
-          "text": " Each element of <code>pGroups</code> <strong class=\"purple\">must</strong> in combination with the rest of the pipeline state yield a valid state configuration"
+          "text": "Each element of <code>pGroups</code> <strong class=\"purple\">must</strong> in combination with the rest of the pipeline state yield a valid state configuration",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886",
-          "text": " Each element of <code>pPipelines</code> <strong class=\"purple\">must</strong> have been created with identical state to the pipeline currently created except the state that can be overridden by <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter",
-          "text": " If <code>groupCount</code> is not <code>0</code>, <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a> structures"
-        },
-        {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter",
-          "text": " If <code>pipelineCount</code> is not <code>0</code>, <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883",
-          "text": " All elements of <code>pGroups</code> <strong class=\"purple\">must</strong> use the same shader stage combinations"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884",
-          "text": " All elements of <code>pGroups</code> <strong class=\"purple\">must</strong> use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid"
+          "text": "All elements of <code>pGroups</code> <strong class=\"purple\">must</strong> use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885",
-          "text": " Mesh and regular primitive shading stages cannot be mixed across <code>pGroups</code>"
+          "text": "Mesh and regular primitive shading stages cannot be mixed across <code>pGroups</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886",
+          "text": "Each element of <code>pPipelines</code> <strong class=\"purple\">must</strong> have been created with identical state to the pipeline currently created except the state that can be overridden by <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887",
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter",
+          "text": "If <code>groupCount</code> is not <code>0</code>, <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter",
+          "text": "If <code>pipelineCount</code> is not <code>0</code>, <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         }
       ]
     },
     "VkGraphicsShaderGroupCreateInfoNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888",
-          "text": " For <code>stageCount</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>stageCount</code> apply"
+          "text": "For <code>stageCount</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>stageCount</code> apply",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889",
-          "text": " For <code>pStages</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> apply"
+          "text": "For <code>pStages</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> apply",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890",
-          "text": " For <code>pVertexInputState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code> apply"
+          "text": "For <code>pVertexInputState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code> apply",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891",
-          "text": " For <code>pTessellationState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pTessellationState</code> apply"
+          "text": "For <code>pTessellationState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pTessellationState</code> apply",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter",
-          "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength",
-          "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateRayTracingPipelinesNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03415",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03416",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903",
+          "text": "If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter",
-          "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter",
-          "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a> structures"
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter",
-          "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
+          "text": "<code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength",
-          "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent",
-          "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903",
-          "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateRayTracingPipelinesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03415",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03416",
-          "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903",
+          "text": "If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586",
-          "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587",
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>flags</code> member of elements of <code>pCreateInfos</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameter",
-          "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameter",
-          "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a> structures"
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameter",
-          "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
+          "text": "<code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylength",
-          "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parent",
-          "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_device_group)": [
-        {
-          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903",
-          "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)+(VK_KHR_deferred_host_operations)": [
-        {
-          "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>flags</code> member of elements of <code>pCreateInfos</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRayTracingPipelineCreateInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03421",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-None-09497",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> structure, <code>flags</code> must be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03422",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07984",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid ray tracing <code>VkPipeline</code> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03423",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07985",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03424",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be <code>-1</code>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07986",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07987",
+          "text": "If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07988",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07990",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, and the descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor type",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07991",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader as an array, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426",
-          "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03427",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
+          "text": "The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03428",
-          "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>"
+          "text": "The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905",
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06232",
-          "text": " The <code>stage</code> member of at least one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>"
+          "text": "The <code>stage</code> member of at least one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457",
-          "text": " <code>maxRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxRecursionDepth</code>"
+          "text": "<code>maxRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxRecursionDepth</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06898",
-          "text": " The <code>stage</code> value in all <code>pStages</code> elements <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter",
-          "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter",
-          "text": " <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoNV\">VkRayTracingShaderGroupCreateInfoNV</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength",
-          "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength",
-          "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent",
-          "text": " Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_device_generated_commands)": [
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905",
-          "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code> and <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> at the same time"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_pipeline_library)": [
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [
-        {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03458",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03459",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03460",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03461",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03462",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03463",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03588",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_ray_tracing_motion_blur)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-04948",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)": [
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code> and <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> at the same time",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineStageCreationFeedbackCount-06651",
-          "text": " If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_opacity_micromap)": [
+          "text": "If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06898",
+          "text": "The <code>stage</code> value in all <code>pStages</code> elements <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07402",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07998",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> or <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter",
+          "text": "<code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter",
+          "text": "<code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoNV\">VkRayTracingShaderGroupCreateInfoNV</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength",
+          "text": "<code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength",
+          "text": "<code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent",
+          "text": "Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRayTracingPipelineCreateInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-None-09497",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> structure, <code>flags</code> must be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03422",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid ray tracing <code>VkPipeline</code> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03423",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07985",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03424",
-          "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be <code>-1</code>"
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07986",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07987",
+          "text": "If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07988",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07990",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, and the descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor type",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07991",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader as an array, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426",
-          "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03427",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
+          "text": "The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428",
-          "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>"
+          "text": "The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905",
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425",
-          "text": " If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, the <code>stage</code> member of at least one element of <code>pStages</code>, including those implicitly added by <code>pLibraryInfo</code>, <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>"
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, the <code>stage</code> member of at least one element of <code>pStages</code>, including those implicitly added by <code>pLibraryInfo</code>, <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589",
-          "text": " <code>maxPipelineRayRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayRecursionDepth</code>"
+          "text": "<code>maxPipelineRayRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayRecursionDepth</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595",
-          "text": " If the <code><a href=\"#VK_KHR_pipeline_library\">VK_KHR_pipeline_library</a></code> extension is not enabled, <code>pLibraryInfo</code> and <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>anyHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>closestHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596",
-          "text": " If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597",
-          "text": " If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> and <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#features-rayTracingPipelineShaderGroupHandleCaptureReplay\"><code>rayTracingPipelineShaderGroupHandleCaptureReplay</code></a> <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599",
-          "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> is <code>VK_TRUE</code> and the <code>pShaderGroupCaptureReplayHandle</code> member of any element of <code>pGroups</code> is not <code>NULL</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03600",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> is <code>0</code>, <code>stageCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03601",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> is <code>0</code>, <code>groupCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602",
-          "text": " Any element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899",
-          "text": " The <code>stage</code> value in all <code>pStages</code> elements <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a> or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter",
-          "text": " If <code>stageCount</code> is not <code>0</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter",
-          "text": " If <code>groupCount</code> is not <code>0</code>, <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoKHR\">VkRayTracingShaderGroupCreateInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, <code>pLibraryInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter",
-          "text": " If <code>pLibraryInterface</code> is not <code>NULL</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRayTracingPipelineInterfaceCreateInfoKHR\">VkRayTracingPipelineInterfaceCreateInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter",
-          "text": " If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
-        },
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent",
-          "text": " Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_device_generated_commands)": [
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905",
-          "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)": [
-        {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> member is greater than <code>0</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> member is greater than <code>0</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591",
-          "text": " Each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the value of <code>maxPipelineRayRecursionDepth</code> equal to that in this pipeline"
+          "text": "Each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the value of <code>maxPipelineRayRecursionDepth</code> equal to that in this pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with a <code>layout</code> that is compatible with the <code>layout</code> in this pipeline"
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with a <code>layout</code> that is compatible with the <code>layout</code> in this pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593",
-          "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with values of the <code>maxPipelineRayPayloadSize</code> and <code>maxPipelineRayHitAttributeSize</code> members of <code>pLibraryInterface</code> equal to those in this pipeline"
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with values of the <code>maxPipelineRayPayloadSize</code> and <code>maxPipelineRayHitAttributeSize</code> members of <code>pLibraryInterface</code> equal to those in this pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code> bit set"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)": [
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595",
+          "text": "If the <code><a href=\"#VK_KHR_pipeline_library\">VK_KHR_pipeline_library</a></code> extension is not enabled, <code>pLibraryInfo</code> and <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>anyHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>closestHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596",
+          "text": "If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597",
+          "text": "If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> and <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#features-rayTracingPipelineShaderGroupHandleCaptureReplay\"><code>rayTracingPipelineShaderGroupHandleCaptureReplay</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599",
+          "text": "If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> is <code>VK_TRUE</code> and the <code>pShaderGroupCaptureReplayHandle</code> member of any element of <code>pGroups</code> is not <code>NULL</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999",
+          "text": "If <code>pLibraryInfo</code> is <code>NULL</code> or its <code>libraryCount</code> is <code>0</code>, <code>stageCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-08700",
+          "text": "If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> and either <code>pLibraryInfo</code> is <code>NULL</code> or its <code>libraryCount</code> is <code>0</code>, <code>groupCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602",
+          "text": "Any element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineStageCreationFeedbackCount-06652",
-          "text": " If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_opacity_micromap)": [
+          "text": "If <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>::<code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to <code>stageCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899",
+          "text": "The <code>stage</code> value in all <code>pStages</code> elements <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07403",
-          "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code> bit set"
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-08701",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter",
+          "text": "If <code>stageCount</code> is not <code>0</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter",
+          "text": "If <code>groupCount</code> is not <code>0</code>, <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoKHR\">VkRayTracingShaderGroupCreateInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter",
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, <code>pLibraryInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter",
+          "text": "If <code>pLibraryInterface</code> is not <code>NULL</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRayTracingPipelineInterfaceCreateInfoKHR\">VkRayTracingPipelineInterfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter",
+          "text": "If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent",
+          "text": "Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkRayTracingShaderGroupCreateInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_NV</code>, <code>VK_SHADER_STAGE_MISS_BIT_NV</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_NV</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_NV</code>, <code>VK_SHADER_STAGE_MISS_BIT_NV</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_NV</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417",
-          "text": " <code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV</code>"
+          "text": "<code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418",
-          "text": " <code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_NV</code>"
+          "text": "<code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkRayTracingShaderGroupCreateInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477",
-          "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478",
-          "text": " <code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>"
+          "text": "<code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479",
-          "text": " <code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>"
+          "text": "<code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603",
-          "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then <code>pShaderGroupCaptureReplayHandle</code> <strong class=\"purple\">must</strong> not be provided if it has not been provided on a previous call to ray tracing pipeline creation"
+          "text": "If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then <code>pShaderGroupCaptureReplayHandle</code> <strong class=\"purple\">must</strong> not be provided if it has not been provided on a previous call to ray tracing pipeline creation",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03604",
-          "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then the caller <strong class=\"purple\">must</strong> guarantee that no ray tracing pipeline creation commands with <code>pShaderGroupCaptureReplayHandle</code> provided execute simultaneously with ray tracing pipeline creation commands without <code>pShaderGroupCaptureReplayHandle</code> provided"
+          "text": "If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then the caller <strong class=\"purple\">must</strong> guarantee that no ray tracing pipeline creation commands with <code>pShaderGroupCaptureReplayHandle</code> provided execute simultaneously with ray tracing pipeline creation commands without <code>pShaderGroupCaptureReplayHandle</code> provided",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkRayTracingPipelineInterfaceCreateInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605",
-          "text": " <code>maxPipelineRayHitAttributeSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayHitAttributeSize</code>"
+          "text": "<code>maxPipelineRayHitAttributeSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayHitAttributeSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetRayTracingShaderGroupHandlesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050",
-          "text": " <code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>"
+          "text": "<code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419",
-          "text": " The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>"
+          "text": "The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleSize</code> {times} <code>groupCount</code></span>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleSize</code> × <code>groupCount</code></span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828",
+          "text": "If the <a href=\"#features-pipelineLibraryGroupHandles\">pipelineLibraryGroupHandles</a> feature is not enabled, <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)": [
-        {
-          "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051",
-          "text": " <code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>"
+          "text": "<code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483",
-          "text": " The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>"
+          "text": "The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleCaptureReplaySize</code> {times} <code>groupCount</code></span>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleCaptureReplaySize</code> × <code>groupCount</code></span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606",
-          "text": " <code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> be enabled to call this function"
+          "text": "<code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> be enabled to call this function",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829",
+          "text": "If the <a href=\"#features-pipelineLibraryGroupHandles\">pipelineLibraryGroupHandles</a> feature is not enabled, <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)": [
-        {
-          "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-06720",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCompileDeferredNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCompileDeferredNV-pipeline-04621",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCompileDeferredNV-pipeline-02237",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCompileDeferredNV-shader-02238",
-          "text": " <code>shader</code> <strong class=\"purple\">must</strong> not have been called as a deferred compile before"
+          "text": "<code>shader</code> <strong class=\"purple\">must</strong> not have been called as a deferred compile before",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCompileDeferredNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCompileDeferredNV-pipeline-parent",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetRayTracingShaderGroupStackSizeKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608",
-          "text": " The value of <code>group</code> must be less than the number of shader groups in <code>pipeline</code>"
+          "text": "The value of <code>group</code> must be less than the number of shader groups in <code>pipeline</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609",
-          "text": " The shader identified by <code>groupShader</code> in <code>group</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
+          "text": "The shader identified by <code>groupShader</code> in <code>group</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameter",
-          "text": " <code>groupShader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderGroupShaderKHR\">VkShaderGroupShaderKHR</a> value"
+          "text": "<code>groupShader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderGroupShaderKHR\">VkShaderGroupShaderKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parent",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetRayTracingPipelineStackSizeKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610",
-          "text": " <code>pipelineStackSize</code> <strong class=\"purple\">must</strong> be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call"
+          "text": "<code>pipelineStackSize</code> <strong class=\"purple\">must</strong> be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -13952,31 +17824,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyPipeline-pipeline-00765",
-          "text": " All submitted commands that refer to <code>pipeline</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>pipeline</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-pipeline-00766",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-pipeline-00767",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-pipeline-parameter",
-          "text": " If <code>pipeline</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "If <code>pipeline</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipeline-pipeline-parent",
-          "text": " If <code>pipeline</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>pipeline</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -13984,19 +17863,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreatePipelineCache-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineCache-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineCacheCreateInfo\">VkPipelineCacheCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineCacheCreateInfo\">VkPipelineCacheCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineCache-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineCache-pPipelineCache-parameter",
-          "text": " <code>pPipelineCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "<code>pPipelineCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -14004,33 +17887,38 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00768",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to the size of <code>pInitialData</code>, as returned by <code>vkGetPipelineCacheData</code> when <code>pInitialData</code> was originally retrieved"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to the size of <code>pInitialData</code>, as returned by <code>vkGetPipelineCacheData</code> when <code>pInitialData</code> was originally retrieved",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00769",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> have been retrieved from a previous call to <code>vkGetPipelineCacheData</code>"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> have been retrieved from a previous call to <code>vkGetPipelineCacheData</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892",
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCacheCreateFlagBits\">VkPipelineCacheCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCacheCreateFlagBits\">VkPipelineCacheCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-parameter",
-          "text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>initialDataSize</code> bytes"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
-        {
-          "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892",
-          "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>"
+          "text": "If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>initialDataSize</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
@@ -14038,31 +17926,38 @@
       "core": [
         {
           "vuid": "VUID-vkMergePipelineCaches-dstCache-00770",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-dstCache-parameter",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parameter",
-          "text": " <code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handles"
+          "text": "<code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-srcCacheCount-arraylength",
-          "text": " <code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-dstCache-parent",
-          "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parent",
-          "text": " Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -14070,23 +17965,28 @@
       "core": [
         {
           "vuid": "VUID-vkGetPipelineCacheData-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parameter",
-          "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "<code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineCacheData-pDataSize-parameter",
-          "text": " <code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
+          "text": "<code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineCacheData-pData-parameter",
-          "text": " If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes"
+          "text": "If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parent",
-          "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>pipelineCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -14094,15 +17994,23 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967",
-          "text": " <code>headerSize</code> <strong class=\"purple\">must</strong> be 32"
+          "text": "<code>headerSize</code> <strong class=\"purple\">must</strong> be 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968",
-          "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_HEADER_VERSION_ONE</code>"
+          "text": "<code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_HEADER_VERSION_ONE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990",
+          "text": "<code>headerSize</code> <strong class=\"purple\">must</strong> not exceed the size of the pipeline cache",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter",
-          "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCacheHeaderVersion\">VkPipelineCacheHeaderVersion</a> value"
+          "text": "<code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCacheHeaderVersion\">VkPipelineCacheHeaderVersion</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -14110,27 +18018,33 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00771",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00772",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineCache-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parameter",
-          "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineCache-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parent",
-          "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -14138,23 +18052,28 @@
       "core": [
         {
           "vuid": "VUID-VkSpecializationInfo-offset-00773",
-          "text": " The <code>offset</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than <code>dataSize</code>"
+          "text": "The <code>offset</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than <code>dataSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSpecializationInfo-pMapEntries-00774",
-          "text": " The <code>size</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dataSize</code> minus <code>offset</code>"
+          "text": "The <code>size</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dataSize</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSpecializationInfo-constantID-04911",
-          "text": " The <code>constantID</code> value of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be unique within <code>pMapEntries</code>"
+          "text": "The <code>constantID</code> value of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be unique within <code>pMapEntries</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSpecializationInfo-pMapEntries-parameter",
-          "text": " If <code>mapEntryCount</code> is not <code>0</code>, <code>pMapEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mapEntryCount</code> valid <a href=\"#VkSpecializationMapEntry\">VkSpecializationMapEntry</a> structures"
+          "text": "If <code>mapEntryCount</code> is not <code>0</code>, <code>pMapEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mapEntryCount</code> valid <a href=\"#VkSpecializationMapEntry\">VkSpecializationMapEntry</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSpecializationInfo-pData-parameter",
-          "text": " If <code>dataSize</code> is not <code>0</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "If <code>dataSize</code> is not <code>0</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
@@ -14162,53 +18081,57 @@
       "core": [
         {
           "vuid": "VUID-VkSpecializationMapEntry-constantID-00776",
-          "text": " For a <code>constantID</code> specialization constant declared in a shader, <code>size</code> <strong class=\"purple\">must</strong> match the byte size of the <code>constantID</code>. If the specialization constant is of type <code>boolean</code>, <code>size</code> <strong class=\"purple\">must</strong> be the byte size of <a href=\"#VkBool32\">VkBool32</a>"
+          "text": "For a <code>constantID</code> specialization constant declared in a shader, <code>size</code> <strong class=\"purple\">must</strong> match the byte size of the <code>constantID</code>. If the specialization constant is of type <code>boolean</code>, <code>size</code> <strong class=\"purple\">must</strong> be the byte size of <a href=\"#VkBool32\">VkBool32</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineLibraryCreateInfoKHR": {
-      "(VK_KHR_pipeline_library)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381",
-          "text": " Each element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
+          "text": "Each element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter",
-          "text": " If <code>libraryCount</code> is not <code>0</code>, <code>pLibraries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>libraryCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles"
-        }
-      ],
-      "(VK_KHR_pipeline_library)+(VK_EXT_shader_module_identifier)": [
-        {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855",
-          "text": " If any library in <code>pLibraries</code> was created with a shader stage with <a href=\"#VkPipelineShaderStageModuleIdentifierCreateInfoEXT\">VkPipelineShaderStageModuleIdentifierCreateInfoEXT</a> and <code>identifierSize</code> not equal to 0, the pipeline <strong class=\"purple\">must</strong> be created with the <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> flag set"
-        }
-      ],
-      "(VK_KHR_pipeline_library)+(VK_EXT_descriptor_buffer)": [
+          "text": "If any library in <code>pLibraries</code> was created with a shader stage with <a href=\"#VkPipelineShaderStageModuleIdentifierCreateInfoEXT\">VkPipelineShaderStageModuleIdentifierCreateInfoEXT</a> and <code>identifierSize</code> not equal to 0, the pipeline <strong class=\"purple\">must</strong> be created with the <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> flag set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-08096",
-          "text": " If any element of <code>pLibraries</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, all elements <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_KHR_pipeline_library)+(VK_EXT_pipeline_protected_access)": [
+          "text": "If any element of <code>pLibraries</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, all elements <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404",
-          "text": " If <code>pipeline</code> is being created with <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>"
+          "text": "If <code>pipeline</code> is being created with <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07405",
-          "text": " If <code>pipeline</code> is being created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>"
+          "text": "If <code>pipeline</code> is being created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07406",
-          "text": " If <code>pipeline</code> is being created with <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>"
+          "text": "If <code>pipeline</code> is being created with <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07407",
-          "text": " If <code>pipeline</code> is being created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>"
+          "text": "If <code>pipeline</code> is being created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>, every element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter",
+          "text": "If <code>libraryCount</code> is not <code>0</code>, <code>pLibraries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>libraryCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
         }
       ]
     },
@@ -14216,441 +18139,499 @@
       "core": [
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00777",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00778",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00779",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a compute pipeline"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a compute pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00780",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a graphics pipeline"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipeline-00781",
-          "text": " If the <a href=\"#features-variableMultisampleRate\"><code>variableMultisampleRate</code></a> feature is not supported, <code>pipeline</code> is a graphics pipeline, the current subpass <a href=\"#renderpass-noattachments\">uses no attachments</a>, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
+          "text": "If the <a href=\"#features-variableMultisampleRate\"><code>variableMultisampleRate</code></a> feature is not supported, <code>pipeline</code> is a graphics pipeline, the current subpass <a href=\"#renderpass-noattachments\">uses no attachments</a>, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBindPipeline-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
-        {
           "vuid": "VUID-vkCmdBindPipeline-variableSampleLocations-01525",
-          "text": " If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code>, and <code>pipeline</code> is a graphics pipeline created with a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure having its <code>sampleLocationsEnable</code> member set to <code>VK_TRUE</code> but without <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> enabled then the current render pass instance <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the <code>sampleLocationsInfo</code> specified in <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> when the pipeline was created"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code>, and <code>pipeline</code> is a graphics pipeline created with a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure having its <code>sampleLocationsEnable</code> member set to <code>VK_TRUE</code> but without <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> enabled then the current render pass instance <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the <code>sampleLocationsInfo</code> specified in <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> when the pipeline was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-None-02323",
-          "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+          "text": "This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-06721",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_pipeline_protected_access)": [
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408",
-          "text": " If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is enabled, and <code>commandBuffer</code> is a protected command buffer, <code>pipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is enabled, and <code>commandBuffer</code> is a protected command buffer, <code>pipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409",
-          "text": " If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is enabled, and <code>commandBuffer</code> is not a protected command buffer, <code>pipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>"
-        }
-      ],
-      "(VK_KHR_pipeline_library)": [
+          "text": "If the <a href=\"#features-pipelineProtectedAccess\"><code>pipelineProtectedAccess</code></a> feature is enabled, and <code>commandBuffer</code> is not a protected command buffer, <code>pipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipeline-03382",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> set"
-        }
-      ],
-      "(VK_NV_inherited_viewport_scissor)": [
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04808",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT</code>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_SCISSOR</code> enabled"
-        }
-      ],
-      "(VK_NV_inherited_viewport_scissor,VK_EXT_discard_rectangles)": [
+          "text": "If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT</code>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_SCISSOR</code> enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04809",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and <code>pipeline</code> was created with <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure and its <code>discardRectangleCount</code> member is not <code>0</code>, then the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> enabled"
-        }
-      ],
-      "(VK_EXT_provoking_vertex)": [
+          "text": "If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and <code>pipeline</code> was created with <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure and its <code>discardRectangleCount</code> member is not <code>0</code>, or the pipeline was created with <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> enabled, then the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04881",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and the <a href=\"#limits-provokingVertexModePerPipeline\"><code>provokingVertexModePerPipeline</code></a> limit is <code>VK_FALSE</code>, then pipeline&#8217;s <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>::<code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)": [
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and the <a href=\"#limits-provokingVertexModePerPipeline\"><code>provokingVertexModePerPipeline</code></a> limit is <code>VK_FALSE</code>, then pipeline&#8217;s <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>::<code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04949",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04950",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a subpass shading pipeline"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a subpass shading pipeline",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBindPipeline-pipeline-06856",
-          "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pMultisampleState</code>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)": [
+          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-06653",
-          "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
+          "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindPipeline-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindPipeline-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindPipelineShaderGroupNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893",
-          "text": " <code>groupIndex</code> <strong class=\"purple\">must</strong> be <code>0</code> or less than the effective <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> including the referenced pipelines"
+          "text": "<code>groupIndex</code> <strong class=\"purple\">must</strong> be <code>0</code> or less than the effective <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> including the referenced pipelines",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894",
-          "text": " The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
+          "text": "The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895",
-          "text": " The same restrictions as <a href=\"#vkCmdBindPipeline\">vkCmdBindPipeline</a> apply as if the bound pipeline was created only with the Shader Group from the <code>groupIndex</code> information"
+          "text": "The same restrictions as <a href=\"#vkCmdBindPipeline\">vkCmdBindPipeline</a> apply as if the bound pipeline was created only with the Shader Group from the <code>groupIndex</code> information",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPipelineExecutablePropertiesKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270",
-          "text": " The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271",
-          "text": " The <code>pipeline</code> member of <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
+          "text": "The <code>pipeline</code> member of <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter",
-          "text": " <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInfoKHR\">VkPipelineInfoKHR</a> structure"
+          "text": "<code>pPipelineInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInfoKHR\">VkPipelineInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter",
-          "text": " <code>pExecutableCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pExecutableCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pExecutableCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pExecutableCount</code> <a href=\"#VkPipelineExecutablePropertiesKHR\">VkPipelineExecutablePropertiesKHR</a> structures"
+          "text": "If the value referenced by <code>pExecutableCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pExecutableCount</code> <a href=\"#VkPipelineExecutablePropertiesKHR\">VkPipelineExecutablePropertiesKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineExecutablePropertiesKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineExecutablePropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutablePropertiesKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPipelinePropertiesEXT": {
-      "(VK_EXT_pipeline_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPipelinePropertiesEXT-pipeline-06738",
-          "text": " The <code>pipeline</code> member of <code>pPipelineInfo</code> must have been created with <code>device</code>"
+          "text": "The <code>pipeline</code> member of <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739",
-          "text": " <code>pPipelineProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelinePropertiesIdentifierEXT\">VkPipelinePropertiesIdentifierEXT</a> structure"
+          "text": "<code>pPipelineProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelinePropertiesIdentifierEXT\">VkPipelinePropertiesIdentifierEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelinePropertiesEXT-None-06766",
-          "text": " The <a href=\"#features-pipelinePropertiesIdentifier\"><code>pipelinePropertiesIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-pipelinePropertiesIdentifier\"><code>pipelinePropertiesIdentifier</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelinePropertiesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameter",
-          "text": " <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInfoEXT\">VkPipelineInfoEXT</a> structure"
+          "text": "<code>pPipelineInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInfoEXT\">VkPipelineInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelinePropertiesIdentifierEXT": {
-      "(VK_EXT_pipeline_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelinePropertiesIdentifierEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelinePropertiesIdentifierEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineInfoKHR": {
-      "(VK_KHR_pipeline_executable_properties,VK_EXT_pipeline_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInfoKHR-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPipelineExecutableStatisticsKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272",
-          "text": " The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273",
-          "text": " The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
+          "text": "The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274",
-          "text": " The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR</code>"
+          "text": "The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter",
-          "text": " <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure"
+          "text": "<code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter",
-          "text": " <code>pStatisticCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pStatisticCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter",
-          "text": " If the value referenced by <code>pStatisticCount</code> is not <code>0</code>, and <code>pStatistics</code> is not <code>NULL</code>, <code>pStatistics</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pStatisticCount</code> <a href=\"#VkPipelineExecutableStatisticKHR\">VkPipelineExecutableStatisticKHR</a> structures"
+          "text": "If the value referenced by <code>pStatisticCount</code> is not <code>0</code>, and <code>pStatistics</code> is not <code>NULL</code>, <code>pStatistics</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pStatisticCount</code> <a href=\"#VkPipelineExecutableStatisticKHR\">VkPipelineExecutableStatisticKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineExecutableInfoKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275",
-          "text": " <code>executableIndex</code> <strong class=\"purple\">must</strong> be less than the number of pipeline executables associated with <code>pipeline</code> as returned in the <code>pExecutableCount</code> parameter of <code>vkGetPipelineExecutablePropertiesKHR</code>"
+          "text": "<code>executableIndex</code> <strong class=\"purple\">must</strong> be less than the number of pipeline executables associated with <code>pipeline</code> as returned in the <code>pExecutableCount</code> parameter of <code>vkGetPipelineExecutablePropertiesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutableInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineExecutableStatisticKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineExecutableStatisticKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutableStatisticKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPipelineExecutableInternalRepresentationsKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276",
-          "text": " The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277",
-          "text": " The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
+          "text": "The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278",
-          "text": " The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>"
+          "text": "The <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter",
-          "text": " <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure"
+          "text": "<code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter",
-          "text": " <code>pInternalRepresentationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pInternalRepresentationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter",
-          "text": " If the value referenced by <code>pInternalRepresentationCount</code> is not <code>0</code>, and <code>pInternalRepresentations</code> is not <code>NULL</code>, <code>pInternalRepresentations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInternalRepresentationCount</code> <a href=\"#VkPipelineExecutableInternalRepresentationKHR\">VkPipelineExecutableInternalRepresentationKHR</a> structures"
+          "text": "If the value referenced by <code>pInternalRepresentationCount</code> is not <code>0</code>, and <code>pInternalRepresentations</code> is not <code>NULL</code>, <code>pInternalRepresentations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInternalRepresentationCount</code> <a href=\"#VkPipelineExecutableInternalRepresentationKHR\">VkPipelineExecutableInternalRepresentationKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineExecutableInternalRepresentationKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetShaderInfoAMD": {
-      "(VK_AMD_shader_info)": [
+      "core": [
         {
           "vuid": "VUID-vkGetShaderInfoAMD-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter",
-          "text": " <code>shaderStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value"
+          "text": "<code>shaderStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter",
-          "text": " <code>infoType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderInfoTypeAMD\">VkShaderInfoTypeAMD</a> value"
+          "text": "<code>infoType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderInfoTypeAMD\">VkShaderInfoTypeAMD</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter",
-          "text": " <code>pInfoSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
+          "text": "<code>pInfoSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter",
-          "text": " If the value referenced by <code>pInfoSize</code> is not <code>0</code>, and <code>pInfo</code> is not <code>NULL</code>, <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfoSize</code> bytes"
+          "text": "If the value referenced by <code>pInfoSize</code> is not <code>0</code>, and <code>pInfo</code> is not <code>NULL</code>, <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfoSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineCompilerControlCreateInfoAMD": {
-      "(VK_AMD_pipeline_compiler_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask",
-          "text": " <code>compilerControlFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>compilerControlFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineCreationFeedbackCreateInfo": {
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter",
-          "text": " <code>pPipelineCreationFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structure"
+          "text": "<code>pPipelineCreationFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter",
-          "text": " If <code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, <code>pPipelineStageCreationFeedbacks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineStageCreationFeedbackCount</code> <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structures"
+          "text": "If <code>pipelineStageCreationFeedbackCount</code> is not <code>0</code>, <code>pPipelineStageCreationFeedbacks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineStageCreationFeedbackCount</code> <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -14658,19 +18639,23 @@
       "core": [
         {
           "vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632",
-          "text": " <code>pfnAllocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkAllocationFunction\">PFN_vkAllocationFunction</a>"
+          "text": "<code>pfnAllocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkAllocationFunction\">PFN_vkAllocationFunction</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633",
-          "text": " <code>pfnReallocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkReallocationFunction\">PFN_vkReallocationFunction</a>"
+          "text": "<code>pfnReallocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkReallocationFunction\">PFN_vkReallocationFunction</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634",
-          "text": " <code>pfnFree</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkFreeFunction\">PFN_vkFreeFunction</a>"
+          "text": "<code>pfnFree</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkFreeFunction\">PFN_vkFreeFunction</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635",
-          "text": " If either of <code>pfnInternalAllocation</code> or <code>pfnInternalFree</code> is not <code>NULL</code>, both <strong class=\"purple\">must</strong> be valid callbacks"
+          "text": "If either of <code>pfnInternalAllocation</code> or <code>pfnInternalFree</code> is not <code>NULL</code>, both <strong class=\"purple\">must</strong> be valid callbacks",
+          "page": "vkspec"
         }
       ]
     },
@@ -14678,47 +18663,55 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter",
-          "text": " <code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a> structure"
+          "text": "<code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceMemoryProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter",
-          "text": " <code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties2\">VkPhysicalDeviceMemoryProperties2</a> structure"
+          "text": "<code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties2\">VkPhysicalDeviceMemoryProperties2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMemoryProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceMemoryBudgetPropertiesEXT\">VkPhysicalDeviceMemoryBudgetPropertiesEXT</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceMemoryBudgetPropertiesEXT\">VkPhysicalDeviceMemoryBudgetPropertiesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMemoryBudgetPropertiesEXT": {
-      "(VK_EXT_memory_budget)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -14726,1369 +18719,1725 @@
       "core": [
         {
           "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713",
-          "text": " <code>pAllocateInfo-&gt;allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryHeaps</code>[<code>memindex</code>].<code>size</code> where <code>memindex</code> = <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypes</code>[<code>pAllocateInfo-&gt;memoryTypeIndex</code>].<code>heapIndex</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from"
+          "text": "<code>pAllocateInfo-&gt;allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryHeaps</code>[<code>memindex</code>].<code>size</code> where <code>memindex</code> = <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypes</code>[<code>pAllocateInfo-&gt;memoryTypeIndex</code>].<code>heapIndex</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714",
-          "text": " <code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypeCount</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from"
+          "text": "<code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypeCount</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790",
+          "text": "If the <a href=\"#features-deviceCoherentMemory\"><code>deviceCoherentMemory</code></a> feature is not enabled, <code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> not identify a memory type supporting <code>VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-maxMemoryAllocationCount-04101",
-          "text": " There <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxMemoryAllocationCount</code> device memory allocations currently allocated on the device"
+          "text": "There <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxMemoryAllocationCount</code> device memory allocations currently allocated on the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter",
-          "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> structure"
+          "text": "<code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateMemory-pMemory-parameter",
-          "text": " <code>pMemory</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        }
-      ],
-      "(VK_AMD_device_coherent_memory)": [
-        {
-          "vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790",
-          "text": " If the <a href=\"#features-deviceCoherentMemory\"><code>deviceCoherentMemory</code></a> feature is not enabled, <code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> not identify a memory type supporting <code>VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD</code>"
+          "text": "<code>pMemory</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryAllocateInfo": {
       "core": [
         {
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07897",
+          "text": "If the parameters do not define an <a href=\"#memory-import-operation\">import or export operation</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkMemoryAllocateInfo-None-06657",
-          "text": " The parameters <strong class=\"purple\">must</strong> not define more than one <a href=\"#memory-import-operation\">import operation</a>"
+          "text": "The parameters <strong class=\"purple\">must</strong> not define more than one <a href=\"#memory-import-operation\">import operation</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO</code>"
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07899",
+          "text": "If the parameters define an export operation and the handle type is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> , <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>, <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryWin32HandleInfoKHR\">VkExportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a>, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>, <a href=\"#VkImportMemoryFdInfoKHR\">VkImportMemoryFdInfoKHR</a>, <a href=\"#VkImportMemoryHostPointerInfoEXT\">VkImportMemoryHostPointerInfoEXT</a>, <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportMemoryZirconHandleInfoFUCHSIA\">VkImportMemoryZirconHandleInfoFUCHSIA</a>, <a href=\"#VkImportMetalBufferInfoEXT\">VkImportMetalBufferInfoEXT</a>, <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a>, <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>, or <a href=\"#VkMemoryPriorityAllocateInfoEXT\">VkMemoryPriorityAllocateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
-        }
-      ],
-      "!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638",
-          "text": " <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
-        {
           "vuid": "VUID-VkMemoryAllocateInfo-buffer-06380",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-image-06381",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code>"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-06382",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a>::<code>size</code> value retrieved by <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> or <a href=\"#vkGetBufferMemoryRequirements\">vkGetBufferMemoryRequirements</a> for image-based or buffer-based collections respectively"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a>::<code>size</code> value retrieved by <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> or <a href=\"#vkGetBufferMemoryRequirements\">vkGetBufferMemoryRequirements</a> for image-based or buffer-based collections respectively",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-06383",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-image-06384",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>image</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code> pointer"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>image</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code> pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-buffer-06385",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>buffer</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code> pointer"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>buffer</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code> pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386",
-          "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be from <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> as retrieved by <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>"
-        }
-      ],
-      "(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639",
-          "text": " If the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure, and any of the handle types specified in <code>VkExportMemoryAllocateInfo</code>::<code>handleTypes</code> require a dedicated allocation, as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> in <code>VkExternalImageFormatProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code> or <code>VkExternalBufferProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkMemoryDedicatedAllocateInfo</code> or <code>VkDedicatedAllocationMemoryAllocateInfoNV</code> structure with either its <code>image</code> or <code>buffer</code> member set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_KHR_external_memory)+(VK_NV_external_memory)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a> or <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a> structure"
-        }
-      ],
-      "(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a> structure"
-        }
-      ],
-      "(VK_KHR_external_memory_fd)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742",
-          "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created"
+          "text": "If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be from <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> as retrieved by <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648",
-          "text": " If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryFdPropertiesKHR\">vkGetMemoryFdPropertiesKHR</a>"
-        }
-      ],
-      "(VK_KHR_external_memory+VK_KHR_device_group)": [
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639",
+          "text": "If the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure, and any of the handle types specified in <code>VkExportMemoryAllocateInfo</code>::<code>handleTypes</code> require a dedicated allocation, as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> in <code>VkExternalImageFormatProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, or by <a href=\"#vkGetPhysicalDeviceExternalBufferProperties\">vkGetPhysicalDeviceExternalBufferProperties</a> in <code>VkExternalBufferProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkMemoryDedicatedAllocateInfo</code> or <code>VkDedicatedAllocationMemoryAllocateInfoNV</code> structure with either its <code>image</code> or <code>buffer</code> member set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a> or <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742",
+          "text": "If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-None-00643",
-          "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a> <strong class=\"purple\">must</strong> match the mask specified when the payload being imported was allocated"
+          "text": "If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a> <strong class=\"purple\">must</strong> match the mask specified when the payload being imported was allocated",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-None-00644",
-          "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to <a href=\"#vkAllocateMemory\">vkAllocateMemory</a> <strong class=\"purple\">must</strong> match the list of physical devices that comprise the logical device on which the payload was originally allocated"
-        }
-      ],
-      "(VK_KHR_external_memory_win32)": [
+          "text": "If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to <a href=\"#vkAllocateMemory\">vkAllocateMemory</a> <strong class=\"purple\">must</strong> match the list of physical devices that comprise the logical device on which the payload was originally allocated",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645",
-          "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryWin32HandlePropertiesKHR\">vkGetMemoryWin32HandlePropertiesKHR</a>"
+          "text": "If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryWin32HandlePropertiesKHR\">vkGetMemoryWin32HandlePropertiesKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743",
-          "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created"
+          "text": "If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match the size specified when creating the Direct3D 12 heap from which the payload was extracted"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match the size specified when creating the Direct3D 12 heap from which the payload was extracted",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648",
+          "text": "If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryFdPropertiesKHR\">vkGetMemoryFdPropertiesKHR</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872",
-          "text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VkMemoryAllocateInfo</code>::<code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> not indicate a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
-        }
-      ],
-      "(VK_EXT_external_memory_host)": [
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VkMemoryAllocateInfo</code>::<code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> not indicate a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744",
-          "text": " If the parameters define an import operation and the external handle is a host pointer, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryHostPointerPropertiesEXT\">vkGetMemoryHostPointerPropertiesEXT</a>"
+          "text": "If the parameters define an import operation and the external handle is a host pointer, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryHostPointerPropertiesEXT\">vkGetMemoryHostPointerPropertiesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745",
-          "text": " If the parameters define an import operation and the external handle is a host pointer, <code>allocationSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
-        }
-      ],
-      "(VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation)": [
+          "text": "If the parameters define an import operation and the external handle is a host pointer, <code>allocationSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02805",
-          "text": " If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation)": [
+          "text": "If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02806",
-          "text": " If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be the size returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer"
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be the size returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain does not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure or <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer <strong class=\"purple\">must</strong> have a <code>AHardwareBuffer_Desc</code>::<code>format</code> of <code>AHARDWAREBUFFER_FORMAT_BLOB</code> and a <code>AHardwareBuffer_Desc</code>::<code>usage</code> that includes <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>"
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain does not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure or <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer <strong class=\"purple\">must</strong> have a <code>AHardwareBuffer_Desc</code>::<code>format</code> of <code>AHARDWAREBUFFER_FORMAT_BLOB</code> and a <code>AHardwareBuffer_Desc</code>::<code>usage</code> that includes <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer"
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874",
-          "text": " If the parameters do not define an import operation, and the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If the parameters do not define an import operation, and the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-07900",
+          "text": "If the parameters define an export operation, the handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> does not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-07901",
+          "text": "If the parameters define an export operation, the handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>buffer</code> set to a valid <a href=\"#VkBuffer\">VkBuffer</a> object, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> <strong class=\"purple\">must</strong> include at least one of <code>AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER</code>, <code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code> or <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>"
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> <strong class=\"purple\">must</strong> include at least one of <code>AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER</code>, <code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code> or <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the format of <code>image</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code> or the format returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>format</code> for the Android hardware buffer"
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the format of <code>image</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code> or the format returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>format</code> for the Android hardware buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the width, height, and array layer dimensions of <code>image</code> and the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code> <strong class=\"purple\">must</strong> be identical"
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the width, height, and array layer dimensions of <code>image</code> and the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code> <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> includes <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have a complete mipmap chain"
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> includes <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have a complete mipmap chain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> does not include <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have exactly one mipmap level"
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <a href=\"#AHardwareBuffer\">AHardwareBuffer</a>::<code>usage</code> does not include <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have exactly one mipmap level",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390",
-          "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each bit set in the usage of <code>image</code> <strong class=\"purple\">must</strong> be listed in <a href=\"#memory-external-android-hardware-buffer-usage\">AHardwareBuffer Usage Equivalence</a>, and if there is a corresponding <code>AHARDWAREBUFFER_USAGE</code> bit listed that bit <strong class=\"purple\">must</strong> be included in the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code>::<code>usage</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+          "text": "If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each bit set in the usage of <code>image</code> <strong class=\"purple\">must</strong> be listed in <a href=\"#memory-external-android-hardware-buffer-usage\">AHardwareBuffer Usage Equivalence</a>, and if there is a corresponding <code>AHARDWAREBUFFER_USAGE</code> bit listed that bit <strong class=\"purple\">must</strong> be included in the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-screenBufferImport-08941",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>::<code>screenBufferImport</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-08942",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be the size returned by <a href=\"#vkGetScreenBufferPropertiesQNX\">vkGetScreenBufferPropertiesQNX</a> for the QNX Screen buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetScreenBufferPropertiesQNX\">vkGetScreenBufferPropertiesQNX</a> for the QNX Screen buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-08944",
+          "text": "If the parameters define an import operation, the external handle is a QNX Screen buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the QNX Screen&#8217;s buffer must be a <a href=\"#memory-external-screen-buffer-validity\">valid QNX Screen buffer</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-08945",
+          "text": "If the parameters define an import operation, the external handle is an QNX Screen buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the format of <code>image</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code> or the format returned by <a href=\"#vkGetScreenBufferPropertiesQNX\">vkGetScreenBufferPropertiesQNX</a> in <a href=\"#VkScreenBufferFormatPropertiesQNX\">VkScreenBufferFormatPropertiesQNX</a>::<code>format</code> for the QNX Screen buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-08946",
+          "text": "If the parameters define an import operation, the external handle is a QNX Screen buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the width, height, and array layer dimensions of <code>image</code> and the QNX Screen buffer&#8217;s <code>_screen_buffer</code> must be identical",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329",
-          "text": " If <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
+          "text": "If <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-flags-03330",
-          "text": " If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\"><code>bufferDeviceAddressCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\"><code>bufferDeviceAddressCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-flags-03331",
-          "text": " If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>, the <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>, the <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332",
+          "text": "If the <code>pNext</code> chain includes a <code>VkImportMemoryHostPointerInfoEXT</code> structure, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333",
-          "text": " If the parameters define an import operation, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332",
-          "text": " If the <code>pNext</code> chain includes a <code>VkImportMemoryHostPointerInfoEXT</code> structure, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_FUCHSIA_external_memory)": [
-        {
-          "vuid": "VUID-VkMemoryAllocateInfo-None-04749",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be an index identifying a memory type from the <code>memoryTypeBits</code> field of the <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure populated by a call to <a href=\"#vkGetMemoryZirconHandlePropertiesFUCHSIA\">vkGetMemoryZirconHandlePropertiesFUCHSIA</a>"
+          "text": "If the parameters define an import operation, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-04750",
-          "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and <strong class=\"purple\">must</strong> be less than or equal to the size of the VMO as determined by <code>zx_vmo_get_size</code>(<code>handle</code>) where <code>handle</code> is the VMO handle to the imported external memory"
-        }
-      ],
-      "(VK_EXT_metal_objects)": [
+          "vuid": "VUID-VkMemoryAllocateInfo-None-04749",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be an index identifying a memory type from the <code>memoryTypeBits</code> field of the <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure populated by a call to <a href=\"#vkGetMemoryZirconHandlePropertiesFUCHSIA\">vkGetMemoryZirconHandlePropertiesFUCHSIA</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07902",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07903",
+          "text": "If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the VMO as determined by <code>zx_vmo_get_size</code>(<code>handle</code>) where <code>handle</code> is the VMO handle to the imported external memory",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-06780",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>, <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryWin32HandleInfoKHR\">VkExportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a>, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>, <a href=\"#VkImportMemoryFdInfoKHR\">VkImportMemoryFdInfoKHR</a>, <a href=\"#VkImportMemoryHostPointerInfoEXT\">VkImportMemoryHostPointerInfoEXT</a>, <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportMemoryZirconHandleInfoFUCHSIA\">VkImportMemoryZirconHandleInfoFUCHSIA</a>, <a href=\"#VkImportMetalBufferInfoEXT\">VkImportMetalBufferInfoEXT</a>, <a href=\"#VkImportScreenBufferInfoQNX\">VkImportScreenBufferInfoQNX</a>, <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a>, <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>, or <a href=\"#VkMemoryPriorityAllocateInfoEXT\">VkMemoryPriorityAllocateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryAllocateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryDedicatedAllocateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432",
-          "text": " At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964",
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>     and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer     , <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the     <code>VkMemoryRequirements</code>::<code>size</code> of the image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> have been created without <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> have been created without <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>flags</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>image</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01433",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
-        },
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01435",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the memory is not an imported Android Hardware Buffer, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> have been created without <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-02965",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the memory is not an imported Android Hardware Buffer, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)": [
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>     and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer     , <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the     <code>VkMemoryRequirements</code>::<code>size</code> of the buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436",
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> have been created without <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> must be identical to the image associated with the imported memory"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)": [
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_FUCHSIA_external_memory)": [
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-04751",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-04752",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter",
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter",
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>image</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDedicatedAllocationMemoryAllocateInfoNV": {
-      "(VK_NV_dedicated_allocation)": [
+      "core": [
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649",
-          "text": " At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the image <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the image <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the buffer <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the buffer <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV</code>"
-        },
-        {
-          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>image</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)": [
-        {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter",
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter",
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>image</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryPriorityAllocateInfoEXT": {
-      "(VK_EXT_memory_priority)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602",
-          "text": " <code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
+          "text": "<code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetDeviceMemoryPriorityEXT": {
-      "(VK_EXT_pageable_device_local_memory)": [
+      "core": [
         {
           "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-priority-06258",
-          "text": " <code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
+          "text": "<code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMemoryAllocateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656",
-          "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
+          "text": "The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMemoryAllocateInfoNV": {
-      "(VK_NV_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMemoryWin32HandleInfoKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657",
-          "text": " If <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportMemoryWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>"
+          "text": "If <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportMemoryWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter",
-          "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
+          "text": "If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryWin32HandleInfoKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659",
-          "text": " The memory from which <code>handle</code> was exported, or the memory named by <code>name</code> <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>"
+          "text": "The memory from which <code>handle</code> was exported, or the memory named by <code>name</code> <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439",
-          "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handleType</code> is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440",
-          "text": " If <code>handleType</code> is not <code>0</code> and <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid memory resource of the type specified by <code>handleType</code>"
+          "text": "If <code>handleType</code> is not <code>0</code> and <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid memory resource of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661",
-          "text": " If <code>handleType</code> is not <code>0</code> and <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
+          "text": "If <code>handleType</code> is not <code>0</code> and <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441",
-          "text": " if <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518",
-          "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
+          "text": "If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519",
-          "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
+          "text": "If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter",
-          "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryWin32HandleKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter",
-          "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetWin32HandleInfoKHR\">VkMemoryGetWin32HandleInfoKHR</a> structure"
+          "text": "<code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetWin32HandleInfoKHR\">VkMemoryGetWin32HandleInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter",
-          "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
+          "text": "<code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryGetWin32HandleInfoKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663",
-          "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetMemoryWin32HandleKHR\">vkGetMemoryWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>memory</code> and <code>handleType</code>"
+          "text": "If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetMemoryWin32HandleKHR\">vkGetMemoryWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>memory</code> and <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryWin32HandlePropertiesKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665",
-          "text": " <code>handle</code> <strong class=\"purple\">must</strong> be an external memory handle created outside of the Vulkan API"
+          "text": "<code>handle</code> <strong class=\"purple\">must</strong> point to a valid Windows memory handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be one of the handle types defined as opaque"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> not be one of the handle types defined as opaque",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter",
-          "text": " <code>pMemoryWin32HandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryWin32HandlePropertiesKHR\">VkMemoryWin32HandlePropertiesKHR</a> structure"
+          "text": "<code>pMemoryWin32HandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryWin32HandlePropertiesKHR\">VkMemoryWin32HandlePropertiesKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryWin32HandlePropertiesKHR": {
-      "(VK_KHR_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMemoryWin32HandleInfoNV": {
-      "(VK_NV_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter",
-          "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
+          "text": "If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryWin32HandleInfoNV": {
-      "(VK_NV_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not have more than one bit set"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> not have more than one bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328",
-          "text": " <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle to memory, obtained as specified by <code>handleType</code>"
+          "text": "<code>handle</code> <strong class=\"purple\">must</strong> be a valid handle to memory, obtained as specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryWin32HandleNV": {
-      "(VK_NV_external_memory_win32)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a flag specified in <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>::<code>handleTypes</code> when allocating <code>memory</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a flag specified in <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>::<code>handleTypes</code> when allocating <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter",
-          "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
+          "text": "<code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryFdInfoKHR": {
-      "(VK_KHR_external_memory_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668",
-          "text": " The memory from which <code>fd</code> was exported <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>"
+          "text": "The memory from which <code>fd</code> was exported <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670",
-          "text": " If <code>handleType</code> is not <code>0</code>, <code>fd</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
+          "text": "If <code>handleType</code> is not <code>0</code>, <code>fd</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746",
-          "text": " The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External memory handle types compatibility</a>"
+          "text": "The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External memory handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520",
-          "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
+          "text": "<code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter",
-          "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryFdKHR": {
-      "(VK_KHR_external_memory_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryFdKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter",
-          "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetFdInfoKHR\">VkMemoryGetFdInfoKHR</a> structure"
+          "text": "<code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetFdInfoKHR\">VkMemoryGetFdInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter",
-          "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
+          "text": "<code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryGetFdInfoKHR": {
-      "(VK_KHR_external_memory_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryFdPropertiesKHR": {
-      "(VK_KHR_external_memory_fd)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673",
-          "text": " <code>fd</code> <strong class=\"purple\">must</strong> be an external memory handle created outside of the Vulkan API"
+          "text": "<code>fd</code> <strong class=\"purple\">must</strong> point to a valid POSIX file descriptor memory handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> not be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter",
-          "text": " <code>pMemoryFdProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryFdPropertiesKHR\">VkMemoryFdPropertiesKHR</a> structure"
+          "text": "<code>pMemoryFdProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryFdPropertiesKHR\">VkMemoryFdPropertiesKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryFdPropertiesKHR": {
-      "(VK_KHR_external_memory_fd)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryHostPointerInfoEXT": {
-      "(VK_EXT_external_memory_host)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported in <a href=\"#VkExternalMemoryProperties\">VkExternalMemoryProperties</a>"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported in <a href=\"#VkExternalMemoryProperties\">VkExternalMemoryProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748",
-          "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>"
+          "text": "If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749",
-          "text": " <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host mapped foreign memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host mapped foreign memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameter",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryHostPointerPropertiesEXT": {
-      "(VK_EXT_external_memory_host)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753",
-          "text": " <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host memory"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755",
-          "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host mapped foreign memory"
+          "text": "If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host mapped foreign memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameter",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter",
-          "text": " <code>pMemoryHostPointerProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryHostPointerPropertiesEXT\">VkMemoryHostPointerPropertiesEXT</a> structure"
+          "text": "<code>pMemoryHostPointerProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryHostPointerPropertiesEXT\">VkMemoryHostPointerPropertiesEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryHostPointerPropertiesEXT": {
-      "(VK_EXT_external_memory_host)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportAndroidHardwareBufferInfoANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880",
-          "text": " If <code>buffer</code> is not <code>NULL</code>, Android hardware buffers <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
+          "text": "If <code>buffer</code> is not <code>NULL</code>, Android hardware buffers <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881",
-          "text": " If <code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with <code>AHardwareBuffer_Desc</code>::<code>usage</code> compatible with Vulkan as described in <a href=\"#memory-external-android-hardware-buffer\">Android Hardware Buffers</a>"
+          "text": "If <code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with <code>AHardwareBuffer_Desc</code>::<code>usage</code> compatible with Vulkan as described in <a href=\"#memory-external-android-hardware-buffer\">Android Hardware Buffers</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to an <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to an <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryAndroidHardwareBufferANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetAndroidHardwareBufferInfoANDROID\">VkMemoryGetAndroidHardwareBufferInfoANDROID</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetAndroidHardwareBufferInfoANDROID\">VkMemoryGetAndroidHardwareBufferInfoANDROID</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter",
-          "text": " <code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid pointer to an <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value"
+          "text": "<code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid pointer to an <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryGetAndroidHardwareBufferInfoANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882",
-          "text": " <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
+          "text": "<code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883",
-          "text": " If the <code>pNext</code> chain of the <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> used to allocate <code>memory</code> included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with non-<code>NULL</code> <code>image</code> member, then that <code>image</code> <strong class=\"purple\">must</strong> already be bound to <code>memory</code>"
+          "text": "If the <code>pNext</code> chain of the <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> used to allocate <code>memory</code> included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with non-<code>NULL</code> <code>image</code> member, then that <code>image</code> <strong class=\"purple\">must</strong> already be bound to <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAndroidHardwareBufferPropertiesANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with at least one of the <code>AHARDWAREBUFFER_USAGE_GPU_*</code> flags in its <code>AHardwareBuffer_Desc</code>::<code>usage</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with at least one of the <code>AHARDWAREBUFFER_USAGE_GPU_*</code> flags in its <code>AHardwareBuffer_Desc</code>::<code>usage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#AHardwareBuffer\">AHardwareBuffer</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAndroidHardwareBufferPropertiesANDROID\">VkAndroidHardwareBufferPropertiesANDROID</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAndroidHardwareBufferPropertiesANDROID\">VkAndroidHardwareBufferPropertiesANDROID</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAndroidHardwareBufferPropertiesANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAndroidHardwareBufferFormatProperties2ANDROID\">VkAndroidHardwareBufferFormatProperties2ANDROID</a> or <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAndroidHardwareBufferFormatProperties2ANDROID\">VkAndroidHardwareBufferFormatProperties2ANDROID</a>, <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>, or <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkAndroidHardwareBufferFormatPropertiesANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAndroidHardwareBufferFormatProperties2ANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
+      "core": [
         {
           "vuid": "VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkAndroidHardwareBufferFormatResolvePropertiesANDROID": {
+      "core": [
+        {
+          "vuid": "VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryRemoteAddressNV": {
-      "(VK_NV_external_memory_rdma)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryRemoteAddressNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter",
-          "text": " <code>pMemoryGetRemoteAddressInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetRemoteAddressInfoNV\">VkMemoryGetRemoteAddressInfoNV</a> structure"
+          "text": "<code>pMemoryGetRemoteAddressInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetRemoteAddressInfoNV\">VkMemoryGetRemoteAddressInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryRemoteAddressNV-pAddress-parameter",
-          "text": " <code>pAddress</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRemoteAddressNV\">VkRemoteAddressNV</a> value"
+          "text": "<code>pAddress</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRemoteAddressNV\">VkRemoteAddressNV</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryGetRemoteAddressInfoNV": {
-      "(VK_NV_external_memory_rdma)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryZirconHandleInfoFUCHSIA": {
-      "(VK_FUCHSIA_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772",
-          "text": " <code>handle</code> must be a valid VMO handle"
+          "text": "<code>handle</code> <strong class=\"purple\">must</strong> be a valid VMO handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter",
-          "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryZirconHandlePropertiesFUCHSIA": {
-      "(VK_FUCHSIA_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774",
-          "text": " <code>zirconHandle</code> must reference a valid VMO"
+          "text": "<code>zirconHandle</code> must reference a valid VMO",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameter",
-          "text": " <code>pMemoryZirconHandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure"
+          "text": "<code>pMemoryZirconHandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryZirconHandlePropertiesFUCHSIA": {
-      "(VK_FUCHSIA_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMemoryZirconHandleFUCHSIA": {
-      "(VK_FUCHSIA_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter",
-          "text": " <code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetZirconHandleInfoFUCHSIA\">VkMemoryGetZirconHandleInfoFUCHSIA</a> structure"
+          "text": "<code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetZirconHandleInfoFUCHSIA\">VkMemoryGetZirconHandleInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameter",
-          "text": " <code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value"
+          "text": "<code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryGetZirconHandleInfoFUCHSIA": {
-      "(VK_FUCHSIA_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in the <code>handleTypes</code> field of the <code>VkExportMemoryAllocateInfo</code> structure when the external memory was allocated"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> have been included in the <code>handleTypes</code> field of the <code>VkExportMemoryAllocateInfo</code> structure when the external memory was allocated",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalObjectCreateInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalObjectCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameter",
-          "text": " If <code>exportObjectType</code> is not <code>0</code>, <code>exportObjectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExportMetalObjectTypeFlagBitsEXT\">VkExportMetalObjectTypeFlagBitsEXT</a> value"
+          "text": "If <code>exportObjectType</code> is not <code>0</code>, <code>exportObjectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExportMetalObjectTypeFlagBitsEXT\">VkExportMetalObjectTypeFlagBitsEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkExportMetalObjectsEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-vkExportMetalObjectsEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkExportMetalObjectsEXT-pMetalObjectsInfo-parameter",
-          "text": " <code>pMetalObjectsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExportMetalObjectsInfoEXT\">VkExportMetalObjectsInfoEXT</a> structure"
+          "text": "<code>pMetalObjectsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExportMetalObjectsInfoEXT\">VkExportMetalObjectsInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalObjectsInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06791",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalDeviceInfoEXT\">VkExportMetalDeviceInfoEXT</a> structure, the <a href=\"#VkInstance\">VkInstance</a> <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure in the <a href=\"#vkCreateInstance\">vkCreateInstance</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalDeviceInfoEXT\">VkExportMetalDeviceInfoEXT</a> structure, the <a href=\"#VkInstance\">VkInstance</a> <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure in the <a href=\"#vkCreateInstance\">vkCreateInstance</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06792",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a> structure, the <a href=\"#VkInstance\">VkInstance</a> <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure in the <a href=\"#vkCreateInstance\">vkCreateInstance</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a> structure, the <a href=\"#VkInstance\">VkInstance</a> <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure in the <a href=\"#vkCreateInstance\">vkCreateInstance</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06793",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a> structure, the <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> in its <code>memory</code> member <strong class=\"purple\">must</strong> have been allocated with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> structure in the <a href=\"#vkAllocateMemory\">vkAllocateMemory</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a> structure, the <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> in its <code>memory</code> member <strong class=\"purple\">must</strong> have been allocated with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> structure in the <a href=\"#vkAllocateMemory\">vkAllocateMemory</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06794",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, exactly one of its <code>image</code>, <code>imageView</code>, or <code>bufferView</code> members <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, exactly one of its <code>image</code>, <code>imageView</code>, or <code>bufferView</code> members <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06795",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>image</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure in the <a href=\"#vkCreateImage\">vkCreateImage</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>image</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure in the <a href=\"#vkCreateImage\">vkCreateImage</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06796",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>imageView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a> structure in the <a href=\"#vkCreateImageView\">vkCreateImageView</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>imageView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a> structure in the <a href=\"#vkCreateImageView\">vkCreateImageView</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06797",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>bufferView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkBufferView\">VkBufferView</a> in its <code>bufferView</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkBufferViewCreateInfo\">VkBufferViewCreateInfo</a> structure in the <a href=\"#vkCreateBufferView\">vkCreateBufferView</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and its <code>bufferView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkBufferView\">VkBufferView</a> in its <code>bufferView</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkBufferViewCreateInfo\">VkBufferViewCreateInfo</a> structure in the <a href=\"#vkCreateBufferView\">vkCreateBufferView</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06798",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if either its <code>image</code> or <code>imageView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>plane</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if either its <code>image</code> or <code>imageView</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>plane</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06799",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member does not have a multi-planar format, then its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member does not have a multi-planar format, then its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06800",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member has a multi-planar format with only two planes, then its <code>plane</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member has a multi-planar format with only two planes, then its <code>plane</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06801",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member does not have a multi-planar format, then its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member does not have a multi-planar format, then its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06802",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member has a multi-planar format with only two planes, then its <code>plane</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a> structure, and if the <a href=\"#VkImageView\">VkImageView</a> in its <code>imageView</code> member has a multi-planar format with only two planes, then its <code>plane</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06803",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a> structure, the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure in the <a href=\"#vkCreateImage\">vkCreateImage</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a> structure, the <a href=\"#VkImage\">VkImage</a> in its <code>image</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure in the <a href=\"#vkCreateImage\">vkCreateImage</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06804",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, exactly one of its <code>semaphore</code> or <code>event</code> members <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, exactly one of its <code>semaphore</code> or <code>event</code> members <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06805",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, and its <code>semaphore</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkSemaphore\">VkSemaphore</a> in its <code>semaphore</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a> structure in the <a href=\"#vkCreateSemaphore\">vkCreateSemaphore</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, and its <code>semaphore</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkSemaphore\">VkSemaphore</a> in its <code>semaphore</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a> structure in the <a href=\"#vkCreateSemaphore\">vkCreateSemaphore</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-06806",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, and its <code>event</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkEvent\">VkEvent</a> in its <code>event</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkEventCreateInfo\">VkEventCreateInfo</a> structure in the <a href=\"#vkCreateEvent\">vkCreateEvent</a> command"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a> structure, and its <code>event</code> member is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <a href=\"#VkEvent\">VkEvent</a> in its <code>event</code> member <strong class=\"purple\">must</strong> have been created with <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code> in the <code>exportObjectType</code> member of a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure in the <code>pNext</code> chain of the <a href=\"#VkEventCreateInfo\">VkEventCreateInfo</a> structure in the <a href=\"#vkCreateEvent\">vkCreateEvent</a> command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a>, <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a>, <a href=\"#VkExportMetalDeviceInfoEXT\">VkExportMetalDeviceInfoEXT</a>, <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a>, or <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a>, <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a>, <a href=\"#VkExportMetalDeviceInfoEXT\">VkExportMetalDeviceInfoEXT</a>, <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a>, or <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalObjectsInfoEXT-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a>, <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a>, <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a>, or <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalBufferInfoEXT\">VkExportMetalBufferInfoEXT</a>, <a href=\"#VkExportMetalCommandQueueInfoEXT\">VkExportMetalCommandQueueInfoEXT</a>, <a href=\"#VkExportMetalIOSurfaceInfoEXT\">VkExportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkExportMetalSharedEventInfoEXT\">VkExportMetalSharedEventInfoEXT</a>, or <a href=\"#VkExportMetalTextureInfoEXT\">VkExportMetalTextureInfoEXT</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalDeviceInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalDeviceInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalCommandQueueInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalCommandQueueInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalCommandQueueInfoEXT-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalBufferInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalBufferInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalBufferInfoEXT-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMetalBufferInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMetalBufferInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalTextureInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-image-parameter",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-bufferView-parameter",
-          "text": " If <code>bufferView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>bufferView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferView\">VkBufferView</a> handle"
+          "text": "If <code>bufferView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>bufferView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferView\">VkBufferView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-plane-parameter",
-          "text": " <code>plane</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
+          "text": "<code>plane</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalTextureInfoEXT-commonparent",
-          "text": " Each of <code>bufferView</code>, <code>image</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>bufferView</code>, <code>image</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMetalTextureInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMetalTextureInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMetalTextureInfoEXT-plane-parameter",
-          "text": " <code>plane</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
+          "text": "<code>plane</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalIOSurfaceInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalIOSurfaceInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalIOSurfaceInfoEXT-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMetalIOSurfaceInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMetalIOSurfaceInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExportMetalSharedEventInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkExportMetalSharedEventInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameter",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalSharedEventInfoEXT-event-parameter",
-          "text": " If <code>event</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
+          "text": "If <code>event</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExportMetalSharedEventInfoEXT-commonparent",
-          "text": " Both of <code>event</code>, and <code>semaphore</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>event</code>, and <code>semaphore</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMetalSharedEventInfoEXT": {
-      "(VK_EXT_metal_objects)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMetalSharedEventInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkImportScreenBufferInfoQNX": {
+      "core": [
+        {
+          "vuid": "VUID-VkImportScreenBufferInfoQNX-buffer-08966",
+          "text": "If <code>buffer</code> is not <code>NULL</code>, QNX Screen Buffers <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportScreenBufferInfoQNX-buffer-08967",
+          "text": "<code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a pointer to <a href=\"#memory-external-screen-buffer-validity\">valid QNX Screen buffer</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImportScreenBufferInfoQNX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetScreenBufferPropertiesQNX": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetScreenBufferPropertiesQNX-buffer-08968",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a <a href=\"#memory-external-screen-buffer-validity\">valid QNX Screen buffer</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetScreenBufferPropertiesQNX-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetScreenBufferPropertiesQNX-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>_screen_buffer</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetScreenBufferPropertiesQNX-pProperties-parameter",
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkScreenBufferPropertiesQNX\">VkScreenBufferPropertiesQNX</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkScreenBufferPropertiesQNX": {
+      "core": [
+        {
+          "vuid": "VUID-VkScreenBufferPropertiesQNX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkScreenBufferPropertiesQNX-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkScreenBufferFormatPropertiesQNX\">VkScreenBufferFormatPropertiesQNX</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkScreenBufferPropertiesQNX-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkScreenBufferFormatPropertiesQNX": {
+      "core": [
+        {
+          "vuid": "VUID-VkScreenBufferFormatPropertiesQNX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryAllocateFlagsInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675",
-          "text": " If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask"
+          "text": "If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676",
-          "text": " If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
+          "text": "If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMemoryAllocateFlagBits\">VkMemoryAllocateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMemoryAllocateFlagBits\">VkMemoryAllocateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryOpaqueCaptureAddressAllocateInfo": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16096,23 +20445,28 @@
       "core": [
         {
           "vuid": "VUID-vkFreeMemory-memory-00677",
-          "text": " All submitted commands that refer to <code>memory</code> (via images or buffers) <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>memory</code> (via images or buffers) <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeMemory-memory-parameter",
-          "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeMemory-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeMemory-memory-parent",
-          "text": " If <code>memory</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>memory</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16120,49 +20474,131 @@
       "core": [
         {
           "vuid": "VUID-vkMapMemory-memory-00678",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> not be currently host mapped"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> not be currently host mapped",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-offset-00679",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-size-00680",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-size-00681",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the <code>memory</code> minus <code>offset</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the <code>memory</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-memory-00682",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkMapMemory-memory-00683",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> not have been allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-ppData-parameter",
-          "text": " <code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value"
+          "text": "<code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkMapMemory-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_KHR_device_group)": [
+      ]
+    },
+    "vkMapMemory2KHR": {
+      "core": [
         {
-          "vuid": "VUID-vkMapMemory-memory-00683",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated with multiple instances"
+          "vuid": "VUID-vkMapMemory2KHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkMapMemory2KHR-pMemoryMapInfo-parameter",
+          "text": "<code>pMemoryMapInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryMapInfoKHR\">VkMemoryMapInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkMapMemory2KHR-ppData-parameter",
+          "text": "<code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkMemoryMapInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-memory-07958",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> not be currently host mapped",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-offset-07959",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-size-07960",
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-size-07961",
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the <code>memory</code> minus <code>offset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-memory-07962",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-memory-07963",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> not have been allocated with multiple instances",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryMapInfoKHR-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16170,15 +20606,18 @@
       "core": [
         {
           "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter",
-          "text": " <code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures"
+          "text": "<code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength",
-          "text": " <code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16186,15 +20625,18 @@
       "core": [
         {
           "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter",
-          "text": " <code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures"
+          "text": "<code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength",
-          "text": " <code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16202,39 +20644,48 @@
       "core": [
         {
           "vuid": "VUID-VkMappedMemoryRange-memory-00684",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-size-00685",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> specify a range contained within the currently mapped range of <code>memory</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> specify a range contained within the currently mapped range of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-size-00686",
-          "text": " If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> <strong class=\"purple\">must</strong> be within the currently mapped range of <code>memory</code>"
+          "text": "If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> <strong class=\"purple\">must</strong> be within the currently mapped range of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-offset-00687",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-size-01389",
-          "text": " If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, the end of the current mapping of <code>memory</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code> bytes from the beginning of the memory object, or be equal to the end of the memory object"
+          "text": "If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, the end of the current mapping of <code>memory</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code> bytes from the beginning of the memory object, or be equal to the end of the memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-size-01390",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>, or <code>offset</code> plus <code>size</code> <strong class=\"purple\">must</strong> equal the size of <code>memory</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>, or <code>offset</code> plus <code>size</code> <strong class=\"purple\">must</strong> equal the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMappedMemoryRange-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16242,19 +20693,66 @@
       "core": [
         {
           "vuid": "VUID-vkUnmapMemory-memory-00689",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUnmapMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUnmapMemory-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUnmapMemory-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkUnmapMemory2KHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkUnmapMemory2KHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUnmapMemory2KHR-pMemoryUnmapInfo-parameter",
+          "text": "<code>pMemoryUnmapInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryUnmapInfoKHR\">VkMemoryUnmapInfoKHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkMemoryUnmapInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkMemoryUnmapInfoKHR-memory-07964",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryUnmapInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryUnmapInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryUnmapInfoKHR-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryUnmapInfoKHR-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16262,91 +20760,110 @@
       "core": [
         {
           "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter",
-          "text": " <code>pCommittedMemoryInBytes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value"
+          "text": "<code>pCommittedMemoryInBytes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceGroupPeerMemoryFeatures": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691",
-          "text": " <code>heapIndex</code> <strong class=\"purple\">must</strong> be less than <code>memoryHeapCount</code>"
+          "text": "<code>heapIndex</code> <strong class=\"purple\">must</strong> be less than <code>memoryHeapCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692",
-          "text": " <code>localDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
+          "text": "<code>localDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693",
-          "text": " <code>remoteDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
+          "text": "<code>remoteDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694",
-          "text": " <code>localDeviceIndex</code> <strong class=\"purple\">must</strong> not equal <code>remoteDeviceIndex</code>"
+          "text": "<code>localDeviceIndex</code> <strong class=\"purple\">must</strong> not equal <code>remoteDeviceIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter",
-          "text": " <code>pPeerMemoryFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPeerMemoryFeatureFlags\">VkPeerMemoryFeatureFlags</a> value"
+          "text": "<code>pPeerMemoryFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPeerMemoryFeatureFlags\">VkPeerMemoryFeatureFlags</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceMemoryOpaqueCaptureAddress": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334",
-          "text": " The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceMemoryOpaqueCaptureAddressInfo\">VkDeviceMemoryOpaqueCaptureAddressInfo</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceMemoryOpaqueCaptureAddressInfo\">VkDeviceMemoryOpaqueCaptureAddressInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceMemoryOpaqueCaptureAddressInfo": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16354,245 +20871,291 @@
       "core": [
         {
           "vuid": "VUID-vkCreateBuffer-flags-00911",
-          "text": " If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>"
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, and the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is not enabled, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateBuffer-flags-09383",
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is enabled, and the <code>usage</code> member of <code>pCreateInfo</code> contains bits not in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseBufferUsageFlags</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device, excluding <code>VkBuffer</code> created with <code>usage</code> member of <code>pCreateInfo</code> containing bits in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseBufferUsageFlags</code> and <code>VkImage</code> created with <code>usage</code> member of <code>pCreateInfo</code> containing bits in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseImageUsageFlags</code>, to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateBuffer-flags-09384",
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code> and the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is enabled, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateBuffer-pNext-06387",
+          "text": "If using the <a href=\"#VkBuffer\">VkBuffer</a> for an import operation from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> where a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a>::<code>createInfo</code> used when setting the constraints on the buffer collection with <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBuffer-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBuffer-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBuffer-pBuffer-parameter",
-          "text": " <code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
-        {
-          "vuid": "VUID-vkCreateBuffer-pNext-06387",
-          "text": " If using the <a href=\"#VkBuffer\">VkBuffer</a> for an import operation from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> where a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a>::<code>createInfo</code> used when setting the constraints on the buffer collection with <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>"
+          "text": "<code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCreateInfo": {
       "core": [
         {
+          "vuid": "VUID-VkBufferCreateInfo-None-09499",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-None-09500",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must not be 0",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkBufferCreateInfo-size-00912",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419",
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-00915",
-          "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
+          "text": "If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-00916",
-          "text": " If the <a href=\"#features-sparseResidencyBuffer\"><code>sparseResidencyBuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
+          "text": "If the <a href=\"#features-sparseResidencyBuffer\"><code>sparseResidencyBuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-00917",
-          "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>"
+          "text": "If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-00918",
-          "text": " If <code>flags</code> contains <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
+          "text": "If <code>flags</code> contains <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>, <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>, <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>, <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>, <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter",
-          "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
-        {
-          "vuid": "VUID-VkBufferCreateInfo-sharingMode-01391",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
-        {
-          "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
           "vuid": "VUID-VkBufferCreateInfo-pNext-00920",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalBufferProperties\">vkGetPhysicalDeviceExternalBufferProperties</a> with <code>pExternalBufferInfo-&gt;handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalBufferProperties\">vkGetPhysicalDeviceExternalBufferProperties</a> with <code>pExternalBufferInfo-&gt;handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-01887",
-          "text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_PROTECTED_BIT</code>"
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-None-01888",
-          "text": " If any of the bits <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)": [
+          "text": "If any of the bits <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-pNext-01571",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a> structure, and the <code>dedicatedAllocation</code> member of the chained structure is <code>VK_TRUE</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a> structure, and the <code>dedicatedAllocation</code> member of the chained structure is <code>VK_TRUE</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604",
-          "text": " If <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>::<code>deviceAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
+          "text": "If <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>::<code>deviceAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337",
+          "text": "If <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-03338",
-          "text": " If <code>flags</code> includes <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\"><code>bufferDeviceAddressCaptureReplay</code></a> or <a href=\"#features-bufferDeviceAddressCaptureReplayEXT\"><code>bufferDeviceAddressCaptureReplayEXT</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
-        {
-          "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337",
-          "text": " If <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)": [
-        {
-          "vuid": "VUID-VkBufferCreateInfo-flags-06549",
-          "text": " If <code>flags</code> includes <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\"><code>bufferDeviceAddressCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_KHR_video_decode_queue)": [
+          "text": "If <code>flags</code> includes <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplayEXT\"><code>bufferDeviceAddressCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-04813",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, <code>VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> specifying a decode operation"
-        }
-      ],
-      "(VK_KHR_video_encode_queue)": [
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code> or <code>VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, and <code>flags</code> does not include <code>VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with a <code>videoCodecOperation</code> member specifying a decode operation",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-04814",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> specifying an encode operation"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code> or <code>VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, and <code>flags</code> does not include <code>VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with a <code>videoCodecOperation</code> member specifying an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-flags-08325",
+          "text": "If <code>flags</code> includes <code>VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then <a href=\"#features-videoMaintenance1\"><code>videoMaintenance1</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-size-06409",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>::<code>maxBufferSize</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>::<code>maxBufferSize</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-08097",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::<code>samplerDescriptorBufferAddressSpaceSize</code> or VkPhysicalDeviceDescriptorBufferPropertiesEXT::<code>descriptorBufferAddressSpaceSize</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required space for all currently valid buffers using this flag on the device to exceed <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>samplerDescriptorBufferAddressSpaceSize</code> or <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferAddressSpaceSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-08098",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::<code>resourceDescriptorBufferAddressSpaceSize</code> or VkPhysicalDeviceDescriptorBufferPropertiesEXT::<code>descriptorBufferAddressSpaceSize</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required space for all currently valid buffers using this flag on the device to exceed <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>resourceDescriptorBufferAddressSpaceSize</code> or <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferAddressSpaceSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-flags-08099",
-          "text": " If <code>flags</code> includes <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> includes <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-pNext-08100",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-08101",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, the <a href=\"#features-descriptorBufferPushDescriptors\"><code>descriptorBufferPushDescriptors</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, the <a href=\"#features-descriptorBufferPushDescriptors\"><code>descriptorBufferPushDescriptors</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-08102",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code> <a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code> <a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCreateInfo-usage-08103",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>usage</code> <strong class=\"purple\">must</strong> contain at least one of <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code> or <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>usage</code> <strong class=\"purple\">must</strong> contain at least one of <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code> or <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>, <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>, <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>, <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a>, <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>, <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter",
+          "text": "<code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBufferUsageFlags2CreateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameter",
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits2KHR\">VkBufferUsageFlagBits2KHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask",
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDedicatedAllocationBufferCreateInfoNV": {
-      "(VK_NV_dedicated_allocation)": [
+      "core": [
         {
           "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalMemoryBufferCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferOpaqueCaptureAddressCreateInfo": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferDeviceAddressCreateInfoEXT": {
-      "(VK_EXT_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCollectionBufferCreateInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388",
-          "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>"
+          "text": "<code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16600,31 +21163,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyBuffer-buffer-00922",
-          "text": " All submitted commands that refer to <code>buffer</code>, either directly or via a <code>VkBufferView</code>, <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>buffer</code>, either directly or via a <code>VkBufferView</code>, <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-buffer-00923",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-buffer-00924",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-buffer-parameter",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBuffer-buffer-parent",
-          "text": " If <code>buffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>buffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16632,19 +21202,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreateBufferView-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferViewCreateInfo\">VkBufferViewCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferViewCreateInfo\">VkBufferViewCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferView-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferView-pView-parameter",
-          "text": " <code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferView\">VkBufferView</a> handle"
+          "text": "<code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferView\">VkBufferView</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16652,93 +21226,113 @@
       "core": [
         {
           "vuid": "VUID-VkBufferViewCreateInfo-offset-00925",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-range-00928",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-range-00929",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be an integer multiple of the texel block size of <code>format</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be an integer multiple of the texel block size of <code>format</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-range-00930",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}<code>range</code> / (texel block size){rfloor} {times} (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">(⌊<code>range</code> / (texel block size)⌋ × (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-offset-00931",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the sum of <code>offset</code> and <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the sum of <code>offset</code> and <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-range-04059",
-          "text": " If <code>range</code> is equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}(size - <code>offset</code>) / (texel block size){rfloor} {times} (texels per block))</span> where size is the size of <code>buffer</code>, and texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>"
+          "text": "If <code>range</code> is equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">(⌊(size - <code>offset</code>) / (texel block size)⌋ × (texels per block))</span> where size is the size of <code>buffer</code>, and texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> or <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> or <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933",
-          "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for uniform texel buffers, as specified by the <code>VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>"
+          "vuid": "VUID-VkBufferViewCreateInfo-format-08778",
+          "text": "If the <a href=\"#resources-buffer-views-usage\">buffer view usage</a> contains <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, then <a href=\"#resources-buffer-view-format-features\">format features</a> of <code>format</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934",
-          "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage texel buffers, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>"
+          "vuid": "VUID-VkBufferViewCreateInfo-format-08779",
+          "text": "If the <a href=\"#resources-buffer-views-usage\">buffer view usage</a> contains <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, then <a href=\"#resources-buffer-view-format-features\">format features</a> of <code>format</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferViewCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
-        {
-          "vuid": "VUID-VkBufferViewCreateInfo-offset-00926",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minTexelBufferOffsetAlignment</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
-        {
           "vuid": "VUID-VkBufferViewCreateInfo-offset-02749",
-          "text": " If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is not enabled, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minTexelBufferOffsetAlignment</code>"
+          "text": "If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is not enabled, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minTexelBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-buffer-02750",
-          "text": " If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead"
+          "text": "If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-buffer-02751",
-          "text": " If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead"
-        }
-      ],
-      "(VK_EXT_metal_objects)": [
+          "text": "If the <a href=\"#features-texelBufferAlignment\"><code>texelBufferAlignment</code></a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBufferViewCreateInfo-pNext-06782",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-pNext-08780",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a>, its <code>usage</code> <strong class=\"purple\">must</strong> not contain any other bit than <code>VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR</code> or <code>VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-pNext-08781",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a>, its <code>usage</code> <strong class=\"purple\">must</strong> be a subset of the <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>usage</code> specified or <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a>::<code>usage</code> from <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code> when creating <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> or <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBufferViewCreateInfo-format-parameter",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -16746,31 +21340,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyBufferView-bufferView-00936",
-          "text": " All submitted commands that refer to <code>bufferView</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>bufferView</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-bufferView-00937",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-bufferView-00938",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-bufferView-parameter",
-          "text": " If <code>bufferView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>bufferView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferView\">VkBufferView</a> handle"
+          "text": "If <code>bufferView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>bufferView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferView\">VkBufferView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferView-bufferView-parent",
-          "text": " If <code>bufferView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>bufferView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -16778,29 +21379,43 @@
       "core": [
         {
           "vuid": "VUID-vkCreateImage-flags-00939",
-          "text": " If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, creating this <code>VkImage</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>"
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, and the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is not enabled, creating this <code>VkImage</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateImage-flags-09385",
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is enabled, and the <code>usage</code> member of <code>pCreateInfo</code> contains bits not in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseImageUsageFlags</code>, creating this <code>VkImage</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device, excluding <code>VkBuffer</code> created with <code>usage</code> member of <code>pCreateInfo</code> containing bits in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseBufferUsageFlags</code> and <code>VkImage</code> created with <code>usage</code> member of <code>pCreateInfo</code> containing bits in <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseImageUsageFlags</code>, to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateImage-flags-09386",
+          "text": "If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code> and the <a href=\"#features-extendedSparseAddressSpace\"><code>extendedSparseAddressSpace</code></a> feature is enabled, creating this <code>VkImage</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</code>::<code>extendedSparseAddressSpaceSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateImage-pNext-06389",
+          "text": "If a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#sysmem-chosen-create-infos\">Sysmem chosen <code>VkImageCreateInfo</code></a> excepting members <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent</code> and <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> in the match criteria",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImage-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImage-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImage-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImage-pImage-parameter",
-          "text": " <code>pImage</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImage\">VkImage</a> handle"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
-        {
-          "vuid": "VUID-vkCreateImage-pNext-06389",
-          "text": " If a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#sysmem-chosen-create-infos\">Sysmem chosen <code>VkImageCreateInfo</code></a> excepting members <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent</code> and <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> in the match criteria"
+          "text": "<code>pImage</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -16808,869 +21423,1009 @@
       "core": [
         {
           "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251",
-          "text": " Each of the following values (as described in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> not be undefined : <code>imageCreateMaxMipLevels</code>, <code>imageCreateMaxArrayLayers</code>, <code>imageCreateMaxExtent</code>, and <code>imageCreateSampleCounts</code>"
+          "text": "Each of the following values (as described in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> not be undefined : <code>imageCreateMaxMipLevels</code>, <code>imageCreateMaxArrayLayers</code>, <code>imageCreateMaxExtent</code>, and <code>imageCreateSampleCounts</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-sharingMode-00941",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-sharingMode-00942",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-extent-00944",
-          "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-extent-00945",
-          "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-extent-00946",
-          "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-mipLevels-00947",
-          "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948",
-          "text": " <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-00949",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-extent-02252",
-          "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.width</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-extent-02253",
-          "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.height</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-extent-02254",
-          "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.depth</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00954",
-          "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be equal and <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than or equal to 6"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00956",
-          "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, both <code>extent.height</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00957",
-          "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-mipLevels-00958",
-          "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-mipLevels-02255",
-          "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxMipLevels</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256",
-          "text": " <code>arrayLayers</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxArrayLayers</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00961",
-          "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-samples-02257",
-          "text": " If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be equal to <code>1</code>, and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>,"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-00963",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, then bits other than <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not be set"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-00964",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-00965",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-00966",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> also contain at least one of <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-samples-02258",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-00968",
-          "text": " If the <a href=\"#features-shaderStorageImageMultisample\"><code>shaderStorageImageMultisample</code></a> feature is not enabled, and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-00969",
-          "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-01924",
-          "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-tiling-04121",
-          "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00970",
-          "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00971",
-          "text": " If the <a href=\"#features-sparseResidencyImage2D\"><code>sparseResidencyImage2D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00972",
-          "text": " If the <a href=\"#features-sparseResidencyImage3D\"><code>sparseResidencyImage3D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00973",
-          "text": " If the <a href=\"#features-sparseResidency2Samples\"><code>sparseResidency2Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_2_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00974",
-          "text": " If the <a href=\"#features-sparseResidency4Samples\"><code>sparseResidency4Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_4_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00975",
-          "text": " If the <a href=\"#features-sparseResidency8Samples\"><code>sparseResidency8Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_8_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-00976",
-          "text": " If the <a href=\"#features-sparseResidency16Samples\"><code>sparseResidency16Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_16_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-00987",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-None-01925",
-          "text": " If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not also be set"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-initialLayout-00993",
-          "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>, <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>, <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>, <a href=\"#VkImportMetalIOSurfaceInfoEXT\">VkImportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> or <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-imageType-parameter",
-          "text": " <code>imageType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter",
-          "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter",
-          "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-sharingMode-01392",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
-        {
           "vuid": "VUID-VkImageCreateInfo-sharingMode-01420",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-format-00943",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-01974",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, and its <code>externalFormat</code> member is non-zero the <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, and its <code>externalFormat</code> member is non-zero the <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-01975",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, or does and its <code>externalFormat</code> member is <code>0</code>, the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, or does and its <code>externalFormat</code> member is <code>0</code>, the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-pNext-02393",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
+          "vuid": "VUID-VkImageCreateInfo-extent-00944",
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-pNext-02394",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> either be <code>1</code> or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>"
+          "vuid": "VUID-VkImageCreateInfo-extent-00945",
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-pNext-02396",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>"
+          "vuid": "VUID-VkImageCreateInfo-extent-00946",
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-pNext-02397",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>usage</code> <strong class=\"purple\">must</strong> not include any usages except <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>"
+          "vuid": "VUID-VkImageCreateInfo-mipLevels-00947",
+          "text": "<code>mipLevels</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-pNext-02398",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948",
+          "text": "<code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-00949",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-08865",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-08866",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than or equal to 6",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02557",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-00950",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-09403",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-07755",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-extent-02252",
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.width</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-extent-02253",
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.height</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-extent-02254",
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.depth</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00956",
+          "text": "If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, both <code>extent.height</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00957",
+          "text": "If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-mipLevels-00958",
+          "text": "<code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-mipLevels-02255",
+          "text": "<code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxMipLevels</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256",
+          "text": "<code>arrayLayers</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxArrayLayers</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00961",
+          "text": "If <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-samples-02257",
+          "text": "If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be equal to <code>1</code>, and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>,",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-samples-02558",
-          "text": " If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>"
+          "text": "If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-flags-02565",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
+          "vuid": "VUID-VkImageCreateInfo-usage-00963",
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, then bits other than <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not be set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-flags-02566",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
+          "vuid": "VUID-VkImageCreateInfo-usage-00964",
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-flags-02567",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>"
+          "vuid": "VUID-VkImageCreateInfo-usage-00965",
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageCreateInfo-flags-02568",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-00950",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code>"
-        }
-      ],
-      "(VK_EXT_image_2d_view_of_3d)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-flags-07755",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-02559",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
-        },
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-02560",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
-        {
           "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514",
-          "text": " If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffset</code></a> feature is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
+          "text": "If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffset</code></a> feature is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515",
-          "text": " If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffset</code></a> feature is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffset</code></a> feature is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-usage-00966",
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> also contain at least one of <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-samples-02258",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-usage-00968",
+          "text": "If the <a href=\"#features-shaderStorageImageMultisample\"><code>shaderStorageImageMultisample</code></a> feature is not enabled, and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-00969",
+          "text": "If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-01924",
+          "text": "If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-tiling-04121",
+          "text": "If <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00970",
+          "text": "If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00971",
+          "text": "If the <a href=\"#features-sparseResidencyImage2D\"><code>sparseResidencyImage2D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00972",
+          "text": "If the <a href=\"#features-sparseResidencyImage3D\"><code>sparseResidencyImage3D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00973",
+          "text": "If the <a href=\"#features-sparseResidency2Samples\"><code>sparseResidency2Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_2_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00974",
+          "text": "If the <a href=\"#features-sparseResidency4Samples\"><code>sparseResidency4Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_4_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00975",
+          "text": "If the <a href=\"#features-sparseResidency8Samples\"><code>sparseResidency8Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_8_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-00976",
+          "text": "If the <a href=\"#features-sparseResidency16Samples\"><code>sparseResidency16Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_16_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-00987",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-None-01925",
+          "text": "If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not also be set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-01890",
-          "text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>"
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-None-01891",
-          "text": " If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)": [
+          "text": "If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-00988",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-00990",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure, and with a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure included in the <code>pNext</code> chain, with a <code>handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code>"
-        }
-      ],
-      "(VK_NV_external_memory+VK_NV_external_memory_capabilities)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure, and with a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure included in the <code>pNext</code> chain, with a <code>handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-00991",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalImageFormatPropertiesNV\">vkGetPhysicalDeviceExternalImageFormatPropertiesNV</a> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure, and with <code>externalHandleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>::<code>handleTypes</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalImageFormatPropertiesNV\">vkGetPhysicalDeviceExternalImageFormatPropertiesNV</a> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure, and with <code>externalHandleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>::<code>handleTypes</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421",
-          "text": " If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>"
+          "text": "If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02259",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>, then <code>mipLevels</code> <strong class=\"purple\">must</strong> be one, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be one, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>. and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>, then <code>mipLevels</code> <strong class=\"purple\">must</strong> be one, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be one, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>. and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-01572",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>format</code> <strong class=\"purple\">must</strong> be a <a href=\"#compressed_image_formats\">compressed image format</a>"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>format</code> <strong class=\"purple\">must</strong> be a <a href=\"#compressed_image_formats\">compressed image format</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-01573",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)": [
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-initialLayout-00993",
+          "text": "<code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-01443",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> or <code>VkExternalMemoryImageCreateInfoNV</code> structure whose <code>handleTypes</code> member is not <code>0</code>, <code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> or <code>VkExternalMemoryImageCreateInfoNV</code> structure whose <code>handleTypes</code> member is not <code>0</code>, <code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-format-06410",
-          "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler {YCbCr} conversion</a>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be 1"
+          "text": "If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-06411",
-          "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler {YCbCr} conversion</a>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-06412",
-          "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler {YCbCr} conversion</a>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260",
-          "text": " If <code>format</code> is a <em>multi-planar</em> format, and if <code>imageCreateFormatFeatures</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) does not contain <code>VK_FORMAT_FEATURE_DISJOINT_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>"
+          "text": "If <code>format</code> is a <em>multi-planar</em> format, and if <code>imageCreateFormatFeatures</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) does not contain <code>VK_FORMAT_FEATURE_DISJOINT_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-01577",
-          "text": " If <code>format</code> is not a <em>multi-planar</em> format, and <code>flags</code> does not include <code>VK_IMAGE_CREATE_ALIAS_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>"
+          "text": "If <code>format</code> is not a <em>multi-planar</em> format, and <code>flags</code> does not include <code>VK_IMAGE_CREATE_ALIAS_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-04712",
-          "text": " If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix, <code>width</code> <strong class=\"purple\">must</strong> be a multiple of 2"
+          "text": "If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix, <code>width</code> <strong class=\"purple\">must</strong> be a multiple of 2",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-04713",
-          "text": " If <code>format</code> has a <code>_420</code> suffix, <code>height</code> <strong class=\"purple\">must</strong> be a multiple of 2"
-        }
-      ],
-      "(VK_EXT_image_drm_format_modifier)": [
+          "text": "If <code>format</code> has a <code>_420</code> suffix, <code>height</code> <strong class=\"purple\">must</strong> be a multiple of 2",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-tiling-02261",
-          "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include exactly one of <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structures"
+          "text": "If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include exactly one of <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-02262",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure, then <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure, then <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-tiling-02353",
-          "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+          "text": "If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-01533",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> <code>format</code> <strong class=\"purple\">must</strong> be a depth or depth/stencil format"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> <code>format</code> <strong class=\"purple\">must</strong> be a depth or depth/stencil format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-02393",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-02394",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> either be <code>1</code> or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-02396",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-02397",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>usage</code> <strong class=\"purple\">must</strong> not include any usages except <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-09457",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, and <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is not enabled, <code>usage</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-02398",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-08951",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-08952",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> either be <code>1</code> or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-08953",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-08954",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>usage</code> <strong class=\"purple\">must</strong> not include any usages except <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-08955",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02795",
-          "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02796",
-          "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02797",
-          "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>"
+          "text": "If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02798",
-          "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>"
+          "text": "If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-Format-02536",
-          "text": " If <code>Format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>"
+          "text": "If <code>Format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02537",
-          "text": " If <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>"
+          "text": "If <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-format-02538",
-          "text": " If the <a href=\"#features-shaderStorageImageMultisample\"><code>shaderStorageImageMultisample</code></a> feature is not enabled, <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> including <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "If the <a href=\"#features-shaderStorageImageMultisample\"><code>shaderStorageImageMultisample</code></a> feature is not enabled, <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> including <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02050",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code> or <code>VK_IMAGE_TYPE_3D</code>"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code> or <code>VK_IMAGE_TYPE_3D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02051",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, it <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> and the <code>format</code> <strong class=\"purple\">must</strong> not be a depth/stencil format"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, it <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> and the <code>format</code> <strong class=\"purple\">must</strong> not be a depth/stencil format",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02052",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-02053",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>extent.width</code>, <code>extent.height</code>, and <code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>extent.width</code>, <code>extent.height</code>, and <code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-imageType-02082",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-samples-02083",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)": [
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-shadingRateImage-07727",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
-        }
-      ],
-      "(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-02565",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-02566",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-02567",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-02568",
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-usage-04992",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_LINEAR</code>"
-        }
-      ],
-      "(VK_HUAWEI_invocation_mask)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-usage-04992",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_LINEAR</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_LINEAR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-imageView2DOn3DImage-04459",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageView2DOn3DImage</code> is <code>VK_FALSE</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageView2DOn3DImage</code> is <code>VK_FALSE</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-multisampleArrayImage-04460",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>multisampleArrayImage</code> is <code>VK_FALSE</code>, and <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>multisampleArrayImage</code> is <code>VK_FALSE</code>, and <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06722",
-          "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero, then each format in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> either be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a> or, if <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, be an uncompressed format that is size-compatible with <code>format</code>"
+          "text": "If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero, then each format in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> either be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a> or, if <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, be an uncompressed format that is size-compatible with <code>format</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-04738",
-          "text": " If <code>flags</code> does not contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> and the <code>pNext</code> chain includes a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure, then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        }
-      ],
-      "(VK_KHR_video_decode_queue)": [
+          "text": "If <code>flags</code> does not contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> and the <code>pNext</code> chain includes a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure, then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-usage-04815",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> specifying a decode operation"
-        }
-      ],
-      "(VK_KHR_video_encode_queue)": [
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, or <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, and <code>flags</code> does not include <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with a <code>videoCodecOperation</code> member specifying a decode operation",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-usage-04816",
-          "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> specifying an encode operation"
-        }
-      ],
-      "(VK_KHR_video_queue)": [
+          "text": "If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, or <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, and <code>flags</code> does not include <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code> and <code>pProfiles</code> including at least one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with a <code>videoCodecOperation</code> member specifying an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-08328",
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then <a href=\"#features-videoMaintenance1\"><code>videoMaintenance1</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-08329",
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code> and <code>usage</code> does not include <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, then <code>usage</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-08331",
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then <code>usage</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06811",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure then <code>supportedVideoFormat</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code>, then <code>supportedVideoFormat</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06390",
-          "text": " If the <a href=\"#VkImage\">VkImage</a> is to be used to import memory from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure <strong class=\"purple\">must</strong> be chained to <code>pNext</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#VkImage\">VkImage</a> is to be used to import memory from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure <strong class=\"purple\">must</strong> be chained to <code>pNext</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882",
-          "text": " If the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-06883",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06743",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, then <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>compressionControlPlaneCount</code> <strong class=\"purple\">must</strong> be equal to the number of planes in <code>format</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, then <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>compressionControlPlaneCount</code> <strong class=\"purple\">must</strong> be equal to the number of planes in <code>format</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06744",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, <code>format</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, then <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>compressionControlPlaneCount</code> <strong class=\"purple\">must</strong> be 1"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageCreateInfo-pNext-06745",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, and <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, then <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>compressionControlPlaneCount</code> <strong class=\"purple\">must</strong> be 1"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, <code>format</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, then <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>::<code>compressionControlPlaneCount</code> <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06746",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-flags-08104",
-          "text": " If <code>flags</code> includes <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-08105",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_metal_objects)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06783",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be either <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> or <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be either <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code> or <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06784",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure its <code>plane</code> member <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06785",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure and the image does not have a multi-planar format, then <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>::<code>plane</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure and the image does not have a multi-planar format, then <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>::<code>plane</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCreateInfo-pNext-06786",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure and the image has a multi-planar format with only two planes, then <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>::<code>plane</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a> structure and the image has a multi-planar format with only two planes, then <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>::<code>plane</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048",
+          "text": "If <code>imageCreateFormatFeatures</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) does not contain <code>VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT</code>, then <code>usage</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>, <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a>, <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>, <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>, <a href=\"#VkImportMetalIOSurfaceInfoEXT\">VkImportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> or <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-imageType-parameter",
+          "text": "<code>imageType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-format-parameter",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-samples-parameter",
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-tiling-parameter",
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-usage-parameter",
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask",
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter",
+          "text": "<code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter",
+          "text": "<code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCollectionImageCreateInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391",
-          "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>"
+          "text": "<code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageStencilUsageCreateInfo": {
-      "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+      "core": [
         {
           "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539",
-          "text": " If <code>stencilUsage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, it <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
+          "text": "If <code>stencilUsage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, it <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageStencilUsageCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter",
-          "text": " <code>stencilUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>stencilUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask",
-          "text": " <code>stencilUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>stencilUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDedicatedAllocationImageCreateInfoNV": {
-      "(VK_NV_dedicated_allocation)": [
+      "core": [
         {
           "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994",
-          "text": " If <code>dedicatedAllocation</code> is <code>VK_TRUE</code>, <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
+          "text": "If <code>dedicatedAllocation</code> is <code>VK_TRUE</code>, <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalMemoryImageCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalMemoryImageCreateInfoNV": {
-      "(VK_NV_external_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter",
-          "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
+          "text": "<code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalFormatANDROID": {
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894",
-          "text": " <code>externalFormat</code> <strong class=\"purple\">must</strong> be <code>0</code> or a value returned in the <code>externalFormat</code> member of <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a> by an earlier call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a>"
+          "text": "<code>externalFormat</code> <strong class=\"purple\">must</strong> be <code>0</code> or a value returned in the <code>externalFormat</code> member of <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a> by an earlier call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalFormatANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkExternalFormatQNX": {
+      "core": [
+        {
+          "vuid": "VUID-VkExternalFormatQNX-externalFormat-08956",
+          "text": "<code>externalFormat</code> <strong class=\"purple\">must</strong> be <code>0</code> or a value returned in the <code>externalFormat</code> member of <a href=\"#VkScreenBufferFormatPropertiesQNX\">VkScreenBufferFormatPropertiesQNX</a> by an earlier call to <a href=\"#vkGetScreenBufferPropertiesQNX\">vkGetScreenBufferPropertiesQNX</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExternalFormatQNX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageSwapchainCreateInfoKHR": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995",
-          "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the fields of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> <strong class=\"purple\">must</strong> match the <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain"
+          "text": "If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the fields of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> <strong class=\"purple\">must</strong> match the <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter",
-          "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageFormatListCreateInfo": {
-      "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
+      "core": [
         {
           "vuid": "VUID-VkImageFormatListCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatListCreateInfo-pViewFormats-parameter",
-          "text": " If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
+          "text": "If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageDrmFormatModifierListCreateInfoEXT": {
-      "(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263",
-          "text": " Each <em>modifier</em> in <code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
+          "text": "Each <em>modifier</em> in <code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter",
-          "text": " <code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierCount</code> <code>uint64_t</code> values"
+          "text": "<code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength",
-          "text": " <code>drmFormatModifierCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>drmFormatModifierCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageDrmFormatModifierExplicitCreateInfoEXT": {
-      "(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264",
-          "text": " <code>drmFormatModifier</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
+          "text": "<code>drmFormatModifier</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265",
-          "text": " <code>drmFormatModifierPlaneCount</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>format</code> and <code>drmFormatModifier</code>, as found by querying <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>"
+          "text": "<code>drmFormatModifierPlaneCount</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>format</code> and <code>drmFormatModifier</code>, as found by querying <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267",
-          "text": " For each element of <code>pPlaneLayouts</code>, <code>size</code> <strong class=\"purple\">must</strong> be 0"
+          "text": "For each element of <code>pPlaneLayouts</code>, <code>size</code> <strong class=\"purple\">must</strong> be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268",
-          "text": " For each element of <code>pPlaneLayouts</code>, <code>arrayPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>arrayLayers</code> is 1"
+          "text": "For each element of <code>pPlaneLayouts</code>, <code>arrayPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>arrayLayers</code> is 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269",
-          "text": " For each element of <code>pPlaneLayouts</code>, <code>depthPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.depth</code> is 1"
+          "text": "For each element of <code>pPlaneLayouts</code>, <code>depthPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.depth</code> is 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter",
-          "text": " If <code>drmFormatModifierPlaneCount</code> is not <code>0</code>, <code>pPlaneLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierPlaneCount</code> <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structures"
+          "text": "<code>pPlaneLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierPlaneCount</code> <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylength",
+          "text": "<code>drmFormatModifierPlaneCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageCompressionControlEXT": {
-      "(VK_EXT_image_compression_control)": [
+      "core": [
         {
           "vuid": "VUID-VkImageCompressionControlEXT-flags-06747",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_COMPRESSION_DEFAULT_EXT</code>, <code>VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT</code>, <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, or <code>VK_IMAGE_COMPRESSION_DISABLED_EXT</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_COMPRESSION_DEFAULT_EXT</code>, <code>VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT</code>, <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, or <code>VK_IMAGE_COMPRESSION_DISABLED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCompressionControlEXT-flags-06748",
-          "text": " If <code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, <code>pFixedRateFlags</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT</code>, <code>pFixedRateFlags</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCompressionControlEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageCompressionPropertiesEXT": {
-      "(VK_EXT_image_compression_control)": [
+      "core": [
         {
           "vuid": "VUID-VkImageCompressionPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageSubresourceLayout": {
-      "!(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-image-00996",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code>"
-        }
-      ],
-      "(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-image-02270",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
-        },
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkGetImageSubresourceLayout-image-07790",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997",
-          "text": " The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
+          "text": "The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716",
-          "text": " The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717",
-          "text": " The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout-format-04461",
-          "text": " If <code>format</code> is a color format, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout-format-08886",
+          "text": "If <code>format</code> of the <code>image</code> is a color format that is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, and <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-format-04462",
-          "text": " If <code>format</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
+          "text": "If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-format-04463",
-          "text": " If <code>format</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-format-04464",
-          "text": " If <code>format</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetImageSubresourceLayout-tiling-08717",
+          "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetImageSubresourceLayout-image-09432",
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetImageSubresourceLayout-tiling-09433",
+          "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter",
-          "text": " <code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure"
+          "text": "<code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter",
-          "text": " <code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structure"
+          "text": "<code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSubresourceLayout-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-format-01581",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with two planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-format-01582",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with three planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout-image-01895",
-          "text": " If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -17678,163 +22433,265 @@
       "core": [
         {
           "vuid": "VUID-VkImageSubresource-aspectMask-parameter",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "vkGetImageSubresourceLayout2EXT": {
-      "(VK_EXT_image_compression_control)+!(VK_EXT_image_drm_format_modifier)": [
+    "vkGetImageSubresourceLayout2KHR": {
+      "core": [
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-00996",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code>"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-02270",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997",
+          "text": "The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-tiling-02271",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>"
-        }
-      ],
-      "(VK_EXT_image_compression_control)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997",
-          "text": " The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716",
+          "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-mipLevel-01716",
-          "text": " The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717",
+          "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717",
-          "text": " The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-08886",
+          "text": "If <code>format</code> of the <code>image</code> is a color format that is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, and <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04461",
-          "text": " If <code>format</code> is a color format, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04462",
+          "text": "If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04462",
-          "text": " If <code>format</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04463",
+          "text": "If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04463",
-          "text": " If <code>format</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-format-04464",
+          "text": "If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04464",
-          "text": " If <code>format</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-08717",
+          "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-09434",
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-09435",
+          "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter",
-          "text": " <code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource2EXT\">VkImageSubresource2EXT</a> structure"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter",
-          "text": " <code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout2EXT\">VkSubresourceLayout2EXT</a> structure"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-01581",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with two planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameter",
+          "text": "<code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource2KHR\">VkImageSubresource2KHR</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-01582",
-          "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with three planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_EXT_image_compression_control)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameter",
+          "text": "<code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout2KHR\">VkSubresourceLayout2KHR</a> structure",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-01895",
-          "text": " If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory"
+          "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-parent",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkImageSubresource2EXT": {
-      "(VK_EXT_image_compression_control)": [
+    "VkImageSubresource2KHR": {
+      "core": [
         {
-          "vuid": "VUID-VkImageSubresource2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT</code>"
+          "vuid": "VUID-VkImageSubresource2KHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageSubresource2EXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "vuid": "VUID-VkImageSubresource2KHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageSubresource2EXT-imageSubresource-parameter",
-          "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure"
+          "vuid": "VUID-VkImageSubresource2KHR-imageSubresource-parameter",
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkSubresourceLayout2EXT": {
-      "(VK_EXT_image_compression_control)": [
+    "VkSubresourceLayout2KHR": {
+      "core": [
         {
-          "vuid": "VUID-VkSubresourceLayout2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT</code>"
+          "vuid": "VUID-VkSubresourceLayout2KHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubresourceLayout2EXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a>"
+          "vuid": "VUID-VkSubresourceLayout2KHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a> or <a href=\"#VkSubresourceHostMemcpySizeEXT\">VkSubresourceHostMemcpySizeEXT</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSubresourceLayout2EXT-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "vuid": "VUID-VkSubresourceLayout2KHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSubresourceHostMemcpySizeEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkSubresourceHostMemcpySizeEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetDeviceImageSubresourceLayoutKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameter",
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageSubresourceInfoKHR\">VkDeviceImageSubresourceInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDeviceImageSubresourceLayoutKHR-pLayout-parameter",
+          "text": "<code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout2KHR\">VkSubresourceLayout2KHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkDeviceImageSubresourceInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997",
+          "text": "The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716",
+          "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>pCreateInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717",
+          "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>pCreateInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886",
+          "text": "If <code>format</code> of the <code>image</code> is a color format that is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, and <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462",
+          "text": "If <code>format</code> of the <code>pCreateInfo</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463",
+          "text": "If <code>format</code> of the <code>pCreateInfo</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464",
+          "text": "If <code>format</code> of the <code>pCreateInfo</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717",
+          "text": "If the <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameter",
+          "text": "<code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource2KHR\">VkImageSubresource2KHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageDrmFormatModifierPropertiesEXT": {
-      "(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageCreateInfo\"><code>tiling</code></a> equal to <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageCreateInfo\"><code>tiling</code></a> equal to <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageDrmFormatModifierPropertiesEXT": {
-      "(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -17842,57 +22699,72 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyImage-image-01000",
-          "text": " All submitted commands that refer to <code>image</code>, either directly or via a <code>VkImageView</code>, <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>image</code>, either directly or via a <code>VkImageView</code>, <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-image-01001",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-image-01002",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyImage-image-04882",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been acquired from <a href=\"#vkGetSwapchainImagesKHR\">vkGetSwapchainImagesKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-image-parameter",
-          "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImage-image-parent",
-          "text": " If <code>image</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_KHR_swapchain)": [
-        {
-          "vuid": "VUID-vkDestroyImage-image-04882",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been acquired from <a href=\"#vkGetSwapchainImagesKHR\">vkGetSwapchainImagesKHR</a>"
+          "text": "If <code>image</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateImageView": {
       "core": [
         {
+          "vuid": "VUID-vkCreateImageView-image-09179",
+          "text": "<a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>image</code> <strong class=\"purple\">must</strong> have been created from <code>device</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCreateImageView-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImageView-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImageView-pView-parameter",
-          "text": " <code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -17900,467 +22772,546 @@
       "core": [
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-01003",
-          "text": " If <code>image</code> was not created with <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
+          "text": "If <code>image</code> was not created with <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-viewType-01004",
-          "text": " If the <a href=\"#features-imageCubeArray\"><code>imageCubeArray</code></a> feature is not enabled, <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
+          "text": "If the <a href=\"#features-imageCubeArray\"><code>imageCubeArray</code></a> feature is not enabled, <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-image-04441",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of the usages defined in the <a href=\"#valid-imageview-imageusage\">valid image usage</a> list for image views"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-None-02273",
-          "text": " The <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain at least one bit"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-02274",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then the <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-02275",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-02276",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-02277",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-02652",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478",
-          "text": " <code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718",
-          "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01020",
-          "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021",
-          "text": " <code>viewType</code> <strong class=\"purple\">must</strong> be compatible with the type of <code>image</code> as shown in the <a href=\"#resources-image-views-compatibility\">view type compatibility table</a>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04973",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be 1"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04974",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, then the remaining number of layers <strong class=\"purple\">must</strong> be 1"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-viewType-02960",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>6</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-viewType-02961",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>6</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-viewType-02962",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be <code>6</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-viewType-02963",
-          "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be a multiple of <code>6</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImageViewASTCDecodeModeEXT\">VkImageViewASTCDecodeModeEXT</a>, <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>, <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a>, <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageViewCreateFlagBits\">VkImageViewCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter",
-          "text": " <code>viewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-components-parameter",
-          "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter",
-          "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
           "vuid": "VUID-VkImageViewCreateInfo-image-06723",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-06728",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-04970",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be 1"
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-04971",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, and <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, and <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-04972",
-          "text": " If <code>image</code> was created with a <code>samples</code> value not equal to <code>VK_SAMPLE_COUNT_1_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> be either <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
+          "text": "If <code>image</code> was created with a <code>samples</code> value not equal to <code>VK_SAMPLE_COUNT_1_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> be either <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-image-02724",
-          "text": " If <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-miplevel-sizing\">Image Miplevel Sizing</a>"
+          "vuid": "VUID-VkImageViewCreateInfo-image-04441",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of the usages defined in the <a href=\"#valid-imageview-imageusage\">valid image usage</a> list for image views",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-miplevel-sizing\">Image Miplevel Sizing</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-06727",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D</code>"
+          "vuid": "VUID-VkImageViewCreateInfo-None-02273",
+          "text": "The <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain at least one bit",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01482",
-          "text": " If <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "vuid": "VUID-VkImageViewCreateInfo-usage-02274",
+          "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then the <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01483",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)": [
+          "vuid": "VUID-VkImageViewCreateInfo-usage-02275",
+          "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-image-06728",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D</code>"
+          "vuid": "VUID-VkImageViewCreateInfo-usage-08931",
+          "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-usage-02277",
+          "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08333",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08334",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08335",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then <code>usage</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08336",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08337",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08338",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR</code>, then <code>usage</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-usage-08932",
+          "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, and any of the following is true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a>\nfeature is not enabled</p>\n</li>\n<li>\n<p>the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is\n<code>VK_FALSE</code></p>\n</li>\n<li>\n<p><code>image</code> was created with an\n<a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value of 0</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format\n    features</a> <strong class=\"purple\">must</strong> contain at least one of\n    <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or\n    <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>\n    or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code></p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478",
+          "text": "<code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718",
+          "text": "If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> +  <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-02571",
+          "text": "If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-06724",
-          "text": " If <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "If <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-06725",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        }
-      ],
-      "(VK_NV_linear_color_attachment)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-06516",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>, if the image is created with <code>VK_IMAGE_TILING_LINEAR</code> and the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled"
+          "text": "If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> +  <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-usage-06517",
-          "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> must contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>, if the image is created with <code>VK_IMAGE_TILING_LINEAR</code> and the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-02571",
-          "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "vuid": "VUID-VkImageViewCreateInfo-image-02724",
+          "text": "If <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-mip-level-sizing\">Image Mip Level Sizing</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-flags-02572",
-          "text": " If the <a href=\"#features-fragmentDensityMapDynamic\"><code>fragmentDensityMapDynamic</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>"
+          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725",
+          "text": "If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> +  <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-mip-level-sizing\">Image Mip Level Sizing</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-flags-04116",
-          "text": " If <code>flags</code> does not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code> and <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, its <code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01480",
-          "text": " <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        },
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01719",
-          "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01018",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01759",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, but without the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01760",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, and if the <code>format</code> of the <code>image</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-VkImageViewCreateInfo-image-01761",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, but without the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, and if the <code>format</code> of the <code>image</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, but without the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, and if the <code>format</code> of the <code>image</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-01583",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with, or <strong class=\"purple\">must</strong> be an uncompressed format that is size-compatible with, the <code>format</code> used to create <code>image</code>"
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with, or <strong class=\"purple\">must</strong> be an uncompressed format that is size-compatible with, the <code>format</code> used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-07072",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag and <code>format</code> is a non-compressed format, the <code>levelCount</code> and <code>layerCount</code> members of <code>subresourceRange</code> <strong class=\"purple\">must</strong> both be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag and <code>format</code> is a non-compressed format, the <code>levelCount</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-09487",
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, the <code>VkPhysicalDeviceMaintenance6PropertiesKHR</code>::<code>blockTexelViewCompatibleMultipleLayers</code> property is not set to <code>VK_TRUE</code>, and <code>format</code> is a non-compressed format, then the <code>layerCount</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-01585",
-          "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used when creating <code>image</code> and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then <code>format</code> <strong class=\"purple\">must</strong> be one of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used when creating <code>image</code> and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then <code>format</code> <strong class=\"purple\">must</strong> be one of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-01586",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and if <code>subresourceRange.aspectMask</code> is one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>, then <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <a href=\"#VkFormat\">VkFormat</a> for the plane of the <code>image</code> <code>format</code> indicated by <code>subresourceRange.aspectMask</code>, as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and if <code>subresourceRange.aspectMask</code> is one of the <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bits, then <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <a href=\"#VkFormat\">VkFormat</a> for the plane of the <code>image</code> <code>format</code> indicated by <code>subresourceRange.aspectMask</code>, as defined in <a href=\"#formats-compatible-planes\">Compatible Formats of Planes of Multi-Planar Formats</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-07818",
+          "text": "<code>subresourceRange.aspectMask</code> <strong class=\"purple\">must</strong> only have at most 1 valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-01762",
-          "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, or if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format and if <code>subresourceRange.aspectMask</code> is <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be identical to the <code>format</code> used to create <code>image</code>"
+          "text": "If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, or if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format and if <code>subresourceRange.aspectMask</code> is <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be identical to the <code>format</code> used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-format-06415",
-          "text": " If the image view <a href=\"#image-views-requiring-sampler-ycbcr-conversion\">requires a sampler {YCbCr} conversion</a> and <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a conversion value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the image view <a href=\"#image-views-requiring-sampler-ycbcr-conversion\">requires a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a> and <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a conversion value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-format-04714",
-          "text": " If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a width that is a multiple of 2"
+          "text": "If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a width that is a multiple of 2",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-format-04715",
-          "text": " If <code>format</code> has a <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a height that is a multiple of 2"
+          "text": "If <code>format</code> has a <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a height that is a multiple of 2",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-01970",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06658",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>format</code> <strong class=\"purple\">must</strong> be the same used in <a href=\"#VkSamplerYcbcrConversionCreateInfo\">VkSamplerYcbcrConversionCreateInfo</a>::<code>format</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>format</code> <strong class=\"purple\">must</strong> be the same used in <a href=\"#VkSamplerYcbcrConversionCreateInfo\">VkSamplerYcbcrConversionCreateInfo</a>::<code>format</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-image-01019",
-          "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be identical to the <code>format</code> used to create <code>image</code>"
-        }
-      ],
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "vuid": "VUID-VkImageViewCreateInfo-image-01020",
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021",
+          "text": "<code>viewType</code> <strong class=\"purple\">must</strong> be compatible with the type of <code>image</code> as shown in the <a href=\"#resources-image-views-compatibility\">view type compatibility table</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-02399",
-          "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">Android external format</a>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-02400",
-          "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> object created with the same external format as <code>image</code>"
+          "text": "If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">Android external format</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> object created with the same external format as <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-02401",
-          "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
+          "text": "If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">Android external format</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08957",
+          "text": "If <code>image</code> has an <a href=\"#memory-external-screen-buffer-external-formats\">QNX Screen external format</a>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08958",
+          "text": "If <code>image</code> has an <a href=\"#memory-external-screen-buffer-external-formats\">QNX Screen external format</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> object created with the same external format as <code>image</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-08959",
+          "text": "If <code>image</code> has an <a href=\"#memory-external-screen-buffer-external-formats\">QNX Screen external format</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-02086",
-          "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)": [
+          "text": "If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-02087",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)": [
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-usage-04550",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, and the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, and the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-usage-04551",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, and <a href=\"#limits-layeredShadingRateAttachments\"><code>layeredShadingRateAttachments</code></a> is <code>VK_FALSE</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, and <a href=\"#limits-layeredShadingRateAttachments\"><code>layeredShadingRateAttachments</code></a> is <code>VK_FALSE</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-flags-02572",
+          "text": "If the <a href=\"#features-fragmentDensityMapDynamic\"><code>fragmentDensityMapDynamic</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-flags-03567",
-          "text": " If the <a href=\"#features-fragmentDensityMapDeferred\"><code>fragmentDensityMapDeferred</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-fragmentDensityMapDeferred\"><code>fragmentDensityMapDeferred</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-flags-03568",
-          "text": " If <code>flags</code> contains <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>"
+          "text": "If <code>flags</code> contains <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-03569",
-          "text": " If <code>image</code> was created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> and <code>usage</code> containing <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubsampledArrayLayers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxSubsampledArrayLayers</code></a>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If <code>image</code> was created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> and <code>usage</code> containing <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubsampledArrayLayers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxSubsampledArrayLayers</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-invocationMask-04993",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is enabled, and if <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is enabled, and if <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageViewCreateInfo-pNext-02661",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, its <code>usage</code> member <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "vuid": "VUID-VkImageViewCreateInfo-flags-04116",
+          "text": "If <code>flags</code> does not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code> and <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, its <code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-02662",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, and <code>image</code> was not created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, its <code>usage</code> member <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, and <code>image</code> was not created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, its <code>usage</code> member <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-02663",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure used to create <code>image</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-02664",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes bits other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes bits other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04973",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04974",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, then the remaining number of layers <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-viewType-02960",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>6</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-viewType-02961",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>6</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-viewType-02962",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be <code>6</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-viewType-02963",
+          "text": "If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be a multiple of <code>6</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageViewFormatSwizzle</code> is <code>VK_FALSE</code>, all elements of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageViewFormatSwizzle</code> is <code>VK_FALSE</code>, all elements of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageViewFormatReinterpretation</code> is <code>VK_FALSE</code>, the <a href=\"#VkFormat\">VkFormat</a> in <code>format</code> <strong class=\"purple\">must</strong> not contain a different number of components, or a different number of bits in each component, than the format of the <code>VkImage</code> in <code>image</code>"
-        }
-      ],
-      "(VK_KHR_video_decode_queue)": [
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageViewFormatReinterpretation</code> is <code>VK_FALSE</code>, the <a href=\"#VkFormat\">VkFormat</a> in <code>format</code> <strong class=\"purple\">must</strong> not contain a different number of components, or a different number of bits in each component, than the format of the <code>VkImage</code> in <code>image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-04817",
-          "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> and all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
-        }
-      ],
-      "(VK_KHR_video_encode_queue)": [
+          "text": "If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, or <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-image-04818",
-          "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> and all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, or <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-flags-08106",
-          "text": " If <code>flags</code> includes <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> includes <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-08107",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_metal_objects)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06787",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code>"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06944",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <a href=\"#features-textureSampleWeighted\"><code>textureSampleWeighted</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <a href=\"#features-textureSampleWeighted\"><code>textureSampleWeighted</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06945",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06946",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>components</code> <strong class=\"purple\">must</strong> be <code>VK_COMPONENT_SWIZZLE_IDENTITY</code> for all components"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>components</code> <strong class=\"purple\">must</strong> be <code>VK_COMPONENT_SWIZZLE_IDENTITY</code> for all components",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06947",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>subresourceRange.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>subresourceRange.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06948",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06949",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure, then <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06950",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and if <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> <code>VK_IMAGE_TYPE_1D</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and if <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> <code>VK_IMAGE_TYPE_1D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06951",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be equal to <code>2</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be equal to <code>2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06952",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>width</code> equal to or greater than \\((numPhases \\times \\mathbin{max}\\left( \\mathbin{align}\\left(filterSize.width,4\\right), filterSize.height\\right))\\)"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>width</code> equal to or greater than \\((numPhases \\times \\mathbin{max}\\left( \\mathbin{align}\\left(filterSize.width,4\\right), filterSize.height\\right))\\)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06953",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and if <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and if <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06954",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be equal or greater than <span class=\"eq\">numPhases</span>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be equal or greater than <span class=\"eq\">numPhases</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06955",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>width</code> equal to or greater than <code>filterSize.width</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>width</code> equal to or greater than <code>filterSize.width</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06956",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>height</code> equal to or greater than <code>filterSize.height</code>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>height</code> equal to or greater than <code>filterSize.height</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCreateInfo-pNext-06957",
-          "text": " If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure then <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a>::<code>filterSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.height</code></a>"
+          "text": "If the <code>pNext</code> chain includes <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a> structure then <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a>::<code>filterSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.height</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImageViewASTCDecodeModeEXT\">VkImageViewASTCDecodeModeEXT</a>, <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>, <a href=\"#VkImageViewSampleWeightCreateInfoQCOM\">VkImageViewSampleWeightCreateInfoQCOM</a>, <a href=\"#VkImageViewSlicedCreateInfoEXT\">VkImageViewSlicedCreateInfoEXT</a>, <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageViewCreateFlagBits\">VkImageViewCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter",
+          "text": "<code>viewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-format-parameter",
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-components-parameter",
+          "text": "<code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter",
+          "text": "<code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewUsageCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkImageViewSlicedCreateInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867",
+          "text": "<code>sliceOffset</code> <strong class=\"purple\">must</strong> be less than the effective view depth as specified in <a href=\"#resources-image-mip-level-sizing\">Image Mip Level Sizing</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868",
+          "text": "If <code>sliceCount</code> is not <code>VK_REMAINING_3D_SLICES_EXT</code>, it <strong class=\"purple\">must</strong> be be non-zero and <span class=\"eq\"><code>sliceOffset</code> +  <code>sliceCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the effective view depth as specified in <a href=\"#resources-image-mip-level-sizing\">Image Mip Level Sizing</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-image-07869",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> equal to <code>VK_IMAGE_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909",
+          "text": "<code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_3D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-None-07870",
+          "text": "The image view <strong class=\"purple\">must</strong> reference exactly 1 mip level",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-None-07871",
+          "text": "The <a href=\"#features-imageSlicedViewOf3D\">imageSlicedViewOf3D</a> feature <strong class=\"purple\">must</strong> be enabled on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -18368,31 +23319,33 @@
       "core": [
         {
           "vuid": "VUID-VkImageSubresourceRange-levelCount-01720",
-          "text": " If <code>levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceRange-layerCount-01721",
-          "text": " If <code>layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670",
+          "text": "If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, then it <strong class=\"purple\">must</strong> not include any of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670",
-          "text": " If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, then it <strong class=\"purple\">must</strong> not include any of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -18400,79 +23353,96 @@
       "core": [
         {
           "vuid": "VUID-VkComponentMapping-r-parameter",
-          "text": " <code>r</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
+          "text": "<code>r</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComponentMapping-g-parameter",
-          "text": " <code>g</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
+          "text": "<code>g</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComponentMapping-b-parameter",
-          "text": " <code>b</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
+          "text": "<code>b</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkComponentMapping-a-parameter",
-          "text": " <code>a</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
+          "text": "<code>a</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewASTCDecodeModeEXT": {
-      "(VK_EXT_astc_decode_mode)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230",
-          "text": " <code>decodeMode</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R16G16B16A16_SFLOAT</code>, <code>VK_FORMAT_R8G8B8A8_UNORM</code>, or <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>"
+          "text": "<code>decodeMode</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R16G16B16A16_SFLOAT</code>, <code>VK_FORMAT_R8G8B8A8_UNORM</code>, or <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231",
-          "text": " If the <a href=\"#features-astc-decodeModeSharedExponent\"><code>decodeModeSharedExponent</code></a> feature is not enabled, <code>decodeMode</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>"
+          "text": "If the <a href=\"#features-astc-decodeModeSharedExponent\"><code>decodeModeSharedExponent</code></a> feature is not enabled, <code>decodeMode</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232",
-          "text": " If <code>decodeMode</code> is <code>VK_FORMAT_R8G8B8A8_UNORM</code> the image view <strong class=\"purple\">must</strong> not include blocks using any of the ASTC HDR modes"
+          "text": "If <code>decodeMode</code> is <code>VK_FORMAT_R8G8B8A8_UNORM</code> the image view <strong class=\"purple\">must</strong> not include blocks using any of the ASTC HDR modes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-04084",
-          "text": " <code>format</code> of the image view <strong class=\"purple\">must</strong> be one of the <a href=\"#appendix-compressedtex-astc\">ASTC Compressed Image Formats</a>"
+          "text": "<code>format</code> of the image view <strong class=\"purple\">must</strong> be one of the <a href=\"#appendix-compressedtex-astc\">ASTC Compressed Image Formats</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter",
-          "text": " <code>decodeMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>decodeMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewSampleWeightCreateInfoQCOM": {
-      "(VK_QCOM_image_processing)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06958",
-          "text": " <code>filterSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.width</code></a>"
+          "text": "<code>filterSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.width</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06959",
-          "text": " <code>filterSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.height</code></a>"
+          "text": "<code>filterSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-maxdimension\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterDimension.height</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06960",
-          "text": " <code>filterCenter.x</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">(filterSize.width - 1)</span>"
+          "text": "<code>filterCenter.x</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">(filterSize.width - 1)</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06961",
-          "text": " <code>filterCenter.y</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">(filterSize.height - 1)</span>"
+          "text": "<code>filterCenter.y</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">(filterSize.height - 1)</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962",
-          "text": " <code>numPhases</code> <strong class=\"purple\">must</strong> be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)"
+          "text": "<code>numPhases</code> <strong class=\"purple\">must</strong> be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963",
-          "text": " <code>numPhases</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-phases\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterPhases</code></a>"
+          "text": "<code>numPhases</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-weightfilter-phases\"><code>VkPhysicalDeviceImageProcessingPropertiesQCOM</code>::<code>maxWeightFilterPhases</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -18480,945 +23450,1172 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyImageView-imageView-01026",
-          "text": " All submitted commands that refer to <code>imageView</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>imageView</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-imageView-01027",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-imageView-01028",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyImageView-imageView-parent",
-          "text": " If <code>imageView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>imageView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageViewHandleNVX": {
-      "(VK_NVX_image_view_handle)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewHandleInfoNVX\">VkImageViewHandleInfoNVX</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewHandleInfoNVX\">VkImageViewHandleInfoNVX</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewHandleInfoNVX": {
-      "(VK_NVX_image_view_handle)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>"
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655",
-          "text": " <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> if <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>"
+          "text": "<code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> if <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656",
-          "text": " If descriptorType is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bit set"
+          "text": "If descriptorType is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657",
-          "text": " If descriptorType is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_STORAGE_BIT</code> usage bit set"
+          "text": "If descriptorType is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_STORAGE_BIT</code> usage bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter",
-          "text": " If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle"
+          "text": "If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent",
-          "text": " Both of <code>imageView</code>, and <code>sampler</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>imageView</code>, and <code>sampler</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageViewAddressNVX": {
-      "(VK_NVX_image_view_handle)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageViewAddressNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parameter",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewAddressNVX-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageViewAddressPropertiesNVX\">VkImageViewAddressPropertiesNVX</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageViewAddressPropertiesNVX\">VkImageViewAddressPropertiesNVX</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parent",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewAddressPropertiesNVX": {
-      "(VK_NVX_image_view_handle)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewAddressPropertiesNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewAddressPropertiesNVX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewMinLodCreateInfoEXT": {
-      "(VK_EXT_image_view_min_lod)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455",
-          "text": " If the <a href=\"#features-minLod\"><code>minLod</code></a> feature is not enabled, <code>minLod</code> <strong class=\"purple\">must</strong> be <code>0.0</code>"
+          "text": "If the <a href=\"#features-minLod\"><code>minLod</code></a> feature is not enabled, <code>minLod</code> <strong class=\"purple\">must</strong> be <code>0.0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456",
-          "text": " <code>minLod</code> <strong class=\"purple\">must</strong> be less or equal to the index of the last mipmap level accessible to the view"
+          "text": "<code>minLod</code> <strong class=\"purple\">must</strong> be less or equal to the index of the last mipmap level accessible to the view",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateAccelerationStructureNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoNV\">VkAccelerationStructureCreateInfoNV</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoNV\">VkAccelerationStructureCreateInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter",
-          "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureCreateInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421",
-          "text": " If <code>compactedSize</code> is not <code>0</code> then both <code>info.geometryCount</code> and <code>info.instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>compactedSize</code> is not <code>0</code> then both <code>info.geometryCount</code> and <code>info.instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter",
-          "text": " <code>info</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure"
+          "text": "<code>info</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422",
-          "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>"
+          "text": "<code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423",
-          "text": " <code>instanceCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxInstanceCount</code>"
+          "text": "<code>instanceCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxInstanceCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424",
-          "text": " The total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxTriangleCount</code>"
+          "text": "The total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxTriangleCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then <code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then <code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-type-02786",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then the <code>geometryType</code> member of each geometry in <code>pGeometries</code> <strong class=\"purple\">must</strong> be the same"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then the <code>geometryType</code> member of each geometry in <code>pGeometries</code> <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureInfoNV-type-04623",
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592",
-          "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV</code> bit set"
+          "text": "If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-scratch-02781",
-          "text": " <code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-instanceData-02782",
-          "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
+          "text": "If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNV\">VkAccelerationStructureTypeNV</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNV\">VkAccelerationStructureTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNV\">VkBuildAccelerationStructureFlagBitsNV</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNV\">VkBuildAccelerationStructureFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter",
-          "text": " If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkGeometryNV\">VkGeometryNV</a> structures"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-VkAccelerationStructureInfoNV-type-04623",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkGeometryNV\">VkGeometryNV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611",
-          "text": " The <a href=\"#features-accelerationStructure\"><code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488",
-          "text": " If <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>deviceAddress</code> is not zero, the <a href=\"#features-accelerationStructureCaptureReplay\"><code>accelerationStructureCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>deviceAddress</code> is not zero, the <a href=\"#features-accelerationStructureCaptureReplay\"><code>accelerationStructureCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-device-03489",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter",
-          "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureCreateInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612",
-          "text": " If <code>deviceAddress</code> is not zero, <code>createFlags</code> <strong class=\"purple\">must</strong> include <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>"
+          "text": "If <code>deviceAddress</code> is not zero, <code>createFlags</code> <strong class=\"purple\">must</strong> include <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09488",
+          "text": "If <code>deviceAddress</code> is not zero, it <strong class=\"purple\">must</strong> have been retrieved from an identically created acceleration structure, except for <code>buffer</code> and <code>deviceAddress</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09489",
+          "text": "If <code>deviceAddress</code> is not zero, <code>buffer</code> <strong class=\"purple\">must</strong> have been created identically to the <code>buffer</code> used to create the acceleration structure from which <code>deviceAddress</code> was retrieved, except for <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>::<code>opaqueCaptureAddress</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09490",
+          "text": "If <code>deviceAddress</code> is not zero, <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>::<code>opaqueCaptureAddress</code> that was retrieved from <a href=\"#vkGetBufferOpaqueCaptureAddress\">vkGetBufferOpaqueCaptureAddress</a> for the <code>buffer</code> that was used to create the acceleration structure from which <code>deviceAddress</code> was retrieved",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613",
-          "text": " If <code>createFlags</code> includes <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>accelerationStructureCaptureReplay</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If <code>createFlags</code> includes <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>accelerationStructureCaptureReplay</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03616",
-          "text": " The sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "text": "The sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03734",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>256</code> bytes"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR</code>"
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954",
+          "text": "If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in <code>createFlags</code> and <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, one member of the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a> or <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>"
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955",
+          "text": "If any geometry includes <code>VkAccelerationStructureGeometryMotionTrianglesDataNV</code> then <code>createFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter",
-          "text": " <code>createFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccelerationStructureCreateFlagBitsKHR\">VkAccelerationStructureCreateFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
-        {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04954",
-          "text": "    If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in    <code>flags</code> and <code>type</code> is    <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, one member of the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04955",
-          "text": " If any geometry includes <code>VkAccelerationStructureGeometryMotionTrianglesDataNV</code> then <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_descriptor_buffer)": [
-        {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108",
-          "text": " If <code>createFlags</code> includes <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>createFlags</code> includes <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>createFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>createFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a> or <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter",
+          "text": "<code>createFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccelerationStructureCreateFlagBitsKHR\">VkAccelerationStructureCreateFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter",
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureMotionInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureMotionInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAccelerationStructureBuildSizesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
-          "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617",
-          "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> or <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619",
-          "text": " If <code>pBuildInfo-&gt;geometryCount</code> is not <code>0</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values"
+          "text": "If <code>pBuildInfo-&gt;geometryCount</code> is not <code>0</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785",
-          "text": " If <code>pBuildInfo-&gt;pGeometries</code> or <code>pBuildInfo-&gt;ppGeometries</code> has a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <code>pMaxPrimitiveCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
+          "text": "If <code>pBuildInfo-&gt;pGeometries</code> or <code>pBuildInfo-&gt;ppGeometries</code> has a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <code>pMaxPrimitiveCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameter",
-          "text": " <code>buildType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildTypeKHR\">VkAccelerationStructureBuildTypeKHR</a> value"
+          "text": "<code>buildType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildTypeKHR\">VkAccelerationStructureBuildTypeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameter",
-          "text": " <code>pBuildInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure"
+          "text": "<code>pBuildInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter",
-          "text": " If <code>pMaxPrimitiveCounts</code> is not <code>NULL</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values"
+          "text": "If <code>pMaxPrimitiveCounts</code> is not <code>NULL</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter",
-          "text": " <code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure"
+          "text": "<code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureBuildSizesInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeometryNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkGeometryNV-geometryType-03503",
-          "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_TRIANGLES_NV</code> or <code>VK_GEOMETRY_TYPE_AABBS_NV</code>"
+          "text": "<code>geometryType</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_TRIANGLES_NV</code> or <code>VK_GEOMETRY_TYPE_AABBS_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryNV-geometryType-parameter",
-          "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value"
+          "text": "<code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryNV-geometry-parameter",
-          "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryDataNV\">VkGeometryDataNV</a> structure"
+          "text": "<code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryDataNV\">VkGeometryDataNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeometryDataNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkGeometryDataNV-triangles-parameter",
-          "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTrianglesNV\">VkGeometryTrianglesNV</a> structure"
+          "text": "<code>triangles</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTrianglesNV\">VkGeometryTrianglesNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryDataNV-aabbs-parameter",
-          "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryAABBNV\">VkGeometryAABBNV</a> structure"
+          "text": "<code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryAABBNV\">VkGeometryAABBNV</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeometryTrianglesNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428",
-          "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>vertexData</code>"
+          "text": "<code>vertexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>vertexData</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429",
-          "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <code>vertexFormat</code>"
+          "text": "<code>vertexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <code>vertexFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430",
-          "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R32G32B32_SFLOAT</code>, <code>VK_FORMAT_R32G32_SFLOAT</code>, <code>VK_FORMAT_R16G16B16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SNORM</code>, or <code>VK_FORMAT_R16G16B16_SNORM</code>"
+          "text": "<code>vertexFormat</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R32G32B32_SFLOAT</code>, <code>VK_FORMAT_R32G32_SFLOAT</code>, <code>VK_FORMAT_R16G16B16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SNORM</code>, or <code>VK_FORMAT_R16G16B16_SNORM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexStride-03818",
-          "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
+          "text": "<code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431",
-          "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>indexData</code>"
+          "text": "<code>indexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>indexData</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432",
-          "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <code>indexType</code>"
+          "text": "<code>indexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <code>indexType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_NV</code>"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434",
-          "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>"
+          "text": "<code>indexData</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435",
-          "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle if <code>indexType</code> is not <code>VK_INDEX_TYPE_NONE_NV</code>"
+          "text": "<code>indexData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle if <code>indexType</code> is not <code>VK_INDEX_TYPE_NONE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436",
-          "text": " <code>indexCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>"
+          "text": "<code>indexCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437",
-          "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>transformData</code>"
+          "text": "<code>transformOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>transformData</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438",
-          "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>16</code>"
+          "text": "<code>transformOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>16</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter",
-          "text": " If <code>vertexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>vertexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>vertexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>vertexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter",
-          "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter",
-          "text": " If <code>indexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>indexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter",
-          "text": " If <code>transformData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>transformData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>transformData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>transformData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryTrianglesNV-commonparent",
-          "text": " Each of <code>indexData</code>, <code>transformData</code>, and <code>vertexData</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>indexData</code>, <code>transformData</code>, and <code>vertexData</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeometryAABBNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkGeometryAABBNV-offset-02439",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>aabbData</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>aabbData</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryAABBNV-offset-02440",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryAABBNV-stride-02441",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryAABBNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryAABBNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter",
-          "text": " If <code>aabbData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>aabbData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>aabbData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>aabbData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442",
-          "text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter",
-          "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent",
-          "text": " If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyAccelerationStructureNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752",
-          "text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter",
-          "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent",
-          "text": " If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAccelerationStructureMemoryRequirementsNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2KHR\">VkMemoryRequirements2KHR</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2KHR\">VkMemoryRequirements2KHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureMemoryRequirementsInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMemoryRequirementsTypeNV\">VkAccelerationStructureMemoryRequirementsTypeNV</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMemoryRequirementsTypeNV\">VkAccelerationStructureMemoryRequirementsTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkBindAccelerationStructureMemoryNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter",
-          "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindAccelerationStructureMemoryInfoNV\">VkBindAccelerationStructureMemoryInfoNV</a> structures"
+          "text": "<code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindAccelerationStructureMemoryInfoNV\">VkBindAccelerationStructureMemoryInfoNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength",
-          "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindAccelerationStructureMemoryInfoNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> not already be backed by a memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624",
-          "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
+          "text": "The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter",
-          "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent",
-          "text": " Both of <code>accelerationStructure</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>accelerationStructure</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAccelerationStructureHandleNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of the query, as described above"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of the query, as described above",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAccelerationStructureDeviceAddressKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureDeviceAddressInfoKHR\">VkAccelerationStructureDeviceAddressInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureDeviceAddressInfoKHR\">VkAccelerationStructureDeviceAddressInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureDeviceAddressInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateMicromapEXT-micromap-07430",
-          "text": " The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-deviceAddress-07431",
-          "text": " If <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>deviceAddress</code> is not zero, the <a href=\"#features-micromapCaptureReplay\"><code>micromapCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>deviceAddress</code> is not zero, the <a href=\"#features-micromapCaptureReplay\"><code>micromapCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-device-07432",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMicromapEXT-pMicromap-parameter",
-          "text": " <code>pMicromap</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "<code>pMicromap</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapCreateInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-deviceAddress-07433",
-          "text": " If <code>deviceAddress</code> is not zero, <code>createFlags</code> <strong class=\"purple\">must</strong> include <code>VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT</code>"
+          "text": "If <code>deviceAddress</code> is not zero, <code>createFlags</code> <strong class=\"purple\">must</strong> include <code>VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-createFlags-07434",
-          "text": " If <code>createFlags</code> includes <code>VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT</code>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>::<code>micromapCaptureReplay</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If <code>createFlags</code> includes <code>VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT</code>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>::<code>micromapCaptureReplay</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-07435",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-07436",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-offset-07437",
-          "text": " The sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "text": "The sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-offset-07438",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>256</code> bytes"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-createFlags-parameter",
-          "text": " <code>createFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMicromapCreateFlagBitsEXT\">VkMicromapCreateFlagBitsEXT</a> values"
+          "text": "<code>createFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMicromapCreateFlagBitsEXT\">VkMicromapCreateFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapCreateInfoEXT-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetMicromapBuildSizesEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
+        {
+          "vuid": "VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180",
+          "text": "<a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a>::<code>dstMicromap</code> <strong class=\"purple\">must</strong> have been created from <code>device</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-micromap-07439",
-          "text": " The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-device-07440",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-buildType-parameter",
-          "text": " <code>buildType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildTypeKHR\">VkAccelerationStructureBuildTypeKHR</a> value"
+          "text": "<code>buildType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildTypeKHR\">VkAccelerationStructureBuildTypeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameter",
-          "text": " <code>pBuildInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure"
+          "text": "<code>pBuildInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameter",
-          "text": " <code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure"
+          "text": "<code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapBuildSizesInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapBuildSizesInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildSizesInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyMicromapEXT-micromap-07441",
-          "text": " All submitted commands that refer to <code>micromap</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>micromap</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-micromap-07442",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>micromap</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>micromap</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-micromap-07443",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>micromap</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>micromap</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-micromap-parameter",
-          "text": " If <code>micromap</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>micromap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "If <code>micromap</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>micromap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyMicromapEXT-micromap-parent",
-          "text": " If <code>micromap</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>micromap</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -19426,293 +24623,341 @@
       "core": [
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkGetImageMemoryRequirements-image-01588",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag set"
-        }
-      ],
-      "(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-vkGetImageMemoryRequirements-image-04004",
-          "text": " If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkGetImageMemoryRequirements-image-01588",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetImageMemoryRequirements-image-04004",
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetImageMemoryRequirements-image-08960",
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageMemoryRequirements-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetBufferMemoryRequirements2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferMemoryRequirementsInfo2\">VkBufferMemoryRequirementsInfo2</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferMemoryRequirementsInfo2\">VkBufferMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceBufferMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceBufferMemoryRequirements\">VkDeviceBufferMemoryRequirements</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceBufferMemoryRequirements\">VkDeviceBufferMemoryRequirements</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferMemoryRequirementsInfo2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceBufferMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceBufferMemoryRequirements-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceBufferMemoryRequirements-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageMemoryRequirements2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceImageMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceImageMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageMemoryRequirementsInfo2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589",
-          "text": " If <code>image</code> was created with a <em>multi-planar</em> format and the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
+          "text": "If <code>image</code> was created with a <em>multi-planar</em> format and the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279",
+          "text": "If <code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> and with <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590",
-          "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279",
-          "text": " If <code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> and with <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
+          "text": "If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280",
-          "text": " If <code>image</code> was created with a single-plane format and with any <code>tiling</code> other than <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01591",
-          "text": " If <code>image</code> was created with a single-plane format, there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If <code>image</code> was created with a single-plane format and with any <code>tiling</code> other than <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897",
-          "text": " If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-08961",
+          "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceImageMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
-          "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416",
-          "text": " The <code>pCreateInfo</code>::<code>pNext</code> chain <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a> structure"
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416",
+          "text": "The <code>pCreateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417",
-          "text": " If <code>pCreateInfo</code>::<code>format</code> specifies a <em>multi-planar</em> format and <code>pCreateInfo</code>::<code>flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set then <code>planeAspect</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_NONE_KHR</code>"
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776",
+          "text": "The <code>pCreateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419",
-          "text": " If <code>pCreateInfo</code>::<code>flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set and if the <code>pCreateInfo</code>::<code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-06996",
+          "text": "Applications also <strong class=\"purple\">must</strong> not call <a href=\"#vkGetDeviceImageMemoryRequirements\">vkGetDeviceImageMemoryRequirements</a> with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> whose <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure with non-zero <code>externalFormat</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-08962",
+          "text": "Applications also <strong class=\"purple\">must</strong> not call <a href=\"#vkGetDeviceImageMemoryRequirements\">vkGetDeviceImageMemoryRequirements</a> with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> whose <code>pNext</code> chain includes a <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a> structure with non-zero <code>externalFormat</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417",
+          "text": "If <code>pCreateInfo-&gt;format</code> specifies a <em>multi-planar</em> format and <code>pCreateInfo-&gt;flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set then <code>planeAspect</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_NONE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419",
+          "text": "If <code>pCreateInfo-&gt;flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set and if the <code>pCreateInfo-&gt;tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420",
+          "text": "If <code>pCreateInfo-&gt;tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceImageMemoryRequirements-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter",
-          "text": " If <code>planeAspect</code> is not <code>0</code>, <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776",
-          "text": " The <code>pCreateInfo</code>::<code>pNext</code> chain <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420",
-          "text": " If <code>pCreateInfo</code>::<code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
-        {
-          "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-06996",
-          "text": " Applications also <strong class=\"purple\">must</strong> not call <a href=\"#vkGetDeviceImageMemoryRequirements\">vkGetDeviceImageMemoryRequirements</a> with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> whose <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure with non-zero <code>externalFormat</code>"
+          "text": "If <code>planeAspect</code> is not <code>0</code>, <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImagePlaneMemoryRequirementsInfo": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281",
-          "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
+          "text": "If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282",
+          "text": "If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter",
-          "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282",
-          "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)"
+          "text": "<code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryRequirements2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryRequirements2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryRequirements2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMemoryRequirements2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkMemoryDedicatedRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+      "core": [
         {
           "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -19720,285 +24965,324 @@
       "core": [
         {
           "vuid": "VUID-vkBindBufferMemory-buffer-07459",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been bound to a memory object"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been bound to a memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-buffer-01030",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-memory-01035",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-size-01037",
-          "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
+          "text": "The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkBindBufferMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindBufferMemory-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindBufferMemory-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindBufferMemory-buffer-parent",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        },
-        {
-          "vuid": "VUID-vkBindBufferMemory-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
-        {
           "vuid": "VUID-vkBindBufferMemory-buffer-01444",
-          "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>"
+          "text": "If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-memory-01508",
-          "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-None-01898",
-          "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
+          "text": "If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-None-01899",
-          "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)": [
+          "text": "If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-buffer-01038",
-          "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+          "text": "If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkBindBufferMemory-buffer-01039",
-          "text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "vuid": "VUID-vkBindBufferMemory-apiVersion-07920",
+          "text": "If     the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled,     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     <code>buffer</code> was not created with     <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code>     equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated     dedicated for a specific buffer or image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-memory-02726",
-          "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-vkBindBufferMemory-memory-02727",
-          "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-memory-02985",
-          "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
+          "text": "If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory-memory-02986",
-          "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+          "text": "If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddress-03339",
-          "text": " If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
+          "text": "If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200",
+          "text": "If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddressCaptureReplay</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-buffer-06408",
-          "text": " If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112",
-          "text": " If the <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a> ::<code>descriptorBufferCaptureReplay</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
+          "text": "If the <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-buffer-09201",
+          "text": "If the <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-buffer-parent",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindBufferMemory-memory-parent",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkBindBufferMemory2": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
+      "core": [
         {
           "vuid": "VUID-vkBindBufferMemory2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter",
-          "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindBufferMemoryInfo\">VkBindBufferMemoryInfo</a> structures"
+          "text": "<code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindBufferMemoryInfo\">VkBindBufferMemoryInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength",
-          "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindBufferMemoryInfo": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
+      "core": [
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-buffer-07459",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been bound to a memory object"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been bound to a memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01030",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01031",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memory-01035",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01036",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-size-01037",
-          "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
+          "text": "The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
-        {
           "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444",
-          "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>"
+          "text": "If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508",
-          "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)": [
+          "text": "If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-None-01898",
-          "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
+          "text": "If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-None-01899",
-          "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [
+          "text": "If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038",
-          "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+          "text": "If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01039",
-          "text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "vuid": "VUID-VkBindBufferMemoryInfo-apiVersion-07920",
+          "text": "If     the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled,     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     <code>buffer</code> was not created with     <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code>     equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated     dedicated for a specific buffer or image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memory-02726",
-          "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkBindBufferMemoryInfo-memory-02727",
-          "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985",
-          "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
+          "text": "If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986",
-          "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+          "text": "If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339",
-          "text": " If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_FUCHSIA_buffer_collection)": [
+          "text": "If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200",
+          "text": "If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddressCaptureReplay</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-buffer-06408",
-          "text": " If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112",
-          "text": " If the <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a> ::<code>descriptorBufferCaptureReplay</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "If the <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-buffer-09201",
+          "text": "If the <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a> or <a href=\"#VkBindMemoryStatusKHR\">VkBindMemoryStatusKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindBufferMemoryInfo-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindBufferMemoryDeviceGroupInfo": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606",
-          "text": " <code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
+          "text": "<code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607",
-          "text": " All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
+          "text": "All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter",
-          "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBindMemoryStatusKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkBindMemoryStatusKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindMemoryStatusKHR-pResult-parameter",
+          "text": "<code>pResult</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkResult\">VkResult</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -20006,789 +25290,860 @@
       "core": [
         {
           "vuid": "VUID-vkBindImageMemory-image-07460",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been bound to a memory object"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been bound to a memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory-image-01045",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory-memoryOffset-01046",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkBindImageMemory-memory-01047",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-memoryOffset-01048",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-size-01049",
-          "text": " The difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the same <code>image</code>"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        },
-        {
-          "vuid": "VUID-vkBindImageMemory-memory-parent",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
-        {
           "vuid": "VUID-vkBindImageMemory-image-01445",
-          "text": " If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [
-        {
-          "vuid": "VUID-vkBindImageMemory-memory-01509",
-          "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [
+          "text": "If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-memory-02628",
-          "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory-memory-02629",
-          "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-None-01901",
-          "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
+          "text": "If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory-None-01902",
-          "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)": [
+          "text": "If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-image-01050",
-          "text": " If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+          "text": "If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkBindImageMemory-image-01051",
-          "text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "vuid": "VUID-vkBindImageMemory-apiVersion-07921",
+          "text": "If     the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled,     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     <code>image</code> was not created with     <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code>     equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated     dedicated for a specific buffer or image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-memory-02728",
-          "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-vkBindImageMemory-memory-02729",
-          "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-memory-02989",
-          "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
+          "text": "If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory-memory-02990",
-          "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113",
-          "text": " If the <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a> ::<code>descriptorBufferCaptureReplay</code> feature is enabled and <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If the <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-image-09202",
+          "text": "If the <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-image-01608",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)": [
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-memory-01047",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-memoryOffset-01048",
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-size-01049",
+          "text": "The difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the same <code>image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory-image-06392",
-          "text": " If <code>image</code> was created with <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> chained to <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
+          "text": "If <code>image</code> was created with <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> chained to <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-image-parent",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindImageMemory-memory-parent",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkBindImageMemory2": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-vkBindImageMemory2-pBindInfos-02858",
-          "text": " If any <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> then all planes of <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> <strong class=\"purple\">must</strong> be bound individually in separate <code>pBindInfos</code>"
+          "text": "If any <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> then all planes of <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> <strong class=\"purple\">must</strong> be bound individually in separate <code>pBindInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory2-pBindInfos-04006",
-          "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> not refer to the same image subresource more than once"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
+          "text": "<code>pBindInfos</code> <strong class=\"purple\">must</strong> not refer to the same image subresource more than once",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBindImageMemory2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter",
-          "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a> structures"
+          "text": "<code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength",
-          "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindImageMemoryInfo": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
+      "core": [
         {
           "vuid": "VUID-VkBindImageMemoryInfo-image-07460",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been bound to a memory object"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been bound to a memory object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-image-01045",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01046",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBindImageMemoryInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>, <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a>, or <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-commonparent",
-          "text": " Both of <code>image</code>, and <code>memory</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
-        {
           "vuid": "VUID-VkBindImageMemoryInfo-image-01445",
-          "text": " If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-memory-01509",
-          "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [
+          "text": "If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memory-02628",
-          "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memory-02629",
-          "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)": [
+          "text": "If the <a href=\"#features-dedicatedAllocationImageAliasing\"><code>dedicatedAllocationImageAliasing</code></a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-None-01901",
-          "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
+          "text": "If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-None-01902",
-          "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [
+          "text": "If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-image-01050",
-          "text": " If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+          "text": "If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkBindImageMemoryInfo-image-01051",
-          "text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+          "vuid": "VUID-VkBindImageMemoryInfo-apiVersion-07921",
+          "text": "If     the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled,     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     <code>image</code> was not created with     <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code>     equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated     dedicated for a specific buffer or image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memory-02728",
-          "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-memory-02729",
-          "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+          "text": "If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memory-02989",
-          "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
+          "text": "If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-memory-02990",
-          "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113",
-          "text": " If the <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a> ::<code>descriptorBufferCaptureReplay</code> feature is enabled and <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-memory-01612",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
+          "text": "If the <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01613",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
+          "vuid": "VUID-VkBindImageMemoryInfo-image-09202",
+          "text": "If the <code>image</code> was created with the <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBindImageMemoryInfo-memory-01614",
-          "text": " The difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the same <code>image</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>"
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>"
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code>"
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> bit set"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-image-07736",
-          "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> bit set, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure"
+          "text": "If <code>image</code> was created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> bit set, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)": [
-        {
-          "vuid": "VUID-VkBindImageMemoryInfo-memory-01625",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01626",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01627",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, and <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>splitInstanceBindRegionCount</code> is not zero, then <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code> bit set"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, and <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>splitInstanceBindRegionCount</code> is not zero, then <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be valid rectangles contained within the dimensions of <code>image</code>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be valid rectangles contained within the dimensions of <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, the union of the areas of all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> that correspond to the same instance of <code>image</code> <strong class=\"purple\">must</strong> cover the entire image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, the union of the areas of all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> that correspond to the same instance of <code>image</code> <strong class=\"purple\">must</strong> cover the entire image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-image-01630",
-          "text": " If <code>image</code> was created with a valid swapchain handle in <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>::<code>swapchain</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure containing the same swapchain handle"
+          "text": "If <code>image</code> was created with a valid swapchain handle in <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>::<code>swapchain</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure containing the same swapchain handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632",
-          "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemoryInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>, <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a>, <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>, or <a href=\"#VkBindMemoryStatusKHR\">VkBindMemoryStatusKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemoryInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemoryInfo-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemoryInfo-commonparent",
+          "text": "Both of <code>image</code>, and <code>memory</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindImageMemoryDeviceGroupInfo": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633",
-          "text": " At least one of <code>deviceIndexCount</code> and <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "At least one of <code>deviceIndexCount</code> and <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634",
-          "text": " <code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
+          "text": "<code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635",
-          "text": " All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
+          "text": "All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636",
-          "text": " <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device squared"
+          "text": "<code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device squared",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637",
-          "text": " Elements of <code>pSplitInstanceBindRegions</code> that correspond to the same instance of an image <strong class=\"purple\">must</strong> not overlap"
+          "text": "Elements of <code>pSplitInstanceBindRegions</code> that correspond to the same instance of an image <strong class=\"purple\">must</strong> not overlap",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638",
-          "text": " The <code>offset.x</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of all non-metadata aspects of the image"
+          "text": "The <code>offset.x</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of all non-metadata aspects of the image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639",
-          "text": " The <code>offset.y</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of all non-metadata aspects of the image"
+          "text": "The <code>offset.y</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of all non-metadata aspects of the image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640",
-          "text": " The <code>extent.width</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else <code>extent.width</code> &#43; <code>offset.x</code> <strong class=\"purple\">must</strong> equal the width of the image subresource"
+          "text": "The <code>extent.width</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else <code>extent.width</code> +  <code>offset.x</code> <strong class=\"purple\">must</strong> equal the width of the image subresource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641",
-          "text": " The <code>extent.height</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else <code>extent.height</code> &#43; <code>offset.y</code> <strong class=\"purple\">must</strong> equal the height of the image subresource"
+          "text": "The <code>extent.height</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else <code>extent.height</code> +  <code>offset.y</code> <strong class=\"purple\">must</strong> equal the height of the image subresource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter",
-          "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter",
-          "text": " If <code>splitInstanceBindRegionCount</code> is not <code>0</code>, <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>splitInstanceBindRegionCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "If <code>splitInstanceBindRegionCount</code> is not <code>0</code>, <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>splitInstanceBindRegionCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindImageMemorySwapchainInfoKHR": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644",
-          "text": " <code>imageIndex</code> <strong class=\"purple\">must</strong> be less than the number of images in <code>swapchain</code>"
+          "text": "<code>imageIndex</code> <strong class=\"purple\">must</strong> be less than the number of images in <code>swapchain</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756",
+          "text": "If the <code>swapchain</code> has been created with <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>, <code>imageIndex</code> <strong class=\"purple\">must</strong> be one that has previously been returned by <a href=\"#vkAcquireNextImageKHR\">vkAcquireNextImageKHR</a> or <a href=\"#vkAcquireNextImage2KHR\">vkAcquireNextImage2KHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
-        {
-          "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756",
-          "text": "     If the <code>swapchain</code> has been created with     <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>,     <code>imageIndex</code> <strong class=\"purple\">must</strong> be one that has previously been returned by     <a href=\"#vkAcquireNextImageKHR\">vkAcquireNextImageKHR</a> ifdef::VK_VERSION_1_1,VK_KHR_device_group[or <a href=\"#vkAcquireNextImage2KHR\">vkAcquireNextImage2KHR</a>]"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindImagePlaneMemoryInfo": {
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283",
-          "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
+          "text": "If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284",
+          "text": "If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter",
-          "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284",
-          "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>)"
+          "text": "<code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateBufferCollectionFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCollectionCreateInfoFUCHSIA\">VkBufferCollectionCreateInfoFUCHSIA</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCollectionCreateInfoFUCHSIA\">VkBufferCollectionCreateInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameter",
-          "text": " <code>pCollection</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>pCollection</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCollectionCreateInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393",
-          "text": " <code>collectionToken</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code> to a Zircon channel allocated from Sysmem (<code>fuchsia.sysmem.Allocator</code>/AllocateSharedCollection) with <code>ZX_DEFAULT_CHANNEL_RIGHTS</code> rights"
+          "text": "<code>collectionToken</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code> to a Zircon channel allocated from Sysmem (<code>fuchsia.sysmem.Allocator</code>/AllocateSharedCollection) with <code>ZX_DEFAULT_CHANNEL_RIGHTS</code> rights",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetBufferCollectionImageConstraintsFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394",
-          "text": " <code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>"
+          "text": "<code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameter",
-          "text": " <code>pImageConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageConstraintsInfoFUCHSIA\">VkImageConstraintsInfoFUCHSIA</a> structure"
+          "text": "<code>pImageConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageConstraintsInfoFUCHSIA\">VkImageConstraintsInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parent",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageConstraintsInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395",
-          "text": " All elements of <code>pFormatConstraints</code> <strong class=\"purple\">must</strong> have at least one bit set in its <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a>::<code>requiredFormatFeatures</code>"
+          "text": "All elements of <code>pFormatConstraints</code> <strong class=\"purple\">must</strong> have at least one bit set in its <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a>::<code>requiredFormatFeatures</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396",
-          "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>"
+          "text": "If <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397",
-          "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>"
+          "text": "If <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398",
-          "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
+          "text": "If <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399",
-          "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400",
-          "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+          "text": "If <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401",
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, and <code>pFormatConstraints-&gt;imageCreateInfo-&gt;usage</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then <code>pFormatConstraints-&gt;requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameter",
-          "text": " <code>pFormatConstraints</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>formatConstraintsCount</code> valid <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a> structures"
+          "text": "<code>pFormatConstraints</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>formatConstraintsCount</code> valid <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter",
-          "text": " <code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure"
+          "text": "<code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageConstraintsInfoFlagBitsFUCHSIA\">VkImageConstraintsInfoFlagBitsFUCHSIA</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageConstraintsInfoFlagBitsFUCHSIA\">VkImageConstraintsInfoFlagBitsFUCHSIA</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylength",
-          "text": " <code>formatConstraintsCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_FUCHSIA_buffer_collection)+(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is enabled, and <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
+          "text": "<code>formatConstraintsCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageFormatConstraintsInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameter",
-          "text": " <code>imageCreateInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
+          "text": "<code>imageCreateInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter",
-          "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
+          "text": "<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmask",
-          "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameter",
-          "text": " <code>pColorSpaces</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorSpaceCount</code> valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structures"
+          "text": "<code>pColorSpaces</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorSpaceCount</code> valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylength",
-          "text": " <code>colorSpaceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>colorSpaceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCollectionConstraintsInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSysmemColorSpaceFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402",
-          "text": " <code>colorSpace</code> <strong class=\"purple\">must</strong> be a <code>ColorSpaceType</code> as defined in <code>fuchsia.sysmem/image_formats.fidl</code>"
+          "text": "<code>colorSpace</code> <strong class=\"purple\">must</strong> be a <code>ColorSpaceType</code> as defined in <code>fuchsia.sysmem/image_formats.fidl</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetBufferCollectionBufferConstraintsFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403",
-          "text": " <code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>"
+          "text": "<code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameter",
-          "text": " <code>pBufferConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a> structure"
+          "text": "<code>pBufferConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parent",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferConstraintsInfoFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404",
-          "text": " The <code>requiredFormatFeatures</code> bitmask of <code>VkFormatFeatureFlagBits</code> <strong class=\"purple\">must</strong> be chosen from among the buffer compatible format features listed in <a href=\"#buffer-compatible-format-features\">buffer compatible format features</a>"
+          "text": "The <code>requiredFormatFeatures</code> bitmask of <code>VkFormatFeatureFlagBits</code> <strong class=\"purple\">must</strong> be chosen from among the buffer compatible format features listed in <a href=\"#buffer-compatible-format-features\">buffer compatible format features</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameter",
-          "text": " <code>createInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
+          "text": "<code>createInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter",
-          "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
+          "text": "<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter",
-          "text": " <code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure"
+          "text": "<code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetBufferCollectionPropertiesFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405",
-          "text": " Prior to calling <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>, the constraints on the buffer collection <strong class=\"purple\">must</strong> have been set by either <a href=\"#vkSetBufferCollectionImageConstraintsFUCHSIA\">vkSetBufferCollectionImageConstraintsFUCHSIA</a> or <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>"
+          "text": "Prior to calling <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>, the constraints on the buffer collection <strong class=\"purple\">must</strong> have been set by either <a href=\"#vkSetBufferCollectionImageConstraintsFUCHSIA\">vkSetBufferCollectionImageConstraintsFUCHSIA</a> or <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameter",
-          "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> structure"
+          "text": "<code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parent",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCollectionPropertiesFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameter",
-          "text": " <code>formatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
+          "text": "<code>formatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmask",
-          "text": " <code>formatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>formatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameter",
-          "text": " <code>sysmemColorSpaceIndex</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structure"
+          "text": "<code>sysmemColorSpaceIndex</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameter",
-          "text": " <code>samplerYcbcrConversionComponents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
+          "text": "<code>samplerYcbcrConversionComponents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameter",
-          "text": " <code>suggestedYcbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value"
+          "text": "<code>suggestedYcbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameter",
-          "text": " <code>suggestedYcbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value"
+          "text": "<code>suggestedYcbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameter",
-          "text": " <code>suggestedXChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
+          "text": "<code>suggestedXChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameter",
-          "text": " <code>suggestedYChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
+          "text": "<code>suggestedYChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImportMemoryBufferCollectionFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406",
-          "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than the value retrieved as <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>:bufferCount"
+          "text": "<code>index</code> <strong class=\"purple\">must</strong> be less than the value retrieved as <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>:bufferCount",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyBufferCollectionFUCHSIA": {
-      "(VK_FUCHSIA_buffer_collection)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407",
-          "text": " <a href=\"#VkImage\">VkImage</a> and <a href=\"#VkBuffer\">VkBuffer</a> objects that referenced <code>collection</code> upon creation by inclusion of a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> or <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> or <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structures respectively, <strong class=\"purple\">may</strong> outlive <code>collection</code>"
+          "text": "<a href=\"#VkImage\">VkImage</a> and <a href=\"#VkBuffer\">VkBuffer</a> objects that referenced <code>collection</code> upon creation by inclusion of a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> or <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> or <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structures respectively, <strong class=\"purple\">may</strong> outlive <code>collection</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parameter",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parent",
-          "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -20796,23 +26151,28 @@
       "core": [
         {
           "vuid": "VUID-vkCreateSampler-maxSamplerAllocationCount-04110",
-          "text": " There <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxSamplerAllocationCount</code> <a href=\"#VkSampler\">VkSampler</a> objects currently created on the device"
+          "text": "There <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxSamplerAllocationCount</code> <a href=\"#VkSampler\">VkSampler</a> objects currently created on the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSampler-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSampler-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSampler-pSampler-parameter",
-          "text": " <code>pSampler</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSampler\">VkSampler</a> handle"
+          "text": "<code>pSampler</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSampler\">VkSampler</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -20820,247 +26180,291 @@
       "core": [
         {
           "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069",
-          "text": " The absolute value of <code>mipLodBias</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerLodBias</code>"
+          "text": "The absolute value of <code>mipLodBias</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerLodBias</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-samplerMipLodBias-04467",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>samplerMipLodBias</code> is <code>VK_FALSE</code>, <code>mipLodBias</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973",
-          "text": " <code>maxLod</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>minLod</code>"
+          "text": "<code>maxLod</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>minLod</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070",
-          "text": " If the <a href=\"#features-samplerAnisotropy\"><code>samplerAnisotropy</code></a> feature is not enabled, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-samplerAnisotropy\"><code>samplerAnisotropy</code></a> feature is not enabled, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071",
-          "text": " If <code>anisotropyEnable</code> is <code>VK_TRUE</code>, <code>maxAnisotropy</code> <strong class=\"purple\">must</strong> be between <code>1.0</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerAnisotropy</code>, inclusive"
+          "text": "If <code>anisotropyEnable</code> is <code>VK_TRUE</code>, <code>maxAnisotropy</code> <strong class=\"purple\">must</strong> be between <code>1.0</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerAnisotropy</code>, inclusive",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645",
+          "text": "If <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a> is enabled and the <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal to the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion&#8217;s <code>chromaFilter</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077",
-          "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078",
-          "text": " If any of <code>addressModeU</code>, <code>addressModeV</code> or <code>addressModeW</code> are <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>, <code>borderColor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBorderColor\">VkBorderColor</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079",
-          "text": " If <a href=\"#features-samplerMirrorClampToEdge\"><code>samplerMirrorClampToEdge</code></a> is not enabled, and if the <code><a href=\"#VK_KHR_sampler_mirror_clamp_to_edge\">VK_KHR_sampler_mirror_clamp_to_edge</a></code> extension is not enabled, <code>addressModeU</code>, <code>addressModeV</code> and <code>addressModeW</code> <strong class=\"purple\">must</strong> not be <code>VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE</code>"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080",
-          "text": " If <code>compareEnable</code> is <code>VK_TRUE</code>, <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkSamplerBorderColorComponentMappingCreateInfoEXT\">VkSamplerBorderColorComponentMappingCreateInfoEXT</a>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>, <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSamplerCreateFlagBits\">VkSamplerCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter",
-          "text": " <code>magFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter",
-          "text": " <code>minFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter",
-          "text": " <code>mipmapMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerMipmapMode\">VkSamplerMipmapMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter",
-          "text": " <code>addressModeU</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter",
-          "text": " <code>addressModeV</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter",
-          "text": " <code>addressModeW</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-samplerMipLodBias-04467",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>samplerMipLodBias</code> is <code>VK_FALSE</code>, <code>mipLodBias</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645",
-          "text": " If <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled and the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal to the sampler {YCbCr} conversion&#8217;s <code>chromaFilter</code>"
+          "text": "If any of <code>addressModeU</code>, <code>addressModeV</code> or <code>addressModeW</code> are <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>, <code>borderColor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBorderColor\">VkBorderColor</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646",
-          "text": " If <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled, <code>addressModeU</code>, <code>addressModeV</code>, and <code>addressModeW</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>, and <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
+          "text": "If <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a> is enabled, <code>addressModeU</code>, <code>addressModeV</code>, and <code>addressModeW</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>, and <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-None-01647",
-          "text": " if <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled and the <code>pNext</code> chain includes a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> structure, then the sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2)": [
+          "text": "If <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a> is enabled and the <code>pNext</code> chain includes a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> structure, then the sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-pNext-06726",
-          "text": " If <a href=\"#features-samplerFilterMinmax\"><code>samplerFilterMinmax</code></a> is not enabled and the <code>pNext</code> chain includes a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> structure, then the sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
+          "text": "If <a href=\"#features-samplerFilterMinmax\"><code>samplerFilterMinmax</code></a> is not enabled and the <code>pNext</code> chain includes a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> structure, then the sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079",
+          "text": "If <a href=\"#features-samplerMirrorClampToEdge\"><code>samplerMirrorClampToEdge</code></a> is not enabled, and if the <code><a href=\"#VK_KHR_sampler_mirror_clamp_to_edge\">VK_KHR_sampler_mirror_clamp_to_edge</a></code> extension is not enabled, <code>addressModeU</code>, <code>addressModeV</code> and <code>addressModeW</code> <strong class=\"purple\">must</strong> not be <code>VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080",
+          "text": "If <code>compareEnable</code> is <code>VK_TRUE</code>, <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081",
-          "text": " If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)": [
+          "text": "If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSamplerCreateInfo-magFilter-01422",
-          "text": " If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
+          "vuid": "VUID-VkSamplerCreateInfo-magFilter-07911",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423",
-          "text": " If <code>compareEnable</code> is <code>VK_TRUE</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If <code>compareEnable</code> is <code>VK_TRUE</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02574",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02575",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02576",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02577",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02578",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02579",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-02580",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_non_seamless_cube_map)": [
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788",
-          "text": " If the <a href=\"#features-nonSeamlessCubeMap\"><code>nonSeamlessCubeMap</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_custom_border_color)": [
+          "text": "If the <a href=\"#features-nonSeamlessCubeMap\"><code>nonSeamlessCubeMap</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-borderColor-04011",
-          "text": " If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, then a <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
+          "text": "If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, then a <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-customBorderColors-04085",
-          "text": " If the <a href=\"#features-customBorderColors\"><code>customBorderColors</code></a> feature is not enabled, <code>borderColor</code> <strong class=\"purple\">must</strong> not be <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>"
+          "text": "If the <a href=\"#features-customBorderColors\"><code>customBorderColors</code></a> feature is not enabled, <code>borderColor</code> <strong class=\"purple\">must</strong> not be <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-borderColor-04442",
-          "text": " If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, and <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>customBorderColor</code> <strong class=\"purple\">must</strong> be within the range of values representable in <code>format</code>"
+          "text": "If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, and <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>customBorderColor</code> <strong class=\"purple\">must</strong> be within the range of values representable in <code>format</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-None-04012",
-          "text": " The maximum number of samplers with custom border colors which <strong class=\"purple\">can</strong> be simultaneously created on a device is implementation-dependent and specified by the <a href=\"#limits-maxCustomBorderColorSamplers\"><code>maxCustomBorderColorSamplers</code></a> member of the <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a> structure"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "The maximum number of samplers with custom border colors which <strong class=\"purple\">can</strong> be simultaneously created on a device is implementation-dependent and specified by the <a href=\"#limits-maxCustomBorderColorSamplers\"><code>maxCustomBorderColorSamplers</code></a> member of the <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-08110",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>, the <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-pNext-08111",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a> structure, <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06964",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06965",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06966",
-          "text": " [If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "[If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06967",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06968",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, and if <code>addressModeU</code> or <code>addressModeV</code> is <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>, then <code>borderColor</code> <strong class=\"purple\">must</strong> be <code>VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, and if <code>addressModeU</code> or <code>addressModeV</code> is <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>, then <code>borderColor</code> <strong class=\"purple\">must</strong> be <code>VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06969",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCreateInfo-flags-06970",
-          "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>flags</code> includes <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>, then <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkSamplerBlockMatchWindowCreateInfoQCOM\">VkSamplerBlockMatchWindowCreateInfoQCOM</a>, <a href=\"#VkSamplerBorderColorComponentMappingCreateInfoEXT\">VkSamplerBorderColorComponentMappingCreateInfoEXT</a>, <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>, <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSamplerCreateFlagBits\">VkSamplerCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter",
+          "text": "<code>magFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter",
+          "text": "<code>minFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter",
+          "text": "<code>mipmapMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerMipmapMode\">VkSamplerMipmapMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter",
+          "text": "<code>addressModeU</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter",
+          "text": "<code>addressModeV</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter",
+          "text": "<code>addressModeW</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerReductionModeCreateInfo": {
-      "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerReductionModeCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter",
-          "text": " <code>reductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerReductionMode\">VkSamplerReductionMode</a> value"
+          "text": "<code>reductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerReductionMode\">VkSamplerReductionMode</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSamplerCubicWeightsCreateInfoQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkSamplerCubicWeightsCreateInfoQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameter",
+          "text": "<code>cubicWeights</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCubicFilterWeightsQCOM\">VkCubicFilterWeightsQCOM</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -21068,235 +26472,320 @@
       "core": [
         {
           "vuid": "VUID-vkDestroySampler-sampler-01082",
-          "text": " All submitted commands that refer to <code>sampler</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>sampler</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-sampler-01083",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-sampler-01084",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-sampler-parameter",
-          "text": " If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle"
+          "text": "If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySampler-sampler-parent",
-          "text": " If <code>sampler</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>sampler</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerYcbcrConversionInfo": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter",
-          "text": " <code>conversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
+          "text": "<code>conversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateSamplerYcbcrConversion": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648",
-          "text": " The <a href=\"#features-samplerYcbcrConversion\"><code>samplerYcbcrConversion</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-samplerYcbcrConversion\"><code>samplerYcbcrConversion</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerYcbcrConversionCreateInfo\">VkSamplerYcbcrConversionCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerYcbcrConversionCreateInfo\">VkSamplerYcbcrConversionCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter",
-          "text": " <code>pYcbcrConversion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
+          "text": "<code>pYcbcrConversion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerYcbcrConversionCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
-        {
-          "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04060",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904",
-          "text": " If an external format conversion is being created, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If an external format conversion is being created, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061",
-          "text": " If an external format conversion is not being created, <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If an external format conversion is not being created, <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format <strong class=\"purple\">must</strong> be a <code>UNORM</code> format)",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650",
-          "text": " The <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion <strong class=\"purple\">must</strong> support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code> or <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>"
+          "text": "The <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion <strong class=\"purple\">must</strong> support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code> or <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651",
-          "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_COSITED_EVEN</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>"
+          "text": "If the <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion do not support <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_COSITED_EVEN</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652",
-          "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_MIDPOINT</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>"
+          "text": "If the <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion do not support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_MIDPOINT</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581",
-          "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.g</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
+          "text": "If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.g</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582",
-          "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.a</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, <code>VK_COMPONENT_SWIZZLE_ONE</code>, or <code>VK_COMPONENT_SWIZZLE_ZERO</code>"
+          "text": "If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.a</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, <code>VK_COMPONENT_SWIZZLE_ONE</code>, or <code>VK_COMPONENT_SWIZZLE_ZERO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583",
-          "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.r</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_B</code>"
+          "text": "If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.r</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_B</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584",
-          "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.b</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_R</code>"
+          "text": "If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.b</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_R</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585",
-          "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, and if either <code>components.r</code> or <code>components.b</code> is the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, both values <strong class=\"purple\">must</strong> be the identity swizzle"
+          "text": "If the format has a <code>_422</code> or <code>_420</code> suffix, and if either <code>components.r</code> or <code>components.b</code> is the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, both values <strong class=\"purple\">must</strong> be the identity swizzle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655",
-          "text": " If <code>ycbcrModel</code> is not <code>VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY</code>, then <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> correspond to components of the <code>format</code>; that is, <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> not be <code>VK_COMPONENT_SWIZZLE_ZERO</code> or <code>VK_COMPONENT_SWIZZLE_ONE</code>, and <strong class=\"purple\">must</strong> not correspond to a component containing zero or one as a consequence of <a href=\"#textures-conversion-to-rgba\">conversion to RGBA</a>"
+          "text": "If <code>ycbcrModel</code> is not <code>VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY</code>, then <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> correspond to components of the <code>format</code>; that is, <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> not be <code>VK_COMPONENT_SWIZZLE_ZERO</code> or <code>VK_COMPONENT_SWIZZLE_ONE</code>, and <strong class=\"purple\">must</strong> not correspond to a component containing zero or one as a consequence of <a href=\"#textures-conversion-to-rgba\">conversion to RGBA</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748",
-          "text": " If <code>ycbcrRange</code> is <code>VK_SAMPLER_YCBCR_RANGE_ITU_NARROW</code> then the R, G and B components obtained by applying the <code>component</code> swizzle to <code>format</code> <strong class=\"purple\">must</strong> each have a bit-depth greater than or equal to 8"
+          "text": "If <code>ycbcrRange</code> is <code>VK_SAMPLER_YCBCR_RANGE_ITU_NARROW</code> then the R, G and B components obtained by applying the <code>component</code> swizzle to <code>format</code> <strong class=\"purple\">must</strong> each have a bit-depth greater than or equal to 8",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656",
-          "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT</code> <code>forceExplicitReconstruction</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT</code> <code>forceExplicitReconstruction</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657",
-          "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT</code>, <code>chromaFilter</code> <strong class=\"purple\">must</strong> not be <code>VK_FILTER_LINEAR</code>"
+          "text": "If the <a href=\"#potential-format-features\">potential format features</a> of the sampler Y′C<sub>B</sub>C<sub>R</sub> conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT</code>, <code>chromaFilter</code> <strong class=\"purple\">must</strong> not be <code>VK_FILTER_LINEAR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a> structure, and if the <a href=\"#features-ycbcr-degamma\"><code>ycbcrDegamma</code></a> feature is not enabled, then <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a>::<code>enableYDegamma</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a> structure, and if the <a href=\"#features-ycbcr-degamma\"><code>ycbcrDegamma</code></a> feature is not enabled, then <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a>::<code>enableCbCrDegamma</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209",
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a> structure, <code>format</code> <strong class=\"purple\">must</strong> be a format with 8-bit R, G, and B components.",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a>, or <a href=\"#VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM\">VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter",
-          "text": " <code>ycbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value"
+          "text": "<code>ycbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter",
-          "text": " <code>ycbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value"
+          "text": "<code>ycbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter",
-          "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
+          "text": "<code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter",
-          "text": " <code>xChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
+          "text": "<code>xChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter",
-          "text": " <code>yChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
+          "text": "<code>yChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter",
-          "text": " <code>chromaFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
+          "text": "<code>chromaFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroySamplerYcbcrConversion": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter",
-          "text": " If <code>ycbcrConversion</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>ycbcrConversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
+          "text": "If <code>ycbcrConversion</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>ycbcrConversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent",
-          "text": " If <code>ycbcrConversion</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>ycbcrConversion</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerCustomBorderColorCreateInfoEXT": {
-      "(VK_EXT_custom_border_color)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605",
-          "text": " If <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>format</code> is not a combined depth stencil format then the <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>borderColor</code> type <strong class=\"purple\">must</strong> match the sampled type of the provided <code>format</code>, as shown in the <em>SPIR-V Sampled Type</em> column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
+          "text": "If <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>format</code> is not a depth/stencil format then the <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>borderColor</code> type <strong class=\"purple\">must</strong> match the sampled type of the provided <code>format</code>, as shown in the <em>SPIR-V Type</em> column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014",
-          "text": " If the <a href=\"#features-customBorderColorWithoutFormat\"><code>customBorderColorWithoutFormat</code></a> feature is not enabled then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If the <a href=\"#features-customBorderColorWithoutFormat\"><code>customBorderColorWithoutFormat</code></a> feature is not enabled then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015",
-          "text": " If the sampler is used to sample an image view of <code>VK_FORMAT_B4G4R4A4_UNORM_PACK16</code>, <code>VK_FORMAT_B5G6R5_UNORM_PACK16</code>, or <code>VK_FORMAT_B5G5R5A1_UNORM_PACK16</code> format then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
+          "text": "If the sampler is used to sample an image view of <code>VK_FORMAT_B4G4R4A4_UNORM_PACK16</code>, <code>VK_FORMAT_B5G6R5_UNORM_PACK16</code>, <code>VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR</code>, or <code>VK_FORMAT_B5G5R5A1_UNORM_PACK16</code> format then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerBorderColorComponentMappingCreateInfoEXT": {
-      "(VK_EXT_border_color_swizzle)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437",
-          "text": " The <a href=\"#features-borderColorSwizzle\"><code>borderColorSwizzle</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-borderColorSwizzle\"><code>borderColorSwizzle</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameter",
-          "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
+          "text": "<code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSamplerBlockMatchWindowCreateInfoQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-WindowExtent-09210",
+          "text": "<code>WindowExtent</code> <strong class=\"purple\">must</strong> not be larger than <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>::<code>maxBlockMatchWindow</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameter",
+          "text": "<code>windowCompareMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlockMatchWindowCompareModeQCOM\">VkBlockMatchWindowCompareModeQCOM</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -21304,19 +26793,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorSetLayout-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter",
-          "text": " <code>pSetLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
+          "text": "<code>pSetLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -21324,159 +26817,181 @@
       "core": [
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279",
-          "text": " The <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>binding</code> members of the elements of the <code>pBindings</code> array <strong class=\"purple\">must</strong> each have different values"
+          "text": "If the <a href=\"#features-perStageDescriptorSet\"><code>perStageDescriptorSet</code></a> feature is not enabled, or <code>flags</code> does not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV</code>, then the <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>binding</code> members of the elements of the <code>pBindings</code> array <strong class=\"purple\">must</strong> each have different values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetLayoutBindingFlagsCreateInfo\">VkDescriptorSetLayoutBindingFlagsCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorSetLayoutCreateFlagBits\">VkDescriptorSetLayoutCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter",
-          "text": " If <code>bindingCount</code> is not <code>0</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures"
-        }
-      ],
-      "(VK_KHR_push_descriptor)": [
-        {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208",
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then the total number of elements of all bindings <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>::<code>maxPushDescriptors</code>"
-        }
-      ],
-      "(VK_KHR_push_descriptor)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
-        }
-      ],
-      "(VK_KHR_push_descriptor)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then the total number of elements of all bindings <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>::<code>maxPushDescriptors</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04590",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>"
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04591",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000",
-          "text": " If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>"
+          "text": "If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001",
-          "text": " If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, then all bindings <strong class=\"purple\">must</strong> not have <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, then all bindings <strong class=\"purple\">must</strong> not have <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04592",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303",
-          "text": " If any element <code>pBindings</code>[i] has a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then a <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a> <strong class=\"purple\">must</strong> be present in the <code>pNext</code> chain, and <code>mutableDescriptorTypeListCount</code> <strong class=\"purple\">must</strong> be greater than i"
+          "text": "If any element <code>pBindings</code>[i] has a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then a <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a> <strong class=\"purple\">must</strong> be present in the <code>pNext</code> chain, and <code>mutableDescriptorTypeListCount</code> <strong class=\"purple\">must</strong> be greater than i",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594",
-          "text": " If a binding has a <code>descriptorType</code> value of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If a binding has a <code>descriptorType</code> value of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595",
-          "text": " If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> is not enabled, <code>pBindings</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> is not enabled, <code>pBindings</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04596",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08000",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08001",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> also contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> also contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08002",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_VALVE_mutable_descriptor_type)": [
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08003",
-          "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code>"
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-09463",
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV</code>, then <a href=\"#features-perStageDescriptorSet\"><code>perStageDescriptorSet</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-09464",
+          "text": "If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV</code>, then there <strong class=\"purple\">must</strong> not be any two elements of the <code>pBindings</code> array with the same <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>binding</code> value and their <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>stageFlags</code> containing the same bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetLayoutBindingFlagsCreateInfo\">VkDescriptorSetLayoutBindingFlagsCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorSetLayoutCreateFlagBits\">VkDescriptorSetLayoutCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter",
+          "text": "If <code>bindingCount</code> is not <code>0</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkMutableDescriptorTypeCreateInfoEXT": {
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+      "core": [
         {
           "vuid": "VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameter",
-          "text": " If <code>mutableDescriptorTypeListCount</code> is not <code>0</code>, <code>pMutableDescriptorTypeLists</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mutableDescriptorTypeListCount</code> valid <a href=\"#VkMutableDescriptorTypeListEXT\">VkMutableDescriptorTypeListEXT</a> structures"
+          "text": "If <code>mutableDescriptorTypeListCount</code> is not <code>0</code>, <code>pMutableDescriptorTypeLists</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mutableDescriptorTypeListCount</code> valid <a href=\"#VkMutableDescriptorTypeListEXT\">VkMutableDescriptorTypeListEXT</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkMutableDescriptorTypeListEXT": {
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+      "core": [
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597",
-          "text": " <code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> not be <code>0</code> if the corresponding binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "<code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> not be <code>0</code> if the corresponding binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598",
-          "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid, unique <a href=\"#VkDescriptorType\">VkDescriptorType</a> values if the given binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> type"
+          "text": "<code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid, unique <a href=\"#VkDescriptorType\">VkDescriptorType</a> values if the given binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599",
-          "text": " <code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if the corresponding binding is not of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "<code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if the corresponding binding is not of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04600",
-          "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "<code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601",
-          "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
+          "text": "<code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602",
-          "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>"
+          "text": "<code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603",
+          "text": "<code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameter",
-          "text": " If <code>descriptorTypeCount</code> is not <code>0</code>, <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> values"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603",
-          "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
+          "text": "If <code>descriptorTypeCount</code> is not <code>0</code>, <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -21484,187 +26999,214 @@
       "core": [
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>descriptorCount</code> is not <code>0</code> and <code>pImmutableSamplers</code> is not <code>NULL</code>, <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkSampler</code> handles"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>descriptorCount</code> is not <code>0</code> and <code>pImmutableSamplers</code> is not <code>NULL</code>, <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkSampler</code> handles",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283",
-          "text": " If <code>descriptorCount</code> is not <code>0</code>, <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> and <code>descriptorCount</code> is not <code>0</code>, then <code>stageFlags</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04604",
-          "text": " If the <a href=\"#features-inlineUniformBlock\"><code>inlineUniformBlock</code></a> feature is not enabled, <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
+          "text": "If the <a href=\"#features-inlineUniformBlock\"><code>inlineUniformBlock</code></a> feature is not enabled, <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+!(VK_EXT_descriptor_buffer)": [
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxInlineUniformBlockSize</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-08004",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> and <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> does not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxInlineUniformBlockSize</code>"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> and <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> does not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxInlineUniformBlockSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08005",
-          "text": " If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>"
+          "text": "If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08006",
-          "text": " If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> less than or equal to <code>1</code>"
+          "text": "If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> less than or equal to <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08007",
-          "text": " If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, and <code>descriptorCount</code> is equal to <code>1</code>, <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_custom_border_color)": [
+          "text": "If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code>, and <code>descriptorCount</code> is equal to <code>1</code>, <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-09465",
+          "text": "If <code>descriptorCount</code> is not <code>0</code>, <code>stageFlags</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_ALL</code> or a valid combination of other <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> and <code>descriptorCount</code> is not <code>0</code>, then <code>stageFlags</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009",
-          "text": " The sampler objects indicated by <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> not have a <code>borderColor</code> with one of the values <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "The sampler objects indicated by <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> not have a <code>borderColor</code> with one of the values <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04605",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBinding-flags-09466",
+          "text": "If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV</code>, and <code>descriptorCount</code> is not <code>0</code>, then <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> and <code>VK_SHADER_STAGE_COMPUTE_BIT</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter",
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetLayoutBindingFlagsCreateInfo": {
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002",
-          "text": " If <code>bindingCount</code> is not zero, <code>bindingCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>bindingCount</code>"
+          "text": "If <code>bindingCount</code> is not zero, <code>bindingCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>bindingCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003",
+          "text": "If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> includes <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>, <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>, or <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004",
-          "text": " If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, then all other elements of <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>pBindings</code> <strong class=\"purple\">must</strong> have a smaller value of <code>binding</code>"
+          "text": "If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, then all other elements of <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>pBindings</code> <strong class=\"purple\">must</strong> have a smaller value of <code>binding</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379",
+          "text": "If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, then it <strong class=\"purple\">must</strong> be the element with the highest <code>binding</code> number",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingSampledImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, or <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingSampledImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, or <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211",
+          "text": "If <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>::<code>descriptorBindingInlineUniformBlockUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570",
+          "text": "If <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>descriptorBindingAccelerationStructureUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> or <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011",
-          "text": " All bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "All bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUpdateUnusedWhilePending</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUpdateUnusedWhilePending</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingPartiallyBound</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingPartiallyBound</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014",
-          "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingVariableDescriptorCount</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingVariableDescriptorCount</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015",
-          "text": " If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, that element&#8217;s <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
+          "text": "If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, that element&#8217;s <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter",
-          "text": " If <code>bindingCount</code> is not <code>0</code>, <code>pBindingFlags</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid combinations of <a href=\"#VkDescriptorBindingFlagBits\">VkDescriptorBindingFlagBits</a> values"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003",
-          "text": " If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> includes <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>, <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>, or <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211",
-          "text": " If <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>::<code>descriptorBindingInlineUniformBlockUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570",
-          "text": " If <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>descriptorBindingAccelerationStructureUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> or <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
+          "text": "If <code>bindingCount</code> is not <code>0</code>, <code>pBindingFlags</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid combinations of <a href=\"#VkDescriptorBindingFlagBits\">VkDescriptorBindingFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorSetLayoutSupport": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter",
-          "text": " <code>pSupport</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayoutSupport\">VkDescriptorSetLayoutSupport</a> structure"
+          "text": "<code>pSupport</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayoutSupport\">VkDescriptorSetLayoutSupport</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetLayoutSupport": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutSupport-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetVariableDescriptorCountLayoutSupport\">VkDescriptorSetVariableDescriptorCountLayoutSupport</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetVariableDescriptorCountLayoutSupport\">VkDescriptorSetVariableDescriptorCountLayoutSupport</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetVariableDescriptorCountLayoutSupport": {
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -21672,27 +27214,33 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter",
-          "text": " If <code>descriptorSetLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
+          "text": "If <code>descriptorSetLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent",
-          "text": " If <code>descriptorSetLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>descriptorSetLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -21700,19 +27248,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreatePipelineLayout-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineLayout-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter",
-          "text": " <code>pPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>pPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -21720,313 +27272,248 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286",
-          "text": " <code>setLayoutCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxBoundDescriptorSets</code>"
+          "text": "<code>setLayoutCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxBoundDescriptorSets</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292",
-          "text": " Any two elements of <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> not include the same stage in <code>stageFlags</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineLayoutCreateFlagBits\">VkPipelineLayoutCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter",
-          "text": " If <code>setLayoutCount</code> is not <code>0</code>, <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setLayoutCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter",
-          "text": " If <code>pushConstantRangeCount</code> is not <code>0</code>, <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pushConstantRangeCount</code> valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structures"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSamplers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorUniformBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01676",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorInputAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01677",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSamplers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSampledImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetInputAttachments</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_QCOM_image_processing)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_QCOM_image_processing)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-06938",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, and <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02212",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02213",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkan13Properties</code>::<code>maxInlineUniformTotalSize</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSamplers</code>"
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSamplers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorUniformBuffers</code>"
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorUniformBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageBuffers</code>"
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageBuffers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06939",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageImages</code>"
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageImages</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorInputAttachments</code>"
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorInputAttachments</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214",
+          "text": "The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set and with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSamplers</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSamplers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindUniformBuffers</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindUniformBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageBuffers</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSampledImages</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSampledImages</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageImages</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageImages</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027",
-          "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInputAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSamplers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSampledImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetInputAttachments</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSamplers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffers</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSampledImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageImages</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043",
-          "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindInputAttachments</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_QCOM_image_processing)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03019",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_QCOM_image_processing)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06939",
-          "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, and <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214",
-          "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>"
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInputAttachments</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</code>"
+          "text": "The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSamplers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffersDynamic</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffersDynamic</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSampledImages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageImages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035",
+          "text": "The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetInputAttachments</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216",
-          "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>"
+          "text": "The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSamplers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffers</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSampledImages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageImages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043",
+          "text": "The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindInputAttachments</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</code>"
-        }
-      ],
-      "(VK_KHR_push_descriptor)": [
+          "text": "The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531",
+          "text": "The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkan13Properties</code>::<code>maxInlineUniformTotalSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292",
+          "text": "Any two elements of <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> not include the same stage in <code>stageFlags</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293",
-          "text": " <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not contain more than one descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set"
-        }
-      ],
-      "(VK_KHR_acceleration_structure)": [
+          "text": "<code>pSetLayouts</code> <strong class=\"purple\">must</strong> not contain more than one descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03571",
-          "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorAccelerationStructures</code>"
+          "text": "The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorAccelerationStructures</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03572",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorUpdateAfterBindAccelerationStructures</code>"
+          "text": "The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorUpdateAfterBindAccelerationStructures</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03573",
-          "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetAccelerationStructures</code>"
+          "text": "The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetAccelerationStructures</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03574",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetUpdateAfterBindAccelerationStructures</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing)": [
+          "text": "The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetUpdateAfterBindAccelerationStructures</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381",
-          "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxDescriptorSetAccelerationStructures</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map2)": [
+          "text": "The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxDescriptorSetAccelerationStructures</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566",
-          "text": " The total number of <code>pImmutableSamplers</code> created with <code>flags</code> containing <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code> or <code>VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT</code> across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxDescriptorSetSubsampledSamplers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxDescriptorSetSubsampledSamplers</code></a>"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "The total number of <code>pImmutableSamplers</code> created with <code>flags</code> containing <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code> or <code>VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT</code> across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxDescriptorSetSubsampledSamplers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxDescriptorSetSubsampledSamplers</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606",
-          "text": " Any element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> bit set"
-        }
-      ],
-      "!(VK_EXT_graphics_pipeline_library)": [
-        {
-          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-06561",
-          "text": " Elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> objects"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)": [
+          "text": "Any element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753",
-          "text": " If <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> is not enabled, elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> objects"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> is not enabled, elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> objects",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008",
-          "text": " If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set, all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set"
+          "text": "If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set, all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineLayoutCreateFlagBits\">VkPipelineLayoutCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter",
+          "text": "If <code>setLayoutCount</code> is not <code>0</code>, <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setLayoutCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter",
+          "text": "If <code>pushConstantRangeCount</code> is not <code>0</code>, <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pushConstantRangeCount</code> valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -22034,31 +27521,38 @@
       "core": [
         {
           "vuid": "VUID-VkPushConstantRange-offset-00294",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-offset-00295",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-size-00296",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-size-00297",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-size-00298",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-stageFlags-parameter",
-          "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask",
-          "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22066,31 +27560,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004",
-          "text": " <code>pipelineLayout</code> <strong class=\"purple\">must</strong> not have been passed to any <code>vkCmd*</code> command for any command buffers that are still in the <a href=\"#commandbuffers-lifecycle\">recording state</a> when <code>vkDestroyPipelineLayout</code> is called"
+          "text": "<code>pipelineLayout</code> <strong class=\"purple\">must</strong> not have been passed to any <code>vkCmd*</code> command for any command buffers that are still in the <a href=\"#commandbuffers-lifecycle\">recording state</a> when <code>vkDestroyPipelineLayout</code> is called",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter",
-          "text": " If <code>pipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "If <code>pipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent",
-          "text": " If <code>pipelineLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>pipelineLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22098,75 +27599,96 @@
       "core": [
         {
           "vuid": "VUID-vkCreateDescriptorPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorPoolCreateInfo\">VkDescriptorPoolCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorPoolCreateInfo\">VkDescriptorPoolCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter",
-          "text": " <code>pDescriptorPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
+          "text": "<code>pDescriptorPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorPoolCreateInfo": {
       "core": [
         {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301",
-          "text": " <code>maxSets</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227",
+          "text": "If the <a href=\"#features-descriptorPoolOverallocation\"><code>descriptorPoolOverallocation</code></a> feature is not enabled, or <code>flags</code> does not have <code>VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV</code> set, <code>maxSets</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO</code>"
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-09228",
+          "text": "If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV</code> or <code>VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV</code> bits set, then <a href=\"#features-descriptorPoolOverallocation\"><code>descriptorPoolOverallocation</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorPoolInlineUniformBlockCreateInfo\">VkDescriptorPoolInlineUniformBlockCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorPoolCreateFlagBits\">VkDescriptorPoolCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter",
-          "text": " If <code>poolSizeCount</code> is not <code>0</code>, <code>pPoolSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>poolSizeCount</code> valid <a href=\"#VkDescriptorPoolSize\">VkDescriptorPoolSize</a> structures"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
-        {
           "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04607",
-          "text": " If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> bit set, then the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> bit <strong class=\"purple\">must</strong> not be set"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> bit set, then the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> bit <strong class=\"purple\">must</strong> not be set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608",
-          "text": " If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> is not enabled, <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> is not enabled, <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04609",
-          "text": " If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> bit set, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> bit set, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787",
-          "text": " If <code>pPoolSizes</code> contains a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, any other <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> element in <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not have sets of supported descriptor types which partially overlap"
+          "text": "If <code>pPoolSizes</code> contains a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, any other <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> element in <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not have sets of supported descriptor types which partially overlap",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-09424",
+          "text": "If <code>pPoolSizes</code> contains a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkDescriptorPoolInlineUniformBlockCreateInfo\">VkDescriptorPoolInlineUniformBlockCreateInfo</a> structure whose <code>maxInlineUniformBlockBindings</code> member is not zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorPoolInlineUniformBlockCreateInfo\">VkDescriptorPoolInlineUniformBlockCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoEXT\">VkMutableDescriptorTypeCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorPoolCreateFlagBits\">VkDescriptorPoolCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter",
+          "text": "If <code>poolSizeCount</code> is not <code>0</code>, <code>pPoolSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>poolSizeCount</code> valid <a href=\"#VkDescriptorPoolSize\">VkDescriptorPoolSize</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorPoolInlineUniformBlockCreateInfo": {
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22174,17 +27696,18 @@
       "core": [
         {
           "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302",
-          "text": " <code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorPoolSize-type-02218",
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorPoolSize-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
-          "vuid": "VUID-VkDescriptorPoolSize-type-02218",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -22192,31 +27715,38 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303",
-          "text": " All submitted commands that refer to <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter",
-          "text": " If <code>descriptorPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
+          "text": "If <code>descriptorPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent",
-          "text": " If <code>descriptorPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>descriptorPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22224,105 +27754,121 @@
       "core": [
         {
           "vuid": "VUID-vkAllocateDescriptorSets-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter",
-          "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a> structure"
+          "text": "<code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter",
-          "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;descriptorSetCount</code> <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles"
+          "text": "<code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;descriptorSetCount</code> <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength",
-          "text": " <code>pAllocateInfo-&gt;descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>pAllocateInfo-&gt;descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetAllocateInfo": {
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306",
-          "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> not be greater than the number of sets that are currently available for allocation in <code>descriptorPool</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts"
-        }
-      ],
-      "(VK_KHR_push_descriptor)": [
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308",
-          "text": " Each element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044",
-          "text": " If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610",
-          "text": " If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag set"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
-        {
-          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009",
-          "text": " Each element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07895",
+          "text": "If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> not be greater than the number of sets that are currently available for allocation in <code>descriptorPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07896",
+          "text": "If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308",
+          "text": "Each element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044",
+          "text": "If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380",
+          "text": "If <code>pSetLayouts</code>[i] was created with an element of <code>pBindingFlags</code> that includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, and <a href=\"#VkDescriptorSetVariableDescriptorCountAllocateInfo\">VkDescriptorSetVariableDescriptorCountAllocateInfo</a> is included in the <code>pNext</code> chain, and <code>VkDescriptorSetVariableDescriptorCountAllocateInfo</code>::<code>descriptorSetCount</code> is not zero, then <a href=\"#VkDescriptorSetVariableDescriptorCountAllocateInfo\">VkDescriptorSetVariableDescriptorCountAllocateInfo</a>::<code>pDescriptorCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>descriptorCount</code> for the corresponding binding used to create <code>pSetLayouts</code>[i]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610",
+          "text": "If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009",
+          "text": "Each element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetVariableDescriptorCountAllocateInfo\">VkDescriptorSetVariableDescriptorCountAllocateInfo</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorSetVariableDescriptorCountAllocateInfo\">VkDescriptorSetVariableDescriptorCountAllocateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter",
-          "text": " <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles"
+          "text": "<code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength",
-          "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent",
-          "text": " Both of <code>descriptorPool</code>, and the elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>descriptorPool</code>, and the elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetVariableDescriptorCountAllocateInfo": {
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045",
-          "text": " If <code>descriptorSetCount</code> is not zero, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>descriptorSetCount</code>"
+          "text": "If <code>descriptorSetCount</code> is not zero, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>descriptorSetCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046",
-          "text": " If <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>pSetLayouts</code>[i] has a variable-sized descriptor binding, then <code>pDescriptorCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created"
+          "text": "If <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>pSetLayouts</code>[i] has a variable-sized descriptor binding, then <code>pDescriptorCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter",
-          "text": " If <code>descriptorSetCount</code> is not <code>0</code>, <code>pDescriptorCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>uint32_t</code> values"
+          "text": "If <code>descriptorSetCount</code> is not <code>0</code>, <code>pDescriptorCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -22330,35 +27876,43 @@
       "core": [
         {
           "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309",
-          "text": " All submitted commands that refer to any element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to any element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310",
-          "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>VkDescriptorSet</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>VkDescriptorSet</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT</code> flag"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT</code> flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength",
-          "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent",
-          "text": " Each element of <code>pDescriptorSets</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>descriptorPool</code>"
+          "text": "Each element of <code>pDescriptorSets</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>descriptorPool</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22366,23 +27920,28 @@
       "core": [
         {
           "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313",
-          "text": " All uses of <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All uses of <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetDescriptorPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent",
-          "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22390,77 +27949,73 @@
       "core": [
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, elements of the <code>pTexelBufferView</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, elements of the <code>pTexelBufferView</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06237",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of any element of the <code>pBufferInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of any element of the <code>pBufferInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of any element of the <code>pImageInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of any element of the <code>pImageInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageView</code> member of any element of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageView</code> member of any element of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240",
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241",
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940",
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code> or <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, the <code>imageView</code> member of any element of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures"
-        },
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter",
-          "text": " If <code>descriptorWriteCount</code> is not <code>0</code>, <code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures"
-        },
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter",
-          "text": " If <code>descriptorCopyCount</code> is not <code>0</code>, <code>pDescriptorCopies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCopyCount</code> valid <a href=\"#VkCopyDescriptorSet\">VkCopyDescriptorSet</a> structures"
-        }
-      ],
-      "(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code> or <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, the <code>imageView</code> member of any element of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06941",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code> or <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSets-dstSet-00314",
-          "text": " The <code>dstSet</code> member of each element of <code>pDescriptorWrites</code> or <code>pDescriptorCopies</code> <strong class=\"purple\">must</strong> not be used by any command that was recorded to a command buffer which is in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code> or <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06992",
-          "text": " Host access to <code>pDescriptorWrites</code>[i].<code>dstSet</code> and <code>pDescriptorCopies</code>[i].<code>dstSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
           "vuid": "VUID-vkUpdateDescriptorSets-None-03047",
-          "text": " Descriptor bindings updated by this command which were created without the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> or <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code> bits set <strong class=\"purple\">must</strong> not be used by any command that was recorded to a command buffer which is in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "The <code>dstSet</code> member of each element of <code>pDescriptorWrites</code> or <code>pDescriptorCopies</code> for bindings which were created without the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> or <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code> bits set <strong class=\"purple\">must</strong> not be used by any command that was recorded to a command buffer which is in the <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993",
-          "text": " Host access to <code>pDescriptorWrites</code>[i].<code>dstSet</code> and <code>pDescriptorCopies</code>[i].<code>dstSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a> unless explicitly denoted otherwise for specific flags"
+          "text": "Host access to <code>pDescriptorWrites</code>[i].<code>dstSet</code> and <code>pDescriptorCopies</code>[i].<code>dstSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a> unless explicitly denoted otherwise for specific flags",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter",
+          "text": "If <code>descriptorWriteCount</code> is not <code>0</code>, <code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter",
+          "text": "If <code>descriptorCopyCount</code> is not <code>0</code>, <code>pDescriptorCopies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCopyCount</code> valid <a href=\"#VkCopyDescriptorSet\">VkCopyDescriptorSet</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -22468,233 +28023,253 @@
       "core": [
         {
           "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315",
-          "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum value of <code>binding</code> of all <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures specified when <code>dstSet</code>&#8217;s descriptor set layout was created"
+          "text": "<code>dstBinding</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum value of <code>binding</code> of all <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures specified when <code>dstSet</code>&#8217;s descriptor set layout was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316",
-          "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a binding with a non-zero <code>descriptorCount</code>"
+          "text": "<code>dstBinding</code> <strong class=\"purple\">must</strong> be a binding with a non-zero <code>descriptorCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317",
-          "text": " All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> have identical <code>descriptorType</code> and <code>stageFlags</code>"
+          "text": "All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> have identical <code>descriptorType</code> and <code>stageFlags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318",
-          "text": " All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> all either use immutable samplers or <strong class=\"purple\">must</strong> all not use immutable samplers"
+          "text": "All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> all either use immutable samplers or <strong class=\"purple\">must</strong> all not use immutable samplers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> match the type of <code>dstBinding</code> within <code>dstSet</code>"
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> match the type of <code>dstBinding</code> within <code>dstSet</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320",
-          "text": " <code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
+          "text": "<code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321",
-          "text": " The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
+          "text": "The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> be either a valid <code>VkBufferView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkDescriptorBufferInfo</code> structures"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkSampler</code> object"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be either a valid <code>VkImageView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-07683",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, and the <code>buffer</code> member of any element of <code>pBufferInfo</code> is the handle of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the <a href=\"#buffer-info-effective-range\">effective range</a> if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxUniformBufferRange</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the <a href=\"#buffer-info-effective-range\">effective range</a> if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxStorageBufferRange</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00334",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, the <code>VkBuffer</code> that each element of <code>pTexelBufferView</code> was created from <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00335",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, the <code>VkBuffer</code> that each element of <code>pTexelBufferView</code> was created from <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-07729",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with exactly one aspect"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04149",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-sampledimage\">Sampled Image</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04150",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-combinedimagesampler\">Combined Image Sampler</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04151",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-inputattachment\">Input Attachment</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04152",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-storageimage\">Storage Image</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_STORAGE_BIT</code> set"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a>, <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a>, or <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength",
-          "text": " <code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkWriteDescriptorSet-commonparent",
-          "text": " Both of <code>dstSet</code>, and the elements of <code>pTexelBufferView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> be either a valid <code>VkBufferView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkDescriptorBufferInfo</code> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkSampler</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be either a valid <code>VkImageView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-07683",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a> structure whose <code>dataSize</code> member equals <code>descriptorCount</code>"
-        }
-      ],
-      "(VK_KHR_acceleration_structure)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a> structure whose <code>dataSize</code> member equals <code>descriptorCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-03817",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>"
-        }
-      ],
-      "(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, then the <code>imageView</code> member of each <code>pImageInfo</code> element <strong class=\"purple\">must</strong> have been created without a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, then the <code>imageView</code> member of each <code>pImageInfo</code> element <strong class=\"purple\">must</strong> have been created without a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02738",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and if any element of <code>pImageInfo</code> has a <code>imageView</code> member that was created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain, then <code>dstSet</code> <strong class=\"purple\">must</strong> have been allocated with a layout that included immutable samplers for <code>dstBinding</code>, and the corresponding immutable sampler <strong class=\"purple\">must</strong> have been created with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> object"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and if any element of <code>pImageInfo</code> has a <code>imageView</code> member that was created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain, then <code>dstSet</code> <strong class=\"purple\">must</strong> have been allocated with a layout that included immutable samplers for <code>dstBinding</code>, and the corresponding immutable sampler <strong class=\"purple\">must</strong> have been created with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was allocated with a layout that included immutable samplers for <code>dstBinding</code>, then the <code>imageView</code> member of each element of <code>pImageInfo</code> which corresponds to an immutable sampler that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> <strong class=\"purple\">must</strong> have been created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> to the corresponding immutable sampler"
-        }
-      ],
-      "(VK_EXT_image_2d_view_of_3d)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was allocated with a layout that included immutable samplers for <code>dstBinding</code>, then the <code>imageView</code> member of each element of <code>pImageInfo</code> which corresponds to an immutable sampler that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a> <strong class=\"purple\">must</strong> have been created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> to the corresponding immutable sampler",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06710",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, each <code>imageView</code> member of each element of <code>pImageInfo</code> that is a 2D image view created from a 3D image <strong class=\"purple\">must</strong> have been created from an image created with <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, and the <code>buffer</code> member of any element of <code>pBufferInfo</code> is the handle of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the <a href=\"#buffer-info-effective-range\">effective range</a> if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxUniformBufferRange</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the <a href=\"#buffer-info-effective-range\">effective range</a> if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxStorageBufferRange</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-08765",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, the <code>pTexelBufferView</code> <a href=\"#resources-buffer-views-usage\">buffer view usage</a> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-08766",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, the <code>pTexelBufferView</code> <a href=\"#resources-buffer-views-usage\">buffer view usage</a> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04149",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-sampledimage\">Sampled Image</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04150",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-combinedimagesampler\">Combined Image Sampler</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04151",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-inputattachment\">Input Attachment</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04152",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-storageimage\">Storage Image</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_STORAGE_BIT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752",
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-dstSet-04611",
-          "text": " If the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the new active descriptor type <code>descriptorType</code> <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code>"
-        }
-      ],
-      "(VK_EXT_image_view_min_lod)": [
+          "text": "If the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the new active descriptor type <code>descriptorType</code> <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06450",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have either been created without a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a> present in the <code>pNext</code> chain or with a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>::<code>minLod</code> of <code>0.0</code>"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have either been created without a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a> included in the <code>pNext</code> chain or with a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>::<code>minLod</code> of <code>0.0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06942",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with a view created with an <code>image</code> created with <code>VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM</code>"
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with a view created with an <code>image</code> created with <code>VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06943",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with a view created with an <code>image</code> created with <code>VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_EXT_image_view_min_lod)": [
+          "text": "If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with a view created with an <code>image</code> created with <code>VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06450",
-          "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have either been created without a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a> present in the <code>pNext</code> chain or with a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>::<code>minLod</code> of <code>0.0</code>"
+          "vuid": "VUID-VkWriteDescriptorSet-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a>, <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a>, or <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter",
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength",
+          "text": "<code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkWriteDescriptorSet-commonparent",
+          "text": "Both of <code>dstSet</code>, and the elements of <code>pTexelBufferView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22702,155 +28277,189 @@
       "core": [
         {
           "vuid": "VUID-VkDescriptorBufferInfo-offset-00340",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferInfo-range-00341",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferInfo-range-00342",
-          "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code> minus <code>offset</code>"
+          "text": "If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferInfo-buffer-02998",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>buffer</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>buffer</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999",
+          "text": "If <code>buffer</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>offset</code> <strong class=\"purple\">must</strong> be zero and <code>range</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter",
-          "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        }
-      ],
-      "(VK_EXT_robustness2)": [
-        {
-          "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999",
-          "text": " If <code>buffer</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>offset</code> <strong class=\"purple\">must</strong> be zero and <code>range</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code>"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorImageInfo": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)": [
-        {
-          "vuid": "VUID-VkDescriptorImageInfo-imageView-06711",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> not be 2D image view created from a 3D image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorImageInfo-imageView-06712",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D array image view created from a 3D image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)": [
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D array image view created from a 3D image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-imageView-07795",
+          "text": "If <code>imageView</code> is a 2D view created from a 3D image, then <code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-imageView-07796",
+          "text": "If <code>imageView</code> is a 2D view created from a 3D image, then the image <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorImageInfo-descriptorType-06713",
-          "text": " If the <a href=\"#features-image2DViewOf3D\"><code>image2DViewOf3D</code></a> feature is not enabled and <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> then <code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D view created from a 3D image"
+          "text": "If the <a href=\"#features-image2DViewOf3D\"><code>image2DViewOf3D</code></a> feature is not enabled or <code>descriptorType</code> is not <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> then <code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D view created from a 3D image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorImageInfo-descriptorType-06714",
-          "text": " If the <a href=\"#features-sampler2DViewOf3D\"><code>sampler2DViewOf3D</code></a> feature is not enabled and <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> then <code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D view created from a 3D image"
-        }
-      ],
-      "core": [
+          "text": "If the <a href=\"#features-sampler2DViewOf3D\"><code>sampler2DViewOf3D</code></a> feature is not enabled or <code>descriptorType</code> is not <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> then <code>imageView</code> <strong class=\"purple\">must</strong> not be a 2D view created from a 3D image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorImageInfo-imageView-01976",
-          "text": " If <code>imageView</code> is created from a depth/stencil image, the <code>aspectMask</code> used to create the <code>imageView</code> <strong class=\"purple\">must</strong> include either <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> but not both"
+          "text": "If <code>imageView</code> is created from a depth/stencil image, the <code>aspectMask</code> used to create the <code>imageView</code> <strong class=\"purple\">must</strong> include either <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> but not both",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-imageLayout-09425",
+          "text": "If <code>imageLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, then the <code>aspectMask</code> used to create <code>imageView</code> <strong class=\"purple\">must</strong> not include either <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-imageLayout-09426",
+          "text": "If <code>imageLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, then the <code>aspectMask</code> used to create <code>imageView</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time this descriptor is accessed as defined by the <a href=\"#resources-image-layouts-matching-rule\">image layout matching rules</a>"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time this descriptor is accessed as defined by the <a href=\"#resources-image-layouts-matching-rule\">image layout matching rules</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-sampler-01564",
+          "text": "If <code>sampler</code> is used and the <a href=\"#VkFormat\">VkFormat</a> of the image is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, the image <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, and the <code>aspectMask</code> of the <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>mutableComparisonSamplers</code> is <code>VK_FALSE</code>, then <code>sampler</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>compareEnable</code> set to <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorImageInfo-commonparent",
-          "text": " Both of <code>imageView</code>, and <code>sampler</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkDescriptorImageInfo-sampler-01564",
-          "text": " If <code>sampler</code> is used and the <a href=\"#VkFormat\">VkFormat</a> of the image is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, the image <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, and the <code>aspectMask</code> of the <code>imageView</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or (for three-plane formats only) <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>mutableComparisonSamplers</code> is <code>VK_FALSE</code>, then <code>sampler</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>compareEnable</code> set to <code>VK_FALSE</code>"
+          "text": "Both of <code>imageView</code>, and <code>sampler</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkWriteDescriptorSetInlineUniformBlock": {
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
+      "core": [
         {
           "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkWriteDescriptorSetAccelerationStructureKHR": {
-      "(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579",
-          "text": " Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with a <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with a <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter",
-          "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
+          "text": "<code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkWriteDescriptorSetAccelerationStructureNV": {
-      "(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748",
-          "text": " Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>"
+          "text": "Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each member of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, each member of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter",
-          "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles"
+          "text": "<code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -22858,275 +28467,303 @@
       "core": [
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345",
-          "text": " <code>srcBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>srcSet</code>"
+          "text": "<code>srcBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>srcSet</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346",
-          "text": " The sum of <code>srcArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>srcBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
+          "text": "The sum of <code>srcArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>srcBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347",
-          "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>dstSet</code>"
+          "text": "<code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>dstSet</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348",
-          "text": " The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
+          "text": "The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632",
-          "text": " The type of <code>dstBinding</code> within <code>dstSet</code> <strong class=\"purple\">must</strong> be equal to the type of <code>srcBinding</code> within <code>srcSet</code>"
+          "text": "The type of <code>dstBinding</code> within <code>dstSet</code> <strong class=\"purple\">must</strong> be equal to the type of <code>srcBinding</code> within <code>srcSet</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349",
-          "text": " If <code>srcSet</code> is equal to <code>dstSet</code>, then the source and destination ranges of descriptors <strong class=\"purple\">must</strong> not overlap, where the ranges <strong class=\"purple\">may</strong> include array elements from consecutive bindings as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
+          "text": "If <code>srcSet</code> is equal to <code>dstSet</code>, then the source and destination ranges of descriptors <strong class=\"purple\">must</strong> not overlap, where the ranges <strong class=\"purple\">may</strong> include array elements from consecutive bindings as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753",
-          "text": " If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter",
-          "text": " <code>srcSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
-        },
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter",
-          "text": " <code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
-        },
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-commonparent",
-          "text": " Both of <code>dstSet</code>, and <code>srcSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
           "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223",
-          "text": " If the descriptor type of the descriptor set binding specified by <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>srcArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If the descriptor type of the descriptor set binding specified by <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>srcArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224",
-          "text": " If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225",
-          "text": " If the descriptor type of the descriptor set binding specified by either <code>srcBinding</code> or <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+          "text": "If the descriptor type of the descriptor set binding specified by either <code>srcBinding</code> or <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918",
-          "text": " If <code>srcSet</code>&#8217;s layout was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
+          "text": "If <code>srcSet</code>&#8217;s layout was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-srcSet-04885",
+          "text": "If <code>srcSet</code>&#8217;s layout was created without either the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> flag or the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920",
-          "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-srcSet-04885",
-          "text": " If <code>srcSet</code>&#8217;s layout was created with neither <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> nor <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code> flags set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
+          "text": "If the descriptor pool from which <code>srcSet</code> was allocated was created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-04887",
-          "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with neither <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> nor <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flags set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
-        {
-          "vuid": "VUID-VkCopyDescriptorSet-srcSet-04886",
-          "text": " If <code>srcSet</code>&#8217;s layout was created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
+          "text": "If the descriptor pool from which <code>srcSet</code> was allocated was created without either the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag or the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyDescriptorSet-srcSet-04888",
-          "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
-        }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753",
+          "text": "If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstSet-04612",
-          "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the new active descriptor type <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code> if the new active descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the new active descriptor type <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code> if the new active descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-04613",
-          "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>srcSet</code> at <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> and the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the active descriptor type for the source descriptor <strong class=\"purple\">must</strong> match the descriptor type of <code>dstBinding</code>"
+          "text": "If <code>VkDescriptorSetLayoutBinding</code> for <code>srcSet</code> at <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code> and the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the active descriptor type for the source descriptor <strong class=\"purple\">must</strong> match the descriptor type of <code>dstBinding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyDescriptorSet-dstSet-04614",
-          "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, and the new active descriptor type is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the <code>pMutableDescriptorTypeLists</code> for <code>srcBinding</code> and <code>dstBinding</code> <strong class=\"purple\">must</strong> match exactly"
+          "text": "If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, and the new active descriptor type is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, the <code>pMutableDescriptorTypeLists</code> for <code>srcBinding</code> and <code>dstBinding</code> <strong class=\"purple\">must</strong> match exactly",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter",
+          "text": "<code>srcSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter",
+          "text": "<code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyDescriptorSet-commonparent",
+          "text": "Both of <code>dstSet</code>, and <code>srcSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDescriptorUpdateTemplate": {
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorUpdateTemplateCreateInfo\">VkDescriptorUpdateTemplateCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorUpdateTemplateCreateInfo\">VkDescriptorUpdateTemplateCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter",
-          "text": " <code>pDescriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
+          "text": "<code>pDescriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorUpdateTemplateCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350",
-          "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkDescriptorSetLayout</code> handle"
+          "text": "If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkDescriptorSetLayout</code> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter",
-          "text": " <code>pDescriptorUpdateEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorUpdateEntryCount</code> valid <a href=\"#VkDescriptorUpdateTemplateEntry\">VkDescriptorUpdateTemplateEntry</a> structures"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter",
-          "text": " <code>templateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplateType\">VkDescriptorUpdateTemplateType</a> value"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength",
-          "text": " <code>descriptorUpdateEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent",
-          "text": " Both of <code>descriptorSetLayout</code>, and <code>pipelineLayout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [
-        {
           "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351",
-          "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352",
-          "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineLayout</code> handle"
+          "text": "If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineLayout</code> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353",
-          "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+          "text": "If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615",
-          "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> not contain a binding with type <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
+          "text": "If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> not contain a binding with type <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter",
+          "text": "<code>pDescriptorUpdateEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorUpdateEntryCount</code> valid <a href=\"#VkDescriptorUpdateTemplateEntry\">VkDescriptorUpdateTemplateEntry</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter",
+          "text": "<code>templateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplateType\">VkDescriptorUpdateTemplateType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength",
+          "text": "<code>descriptorUpdateEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent",
+          "text": "Both of <code>descriptorSetLayout</code>, and <code>pipelineLayout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorUpdateTemplateEntry": {
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354",
-          "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors"
+          "text": "<code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355",
-          "text": " <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
+          "text": "<code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter",
-          "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
-        {
           "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226",
-          "text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227",
-          "text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
+          "text": "If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter",
+          "text": "<code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyDescriptorUpdateTemplate": {
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter",
-          "text": " If <code>descriptorUpdateTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
+          "text": "If <code>descriptorUpdateTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent",
-          "text": " If <code>descriptorUpdateTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>descriptorUpdateTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkUpdateDescriptorSetWithTemplate": {
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995",
+          "text": "Host access to <code>descriptorSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a> unless explicitly denoted otherwise for specific flags",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter",
-          "text": " <code>descriptorSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
+          "text": "<code>descriptorSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter",
-          "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parent",
+          "text": "<code>descriptorSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent",
-          "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06994",
-          "text": " Host access to <code>descriptorSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
-          "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995",
-          "text": " Host access to <code>descriptorSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a> unless explicitly denoted otherwise for specific flags"
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -23134,203 +28771,615 @@
       "core": [
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358",
-          "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> that matches (is the same as, or identically defined as) the <code>VkDescriptorSetLayout</code> at set <em>n</em> in <code>layout</code>, where <em>n</em> is the sum of <code>firstSet</code> and the index into <code>pDescriptorSets</code>"
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> that matches (is the same as, or identically defined as) the <code>VkDescriptorSetLayout</code> at set <em>n</em> in <code>layout</code>, where <em>n</em> is the sum of <code>firstSet</code> and the index into <code>pDescriptorSets</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359",
-          "text": " <code>dynamicOffsetCount</code> <strong class=\"purple\">must</strong> be equal to the total number of dynamic descriptors in <code>pDescriptorSets</code>"
+          "text": "<code>dynamicOffsetCount</code> <strong class=\"purple\">must</strong> be equal to the total number of dynamic descriptors in <code>pDescriptorSets</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360",
-          "text": " The sum of <code>firstSet</code> and <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
+          "text": "The sum of <code>firstSet</code> and <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971",
-          "text": " Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>"
+          "text": "Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972",
-          "text": " Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>"
+          "text": "Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979",
-          "text": " For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, the sum of the <a href=\"#dynamic-effective-offset\">effective offset</a> and the range of the binding <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer"
+          "text": "For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, the sum of the <a href=\"#dynamic-effective-offset\">effective offset</a> and the range of the binding <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715",
-          "text": " For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, if the range was set with <code>VK_WHOLE_SIZE</code> then <code>pDynamicOffsets</code> which corresponds to the descriptor binding <strong class=\"purple\">must</strong> be 0"
+          "text": "For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, if the range was set with <code>VK_WHOLE_SIZE</code> then <code>pDynamicOffsets</code> which corresponds to the descriptor binding <strong class=\"purple\">must</strong> be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616",
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> not have been allocated from a <code>VkDescriptorPool</code> with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-06563",
+          "text": "If <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> is not enabled, each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010",
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> which was not created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter",
-          "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles"
+          "text": "<code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter",
-          "text": " If <code>dynamicOffsetCount</code> is not <code>0</code>, <code>pDynamicOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicOffsetCount</code> <code>uint32_t</code> values"
+          "text": "If <code>dynamicOffsetCount</code> is not <code>0</code>, <code>pDynamicOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicOffsetCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength",
-          "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorSets-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>layout</code>, and the elements of <code>pDescriptorSets</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>layout</code>, and the elements of <code>pDescriptorSets</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+      ]
+    },
+    "vkCmdBindDescriptorSets2KHR": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616",
-          "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> not have been allocated from a <code>VkDescriptorPool</code> with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag set"
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-09467",
+          "text": "Each bit in <code>pBindDescriptorSetsInfo-&gt;stageFlags</code> <strong class=\"purple\">must</strong> be a stage supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-parameter",
+          "text": "<code>pBindDescriptorSetsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBindDescriptorSetsInfoKHR\">VkBindDescriptorSetsInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorSets2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
-      ],
-      "!(VK_EXT_graphics_pipeline_library)": [
+      ]
+    },
+    "VkBindDescriptorSetsInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-06563",
-          "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a>"
-        }
-      ],
-      "(VK_EXT_graphics_pipeline_library)": [
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-00358",
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> that matches (is the same as, or identically defined as) the <code>VkDescriptorSetLayout</code> at set <em>n</em> in <code>layout</code>, where <em>n</em> is the sum of <code>firstSet</code> and the index into <code>pDescriptorSets</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754",
-          "text": " If <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> is not enabled, each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-dynamicOffsetCount-00359",
+          "text": "<code>dynamicOffsetCount</code> <strong class=\"purple\">must</strong> be equal to the total number of dynamic descriptors in <code>pDescriptorSets</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010",
-          "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> which was not created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-firstSet-00360",
+          "text": "The sum of <code>firstSet</code> and <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-01971",
+          "text": "Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-01972",
+          "text": "Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-01979",
+          "text": "For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, the sum of the <a href=\"#dynamic-effective-offset\">effective offset</a> and the range of the binding <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06715",
+          "text": "For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, if the range was set with <code>VK_WHOLE_SIZE</code> then <code>pDynamicOffsets</code> which corresponds to the descriptor binding <strong class=\"purple\">must</strong> be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-04616",
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> not have been allocated from a <code>VkDescriptorPool</code> with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06563",
+          "text": "If <a href=\"#features-graphicsPipelineLibrary\"><code>graphicsPipelineLibrary</code></a> is not enabled, each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-08010",
+          "text": "Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> which was not created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-stageFlags-parameter",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-stageFlags-requiredbitmask",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-parameter",
+          "text": "<code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-parameter",
+          "text": "If <code>dynamicOffsetCount</code> is not <code>0</code>, and <code>pDynamicOffsets</code> is not <code>NULL</code>, <code>pDynamicOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicOffsetCount</code> or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <code>uint32_t</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-descriptorSetCount-arraylength",
+          "text": "<code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorSetsInfoKHR-commonparent",
+          "text": "Both of <code>layout</code>, and the elements of <code>pDescriptorSets</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdPushDescriptorSetKHR": {
-      "(VK_KHR_push_descriptor)": [
-        {
-          "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
-        },
+      "core": [
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364",
-          "text": " <code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365",
-          "text": " <code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>"
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494",
-          "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures"
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter",
-          "text": " <code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures"
+          "text": "<code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength",
-          "text": " <code>descriptorWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>descriptorWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdPushDescriptorSet2KHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-09468",
+          "text": "Each bit in <code>pPushDescriptorSetInfo-&gt;stageFlags</code> <strong class=\"purple\">must</strong> be a stage supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-parameter",
+          "text": "<code>pPushDescriptorSetInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPushDescriptorSetInfoKHR\">VkPushDescriptorSetInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSet2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPushDescriptorSetInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-set-00364",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-set-00365",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-06494",
+          "text": "For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-stageFlags-parameter",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-stageFlags-requiredbitmask",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-parameter",
+          "text": "<code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetInfoKHR-descriptorWriteCount-arraylength",
+          "text": "<code>descriptorWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdPushDescriptorSetWithTemplateKHR": {
-      "(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366",
-          "text": " The <code>pipelineBindPoint</code> specified during the creation of the descriptor update template <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
+          "text": "The <code>pipelineBindPoint</code> specified during the creation of the descriptor update template <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be compatible with the layout used to create <code>descriptorUpdateTemplate</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994",
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created with a <code>templateType</code> of <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the same value used to create <code>descriptorUpdateTemplate</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304",
-          "text": " <code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305",
-          "text": " <code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>"
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter",
-          "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>descriptorUpdateTemplate</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>descriptorUpdateTemplate</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdPushDescriptorSetWithTemplate2KHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplate2KHR-pPushDescriptorSetWithTemplateInfo-parameter",
+          "text": "<code>pPushDescriptorSetWithTemplateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPushDescriptorSetWithTemplateInfoKHR\">VkPushDescriptorSetWithTemplateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushDescriptorSetWithTemplate2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPushDescriptorSetWithTemplateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-commandBuffer-00366",
+          "text": "The <code>pipelineBindPoint</code> specified during the creation of the descriptor update template <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-01686",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-07993",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be compatible with the layout used to create <code>descriptorUpdateTemplate</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-07994",
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created with a <code>templateType</code> of <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07995",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the same value used to create <code>descriptorUpdateTemplate</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07304",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07305",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-parameter",
+          "text": "<code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-parameter",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushDescriptorSetWithTemplateInfoKHR-commonparent",
+          "text": "Both of <code>descriptorUpdateTemplate</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -23338,1149 +29387,1721 @@
       "core": [
         {
           "vuid": "VUID-vkCmdPushConstants-offset-01795",
-          "text": " For each byte in the range specified by <code>offset</code> and <code>size</code> and for each shader stage in <code>stageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>layout</code> that includes that byte and that stage"
+          "text": "For each byte in the range specified by <code>offset</code> and <code>size</code> and for each shader stage in <code>stageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>layout</code> that includes that byte and that stage",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-offset-01796",
-          "text": " For each byte in the range specified by <code>offset</code> and <code>size</code> and for each push constant range that overlaps that byte, <code>stageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>"
+          "text": "For each byte in the range specified by <code>offset</code> and <code>size</code> and for each push constant range that overlaps that byte, <code>stageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-offset-00368",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-size-00369",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-offset-00370",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-size-00371",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter",
-          "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask",
-          "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-pValues-parameter",
-          "text": " <code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>size</code> bytes"
+          "text": "<code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>size</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-size-arraylength",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPushConstants-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdPushConstants2KHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdPushConstants2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushConstants2KHR-pPushConstantsInfo-parameter",
+          "text": "<code>pPushConstantsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPushConstantsInfoKHR\">VkPushConstantsInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushConstants2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushConstants2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdPushConstants2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPushConstantsInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-offset-01795",
+          "text": "For each byte in the range specified by <code>offset</code> and <code>size</code> and for each shader stage in <code>stageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>layout</code> that includes that byte and that stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-offset-01796",
+          "text": "For each byte in the range specified by <code>offset</code> and <code>size</code> and for each push constant range that overlaps that byte, <code>stageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-offset-00368",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-size-00369",
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-offset-00370",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-size-00371",
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-stageFlags-parameter",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-stageFlags-requiredbitmask",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-pValues-parameter",
+          "text": "<code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>size</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPushConstantsInfoKHR-size-arraylength",
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetBufferDeviceAddress": {
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324",
-          "text": " The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> or <a href=\"#features-bufferDeviceAddressEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> or <a href=\"#features-bufferDeviceAddressEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferDeviceAddress-device-03325",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> or <a href=\"#features-bufferDeviceAddressMultiDeviceEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)": [
-        {
-          "vuid": "VUID-vkGetBufferDeviceAddress-None-06542",
-          "text": " The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> or <a href=\"#features-bufferDeviceAddressMultiDeviceEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetBufferDeviceAddress-device-06543",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
-        {
           "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferDeviceAddress-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferDeviceAddressInfo": {
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02600",
-          "text": " If <code>buffer</code> is non-sparse and was not created with the <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> flag, then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>buffer</code> is non-sparse and was not created with the <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> flag, then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02601",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferDeviceAddressInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferDeviceAddressInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetBufferOpaqueCaptureAddress": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-None-03326",
-          "text": " The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-bufferDeviceAddress\"><code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-03327",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorSetLayoutSizeEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameter",
-          "text": " <code>pLayoutSizeInBytes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value"
+          "text": "<code>pLayoutSizeInBytes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parent",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorSetLayoutBindingOffsetEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> flag set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameter",
-          "text": " <code>pOffset</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value"
+          "text": "<code>pOffset</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceSize\">VkDeviceSize</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parent",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorEXT-None-08015",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDescriptorEXT-dataSize-08125",
+          "text": "If <code>pDescriptorInfo-&gt;type</code> is not <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> or <code>pDescriptorInfo-&gt;data.pCombinedImageSampler</code> has a <code>imageView</code> member that was not created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain, <code>dataSize</code> <strong class=\"purple\">must</strong> equal the size of a descriptor of type <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>::<code>type</code> determined by the value in <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a> , or determined by <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>::<code>combinedImageSamplerDensityMapDescriptorSize</code> if <code>pDescriptorInfo</code> specifies a <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> whose <a href=\"#VkSampler\">VkSampler</a> was created with <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDescriptorEXT-descriptorType-09469",
+          "text": "If <code>pDescriptorInfo-&gt;type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> and <code>pDescriptorInfo-&gt;data.pCombinedImageSampler</code> has a <code>imageView</code> member that was created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain, <code>dataSize</code> <strong class=\"purple\">must</strong> equal the size of <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>combinedImageSamplerDescriptorSize</code> times <a href=\"#VkSamplerYcbcrConversionImageFormatProperties\">VkSamplerYcbcrConversionImageFormatProperties</a>::<code>combinedImageSamplerDescriptorCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorEXT-pDescriptor-08016",
-          "text": " <code>pDescriptor</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of at least <code>dataSize</code> bytes"
+          "text": "<code>pDescriptor</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of at least <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorEXT-pDescriptorInfo-parameter",
-          "text": " <code>pDescriptorInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a> structure"
+          "text": "<code>pDescriptorInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorEXT-pDescriptor-parameter",
-          "text": " <code>pDescriptor</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pDescriptor</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorEXT-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+!(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkGetDescriptorEXT-dataSize-08120",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> equal the size of a descriptor of type <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>::<code>type</code> determined by the value in <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkGetDescriptorEXT-dataSize-08125",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> equal the size of a descriptor of type <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>::<code>type</code> determined by the value in <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, or <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>::<code>combinedImageSamplerDensityMapDescriptorSize</code> if <code>pDescriptorInfo</code> specifies a <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> whose <a href=\"#VkSampler\">VkSampler</a> was created with <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code> set"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorGetInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08018",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08019",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler-&gt;sampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkSampler\">VkSampler</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler-&gt;sampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkSampler\">VkSampler</a> created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08020",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08021",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>pInputAttachmentImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>pInputAttachmentImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08022",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and if <code>pSampledImage</code> is not <code>NULL</code>, the <code>pSampledImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and if <code>pSampledImage</code> is not <code>NULL</code>, the <code>pSampledImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08023",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and if <code>pStorageImage</code> is not <code>NULL</code>, the <code>pStorageImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and if <code>pStorageImage</code> is not <code>NULL</code>, the <code>pStorageImage-&gt;imageView</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created on <code>device</code>, or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08024",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, <code>pUniformTexelBuffer</code> is not <code>NULL</code> and <code>pUniformTexelBuffer-&gt;address</code> is not zero, <code>pUniformTexelBuffer-&gt;address</code> must be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, <code>pUniformTexelBuffer</code> is not <code>NULL</code> and <code>pUniformTexelBuffer-&gt;address</code> is not zero, <code>pUniformTexelBuffer-&gt;address</code> <strong class=\"purple\">must</strong> be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08025",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, <code>pStorageTexelBuffer</code> is not <code>NULL</code> and <code>pStorageTexelBuffer-&gt;address</code> is not zero, <code>pStorageTexelBuffer-&gt;address</code> must be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, <code>pStorageTexelBuffer</code> is not <code>NULL</code> and <code>pStorageTexelBuffer-&gt;address</code> is not zero, <code>pStorageTexelBuffer-&gt;address</code> <strong class=\"purple\">must</strong> be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08026",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>pUniformBuffer</code> is not <code>NULL</code> and <code>pUniformBuffer-&gt;address</code> is not zero, <code>pUniformBuffer-&gt;address</code> must be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>pUniformBuffer</code> is not <code>NULL</code> and <code>pUniformBuffer-&gt;address</code> is not zero, <code>pUniformBuffer-&gt;address</code> <strong class=\"purple\">must</strong> be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-08027",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>pStorageBuffer</code> is not <code>NULL</code> and <code>pStorageBuffer-&gt;address</code> is not zero, <code>pStorageBuffer-&gt;address</code> must be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>pStorageBuffer</code> is not <code>NULL</code> and <code>pStorageBuffer-&gt;address</code> is not zero, <code>pStorageBuffer-&gt;address</code> <strong class=\"purple\">must</strong> be an address within a <a href=\"#VkBuffer\">VkBuffer</a> created on <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorGetInfoEXT-type-09427",
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, <code>pUniformBuffer</code> is not <code>NULL</code> , the number of texel buffer elements given by <span class=\"eq\">(⌊<code>pUniformBuffer-&gt;range</code> / (texel block size)⌋ × (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>pUniformBuffer-&gt;format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorGetInfoEXT-type-09428",
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, <code>pStorageBuffer</code> is not <code>NULL</code> , the number of texel buffer elements given by <span class=\"eq\">(⌊<code>pStorageBuffer-&gt;range</code> / (texel block size)⌋ × (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>pStorageBuffer-&gt;format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorGetInfoEXT-type-08028",
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> and <code>accelerationStructure</code> is not <code>0</code>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> contain the address of a <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> created on <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorGetInfoEXT-type-08029",
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> and <code>accelerationStructure</code> is not <code>0</code>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> contain the handle of a <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> created on <code>device</code>, returned by <a href=\"#vkGetAccelerationStructureHandleNV\">vkGetAccelerationStructureHandleNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pSampler-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, the <code>pSampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSampler\">VkSampler</a> handle"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, the <code>pSampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSampler\">VkSampler</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>pCombinedImageSampler</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>pInputAttachmentImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>pInputAttachmentImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pSampledImage-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and if <code>pSampledImage</code> is not <code>NULL</code>, the <code>pSampledImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and if <code>pSampledImage</code> is not <code>NULL</code>, the <code>pSampledImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageImage-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and if <code>pStorageImage</code> is not <code>NULL</code>, the <code>pStorageImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and if <code>pStorageImage</code> is not <code>NULL</code>, the <code>pStorageImage</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and if <code>pUniformTexelBuffer</code> is not <code>NULL</code>, the <code>pUniformTexelBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and if <code>pUniformTexelBuffer</code> is not <code>NULL</code>, the <code>pUniformTexelBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and if <code>pStorageTexelBuffer</code> is not <code>NULL</code>, the <code>pStorageTexelBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and if <code>pStorageTexelBuffer</code> is not <code>NULL</code>, the <code>pStorageTexelBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and if <code>pUniformBuffer</code> is not <code>NULL</code>, the <code>pUniformBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and if <code>pUniformBuffer</code> is not <code>NULL</code>, the <code>pUniformBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and if <code>pStorageBuffer</code> is not <code>NULL</code>, the <code>pStorageBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-VkDescriptorGetInfoEXT-type-08028",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> and <code>accelerationStructure</code> is not <code>0</code>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> contain the address of a <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> created on <code>device</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-VkDescriptorGetInfoEXT-type-08029",
-          "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> and <code>accelerationStructure</code> is not <code>0</code>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> contain the handle of a <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> created on <code>device</code>, returned by <a href=\"#vkGetAccelerationStructureHandleNV\">vkGetAccelerationStructureHandleNV</a>"
+          "text": "If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and if <code>pStorageBuffer</code> is not <code>NULL</code>, the <code>pStorageBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorAddressInfoEXT\">VkDescriptorAddressInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08030",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and <code>pUniformBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and <code>pUniformBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08031",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and <code>pStorageBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and <code>pStorageBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08032",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and <code>pUniformTexelBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and <code>pUniformTexelBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08033",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and <code>pStorageTexelBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)": [
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and <code>pStorageTexelBuffer-&gt;address</code> is the address of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08034",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pCombinedImageSampler-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pCombinedImageSampler-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08035",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pSampledImage</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> and <code>pSampledImage-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pSampledImage</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> and <code>pSampledImage-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08036",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageImage</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> and <code>pStorageImage-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageImage</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> and <code>pStorageImage-&gt;imageView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08037",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pUniformTexelBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pUniformTexelBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08038",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageTexelBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageTexelBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08039",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pUniformBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pUniformBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08040",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)+(VK_KHR_acceleration_structure)": [
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>pStorageBuffer</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08041",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)+(VK_NV_ray_tracing)": [
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorDataEXT-type-08042",
-          "text": " If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If <a href=\"#VkDescriptorGetInfoEXT\">VkDescriptorGetInfoEXT</a>:<code>type</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, and the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorAddressInfoEXT": {
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-address-08043",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>address</code> <strong class=\"purple\">must</strong> not be zero"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, <code>address</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938",
+          "text": "If <code>address</code> is zero, <code>range</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939",
+          "text": "If <code>address</code> is not zero, <code>range</code> <strong class=\"purple\">must</strong> not be <code>VK_WHOLE_SIZE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-None-08044",
-          "text": " If <code>address</code> is not zero, <code>address</code> <strong class=\"purple\">must</strong> be a valid device address at an offset within a <a href=\"#VkBuffer\">VkBuffer</a>"
+          "text": "If <code>address</code> is not zero, <code>address</code> <strong class=\"purple\">must</strong> be a valid device address at an offset within a <a href=\"#VkBuffer\">VkBuffer</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-range-08045",
-          "text": " <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer containing <code>address</code> minus the offset of <code>address</code> from the base address of the buffer"
+          "text": "<code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer containing <code>address</code> minus the offset of <code>address</code> from the base address of the buffer",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDescriptorAddressInfoEXT-range-08046",
-          "text": " <code>range</code> must not be <code>VK_WHOLE_SIZE</code>"
+          "vuid": "VUID-VkDescriptorAddressInfoEXT-range-08940",
+          "text": "<code>range</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorAddressInfoEXT-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindDescriptorBuffersEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-None-08047",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048",
-          "text": " There <strong class=\"purple\">must</strong> be no more than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxSamplerDescriptorBufferBindings</code> descriptor buffers containing sampler descriptor data bound"
+          "text": "There <strong class=\"purple\">must</strong> be no more than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxSamplerDescriptorBufferBindings</code> descriptor buffers containing sampler descriptor data bound",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049",
-          "text": " There <strong class=\"purple\">must</strong> be no more than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxResourceDescriptorBufferBindings</code> descriptor buffers containing resource descriptor data bound"
+          "text": "There <strong class=\"purple\">must</strong> be no more than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxResourceDescriptorBufferBindings</code> descriptor buffers containing resource descriptor data bound",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-None-08050",
-          "text": " There <strong class=\"purple\">must</strong> be no more than <code>1</code> descriptor buffer bound that was created with the <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set"
+          "text": "There <strong class=\"purple\">must</strong> be no more than <code>1</code> descriptor buffer bound that was created with the <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051",
-          "text": " <code>bufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxDescriptorBufferBindings</code>"
+          "text": "<code>bufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxDescriptorBufferBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052",
-          "text": " For any element of <code>pBindingInfos</code>, if the buffer from which <code>address</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pBindingInfos</code>, if the buffer from which <code>address</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053",
-          "text": " For any element of <code>pBindingInfos</code>, the buffer from which <code>address</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set if it contains sampler descriptor data"
+          "text": "For any element of <code>pBindingInfos</code>, the buffer from which <code>address</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set if it contains sampler descriptor data",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054",
-          "text": " For any element of <code>pBindingInfos</code>, the buffer from which <code>address</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set if it contains resource descriptor data"
+          "text": "For any element of <code>pBindingInfos</code>, the buffer from which <code>address</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set if it contains resource descriptor data",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055",
-          "text": " For any element of <code>pBindingInfos</code>, <code>usage</code> <strong class=\"purple\">must</strong> match the buffer from which <code>address</code> was queried"
+          "text": "For any element of <code>pBindingInfos</code>, <code>usage</code> <strong class=\"purple\">must</strong> match the buffer from which <code>address</code> was queried",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameter",
-          "text": " <code>pBindingInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferCount</code> valid <a href=\"#VkDescriptorBufferBindingInfoEXT\">VkDescriptorBufferBindingInfoEXT</a> structures"
+          "text": "<code>pBindingInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferCount</code> valid <a href=\"#VkDescriptorBufferBindingInfoEXT\">VkDescriptorBufferBindingInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylength",
-          "text": " <code>bufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorBufferBindingInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
+        {
+          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-None-09499",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-None-09500",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must not be 0",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056",
-          "text": " If <a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> is <code>VK_FALSE</code>, and <code>usage</code> contains VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkDescriptorBufferBindingPushDescriptorBufferHandleEXT\">VkDescriptorBufferBindingPushDescriptorBufferHandleEXT</a> structure"
+          "text": "If <a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> is <code>VK_FALSE</code>, and <code>usage</code> contains <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkDescriptorBufferBindingPushDescriptorBufferHandleEXT\">VkDescriptorBufferBindingPushDescriptorBufferHandleEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-address-08057",
-          "text": " <code>address</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferOffsetAlignment</code>"
+          "text": "<code>address</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08122",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08123",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08124",
+          "text": "If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDescriptorBufferBindingPushDescriptorBufferHandleEXT\">VkDescriptorBufferBindingPushDescriptorBufferHandleEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> or <a href=\"#VkDescriptorBufferBindingPushDescriptorBufferHandleEXT\">VkDescriptorBufferBindingPushDescriptorBufferHandleEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_KHR_push_descriptor)": [
-        {
-          "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-usage-08124",
-          "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>, <code>address</code> <strong class=\"purple\">must</strong> be an address within a valid buffer that was created with <code>VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059",
-          "text": " <a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "<a href=\"#limits-bufferlessPushDescriptors\"><code>VkPhysicalDeviceDescriptorBufferPropertiesEXT</code>::<code>bufferlessPushDescriptors</code></a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDescriptorBufferOffsetsEXT": {
-      "(VK_EXT_descriptor_buffer)": [
-        {
-          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
+      "core": [
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061",
-          "text": " The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferOffsetAlignment</code>"
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063",
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any descriptor binding referenced by <code>layout</code> without the <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code> flag computes a valid address inside the underlying <a href=\"#VkBuffer\">VkBuffer</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08126",
-          "text": " The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a sampler descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxSamplerDescriptorBufferRange</code> of the sampler descriptor buffer binding"
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a sampler descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxSamplerDescriptorBufferRange</code> of the sampler descriptor buffer binding",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08127",
-          "text": " The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a resource descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxResourceDescriptorBufferRange</code> of the resource descriptor buffer binding"
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a resource descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxResourceDescriptorBufferRange</code> of the resource descriptor buffer binding",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064",
-          "text": " Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxDescriptorBufferBindings</code>"
+          "text": "Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxDescriptorBufferBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065",
-          "text": " Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> reference a valid descriptor buffer binding set by a previous call to <a href=\"#vkCmdBindDescriptorBuffersEXT\">vkCmdBindDescriptorBuffersEXT</a> in <code>commandBuffer</code>"
+          "text": "Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> reference a valid descriptor buffer binding set by a previous call to <a href=\"#vkCmdBindDescriptorBuffersEXT\">vkCmdBindDescriptorBuffersEXT</a> in <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066",
-          "text": " The sum of <code>firstSet</code> and <code>setCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
+          "text": "The sum of <code>firstSet</code> and <code>setCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006",
+          "text": "The <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> for each set from <code>firstSet</code> to <span class=\"eq\"><code>firstSet</code> +  <code>setCount</code></span> when <code>layout</code> was created <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060",
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameter",
-          "text": " <code>pBufferIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <code>uint32_t</code> values"
+          "text": "<code>pBufferIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-parameter",
-          "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "<code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylength",
-          "text": " <code>setCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>setCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_EXT_descriptor_buffer)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      ]
+    },
+    "vkCmdSetDescriptorBufferOffsets2EXT": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08062",
-          "text": " The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any descriptor binding referenced by <code>layout</code> computes a valid address inside the underlying <a href=\"#VkBuffer\">VkBuffer</a>"
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-descriptorBuffer-09470",
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-09471",
+          "text": "Each bit in <code>pSetDescriptorBufferOffsetsInfo-&gt;stageFlags</code> <strong class=\"purple\">must</strong> be a stage supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-parameter",
+          "text": "<code>pSetDescriptorBufferOffsetsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSetDescriptorBufferOffsetsInfoEXT\">VkSetDescriptorBufferOffsetsInfoEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDescriptorBufferOffsets2EXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
-      ],
-      "(VK_EXT_descriptor_buffer)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      ]
+    },
+    "VkSetDescriptorBufferOffsetsInfoEXT": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063",
-          "text": " The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any descriptor binding referenced by <code>layout</code> without the <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code> flag computes a valid address inside the underlying <a href=\"#VkBuffer\">VkBuffer</a>"
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08061",
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>descriptorBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08063",
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any descriptor binding referenced by <code>layout</code> without the <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code> flag computes a valid address inside the underlying <a href=\"#VkBuffer\">VkBuffer</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08126",
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a sampler descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxSamplerDescriptorBufferRange</code> of the sampler descriptor buffer binding",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08127",
+          "text": "The offsets in <code>pOffsets</code> <strong class=\"purple\">must</strong> be small enough such that any location accessed by a shader as a resource descriptor <strong class=\"purple\">must</strong> be within <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxResourceDescriptorBufferRange</code> of the resource descriptor buffer binding",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08064",
+          "text": "Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>maxDescriptorBufferBindings</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08065",
+          "text": "Each element of <code>pBufferIndices</code> <strong class=\"purple\">must</strong> reference a valid descriptor buffer binding set by a previous call to <a href=\"#vkCmdBindDescriptorBuffersEXT\">vkCmdBindDescriptorBuffersEXT</a> in <code>commandBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-08066",
+          "text": "The sum of <code>firstSet</code> and <code>setCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-09006",
+          "text": "The <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> for each set from <code>firstSet</code> to <span class=\"eq\"><code>firstSet</code> +  <code>setCount</code></span> when <code>layout</code> was created <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-parameter",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-requiredbitmask",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-parameter",
+          "text": "<code>pBufferIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-parameter",
+          "text": "<code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetDescriptorBufferOffsetsInfoEXT-setCount-arraylength",
+          "text": "<code>setCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindDescriptorBufferEmbeddedSamplersEXT": {
-      "(VK_EXT_descriptor_buffer)": [
-        {
-          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
-        },
+      "core": [
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070",
-          "text": " The <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> at index <code>set</code> when <code>layout</code> was created <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code> bit set"
+          "text": "The <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> at index <code>set</code> when <code>layout</code> was created <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08071",
-          "text": " <code>set</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068",
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-descriptorBuffer-09472",
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBuffer</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-09473",
+          "text": "Each bit in <code>pBindDescriptorBufferEmbeddedSamplersInfo-&gt;stageFlags</code> <strong class=\"purple\">must</strong> be a stage supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-parameter",
+          "text": "<code>pBindDescriptorBufferEmbeddedSamplersInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBindDescriptorBufferEmbeddedSamplersInfoEXT\">VkBindDescriptorBufferEmbeddedSamplersInfoEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBindDescriptorBufferEmbeddedSamplersInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-set-08070",
+          "text": "The <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> at index <code>set</code> when <code>layout</code> was created <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-set-08071",
+          "text": "<code>set</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-None-09495",
+          "text": "If the <a href=\"#features-dynamicPipelineLayout\"><code>dynamicPipelineLayout</code></a> feature is not enabled, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-09496",
+          "text": "If <code>layout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-parameter",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-requiredbitmask",
+          "text": "<code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-parameter",
+          "text": "If <code>layout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetBufferOpaqueCaptureDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>bufferCaptureReplayDescriptorDataSize</code> bytes in size"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>bufferCaptureReplayDescriptorDataSize</code> bytes in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCaptureDescriptorDataInfoEXT\">VkBufferCaptureDescriptorDataInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCaptureDescriptorDataInfoEXT\">VkBufferCaptureDescriptorDataInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCaptureDescriptorDataInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>flags</code>"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageOpaqueCaptureDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>imageCaptureReplayDescriptorDataSize</code> bytes in size"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>imageCaptureReplayDescriptorDataSize</code> bytes in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCaptureDescriptorDataInfoEXT\">VkImageCaptureDescriptorDataInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCaptureDescriptorDataInfoEXT\">VkImageCaptureDescriptorDataInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageCaptureDescriptorDataInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageViewOpaqueCaptureDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>imageViewCaptureReplayDescriptorDataSize</code> bytes in size"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>imageViewCaptureReplayDescriptorDataSize</code> bytes in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewCaptureDescriptorDataInfoEXT\">VkImageViewCaptureDescriptorDataInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewCaptureDescriptorDataInfoEXT\">VkImageViewCaptureDescriptorDataInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageViewCaptureDescriptorDataInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>flags</code>"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameter",
-          "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSamplerOpaqueCaptureDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>samplerCaptureReplayDescriptorDataSize</code> bytes in size"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>samplerCaptureReplayDescriptorDataSize</code> bytes in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerCaptureDescriptorDataInfoEXT\">VkSamplerCaptureDescriptorDataInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerCaptureDescriptorDataInfoEXT\">VkSamplerCaptureDescriptorDataInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerCaptureDescriptorDataInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087",
-          "text": " <code>sampler</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>flags</code>"
+          "text": "<code>sampler</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameter",
-          "text": " <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle"
+          "text": "<code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT": {
-      "(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088",
-          "text": " The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>accelerationStructureCaptureReplayDescriptorDataSize</code> bytes in size"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> point to a buffer that is at least <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>::<code>accelerationStructureCaptureReplayDescriptorDataSize</code> bytes in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090",
-          "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCaptureDescriptorDataInfoEXT\">VkAccelerationStructureCaptureDescriptorDataInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCaptureDescriptorDataInfoEXT\">VkAccelerationStructureCaptureDescriptorDataInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureCaptureDescriptorDataInfoEXT": {
-      "(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091",
-          "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>createFlags</code>"
+          "text": "If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>createFlags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092",
-          "text": " If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkAccelerationStructureCreateInfoNV\">VkAccelerationStructureCreateInfoNV</a>::info::<code>flags</code>"
+          "text": "If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT</code> set in <a href=\"#VkAccelerationStructureCreateInfoNV\">VkAccelerationStructureCreateInfoNV</a>::<code>info.flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093",
-          "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08094",
-          "text": " If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> then <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameter",
-          "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameter",
-          "text": " If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "If <code>accelerationStructureNV</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructureNV</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparent",
-          "text": " Both of <code>accelerationStructure</code>, and <code>accelerationStructureNV</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>accelerationStructure</code>, and <code>accelerationStructureNV</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpaqueCaptureDescriptorDataCreateInfoEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameter",
-          "text": " <code>opaqueCaptureDescriptorData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>opaqueCaptureDescriptorData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordKHR": {
-      "(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04154",
-          "text": " The <code>BaryCoordKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04155",
-          "text": " The variable decorated with <code>BaryCoordKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordKHR-BaryCoordKHR-04156",
-          "text": " The variable decorated with <code>BaryCoordKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordNoPerspAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157",
-          "text": " The <code>BaryCoordNoPerspAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordNoPerspAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158",
-          "text": " The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159",
-          "text": " The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordNoPerspKHR": {
-      "(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04160",
-          "text": " The <code>BaryCoordNoPerspKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordNoPerspKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161",
-          "text": " The variable decorated with <code>BaryCoordNoPerspKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordNoPerspKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162",
-          "text": " The variable decorated with <code>BaryCoordNoPerspKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordNoPerspKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordNoPerspCentroidAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163",
-          "text": " The <code>BaryCoordNoPerspCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordNoPerspCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164",
-          "text": " The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165",
-          "text": " The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordNoPerspSampleAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166",
-          "text": " The <code>BaryCoordNoPerspSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordNoPerspSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167",
-          "text": " The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168",
-          "text": " The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordPullModelAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169",
-          "text": " The <code>BaryCoordPullModelAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordPullModelAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170",
-          "text": " The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171",
-          "text": " The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordSmoothAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172",
-          "text": " The <code>BaryCoordSmoothAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordSmoothAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173",
-          "text": " The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174",
-          "text": " The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordSmoothCentroidAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175",
-          "text": " The <code>BaryCoordSmoothCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordSmoothCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176",
-          "text": " The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177",
-          "text": " The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaryCoordSmoothSampleAMD": {
-      "(VK_AMD_shader_explicit_vertex_parameter)": [
+      "core": [
         {
           "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178",
-          "text": " The <code>BaryCoordSmoothSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>BaryCoordSmoothSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179",
-          "text": " The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180",
-          "text": " The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "BaseInstance": {
-      "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
+      "core": [
         {
           "vuid": "VUID-BaseInstance-BaseInstance-04181",
-          "text": " The <code>BaseInstance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
+          "text": "The <code>BaseInstance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaseInstance-BaseInstance-04182",
-          "text": " The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaseInstance-BaseInstance-04183",
-          "text": " The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "BaseVertex": {
-      "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
+      "core": [
         {
           "vuid": "VUID-BaseVertex-BaseVertex-04184",
-          "text": " The <code>BaseVertex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
+          "text": "The <code>BaseVertex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaseVertex-BaseVertex-04185",
-          "text": " The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-BaseVertex-BaseVertex-04186",
-          "text": " The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -24488,43 +31109,80 @@
       "core": [
         {
           "vuid": "VUID-ClipDistance-ClipDistance-04187",
-          "text": " The <code>ClipDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>ClipDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistance-ClipDistance-04188",
-          "text": " The variable decorated with <code>ClipDistance</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>ClipDistance</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistance-ClipDistance-04189",
-          "text": " The variable decorated with <code>ClipDistance</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ClipDistance</code> within the <code>Fragment</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistance-ClipDistance-04190",
-          "text": " The variable decorated with <code>ClipDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared in a {StorageClass} other than <code>Input</code> or <code>Output</code>"
+          "text": "The variable decorated with <code>ClipDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> not be declared in a <code>Storage</code> <code>Class</code> other than <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistance-ClipDistance-04191",
-          "text": " The variable decorated with <code>ClipDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values"
+          "text": "The variable decorated with <code>ClipDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "ClipDistancePerViewNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192",
-          "text": " The <code>ClipDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
+          "text": "The <code>ClipDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193",
-          "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194",
-          "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
+          "text": "The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195",
-          "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values"
+          "text": "The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "ClusterIDHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797",
+          "text": "The <code>ClusterIDHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798",
+          "text": "The variable decorated with <code>ClusterIDHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "ClusterShadingRateHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09448",
+          "text": "The <code>ClusterShadingRateHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09449",
+          "text": "The variable decorated with <code>ClusterShadingRateHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -24532,127 +31190,166 @@
       "core": [
         {
           "vuid": "VUID-CullDistance-CullDistance-04196",
-          "text": " The <code>CullDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>CullDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistance-CullDistance-04197",
-          "text": " The variable decorated with <code>CullDistance</code> within the <code>MeshEXT</code>, <code>MeshNV</code> or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>CullDistance</code> within the <code>MeshEXT</code>, <code>MeshNV</code> or <code>Vertex</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistance-CullDistance-04198",
-          "text": " The variable decorated with <code>CullDistance</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CullDistance</code> within the <code>Fragment</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistance-CullDistance-04199",
-          "text": " The variable decorated with <code>CullDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
+          "text": "The variable decorated with <code>CullDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> not be declared using a <code>Storage</code> <code>Class</code> other than <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistance-CullDistance-04200",
-          "text": " The variable decorated with <code>CullDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values"
+          "text": "The variable decorated with <code>CullDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "CullDistancePerViewNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201",
-          "text": " The <code>CullDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
+          "text": "The <code>CullDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202",
-          "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203",
-          "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
+          "text": "The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204",
-          "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values"
+          "text": "The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "CullPrimitiveEXT": {
-      "(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034",
-          "text": " The <code>CullPrimitiveEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> {ExecutionModel}"
+          "text": "The <code>CullPrimitiveEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035",
-          "text": " The variable decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036",
-          "text": " The variable decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> be declared as an array of boolean values"
+          "text": "The variable decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> be declared as an array of boolean values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037",
-          "text": " The size of the array decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>"
+          "text": "The size of the array decorated with <code>CullPrimitiveEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038",
-          "text": " The variable decorated with <code>CullPrimitiveEXT</code> within the <code>MeshEXT</code> {ExecutionModel} <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration"
+          "text": "The variable decorated with <code>CullPrimitiveEXT</code> within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration",
+          "page": "vkspec"
         }
       ]
     },
     "CullMaskKHR": {
-      "(VK_KHR_ray_tracing_pipeline,VK_KHR_ray_tracing_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-CullMaskKHR-CullMaskKHR-06735",
-          "text": " The <code>CullMaskKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>CullMaskKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullMaskKHR-CullMaskKHR-06736",
-          "text": " The variable decorated with <code>CullMaskKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CullMaskKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CullMaskKHR-CullMaskKHR-06737",
-          "text": " The variable decorated with <code>CullMaskKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>CullMaskKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "CurrentRayTimeNV": {
-      "(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942",
-          "text": " The <code>CurrentRayTimeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>CurrentRayTimeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943",
-          "text": " The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944",
-          "text": " The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
         }
       ]
     },
     "DeviceIndex": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-DeviceIndex-DeviceIndex-04205",
-          "text": " The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-DeviceIndex-DeviceIndex-04206",
-          "text": " The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "DrawIndex": {
-      "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
+      "core": [
         {
           "vuid": "VUID-DrawIndex-DrawIndex-04207",
-          "text": " The <code>DrawIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>DrawIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-DrawIndex-DrawIndex-04208",
-          "text": " The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-DrawIndex-DrawIndex-04209",
-          "text": " The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "FirstIndexHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07799",
+          "text": "The <code>FirstIndexHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07800",
+          "text": "The variable decorated with <code>FirstIndexHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -24660,15 +31357,18 @@
       "core": [
         {
           "vuid": "VUID-FragCoord-FragCoord-04210",
-          "text": " The <code>FragCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragCoord-FragCoord-04211",
-          "text": " The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragCoord-FragCoord-04212",
-          "text": " The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
@@ -24676,83 +31376,127 @@
       "core": [
         {
           "vuid": "VUID-FragDepth-FragDepth-04213",
-          "text": " The <code>FragDepth</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragDepth</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragDepth-FragDepth-04214",
-          "text": " The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragDepth-FragDepth-04215",
-          "text": " The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragDepth-FragDepth-04216",
-          "text": " If the shader dynamically writes to the variable decorated with <code>FragDepth</code>, the <code>DepthReplacing</code> {ExecutionMode} <strong class=\"purple\">must</strong> be declared"
+          "text": "If the shader dynamically writes to the variable decorated with <code>FragDepth</code>, the <code>DepthReplacing</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> be declared",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "FirstInstanceHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07801",
+          "text": "The <code>FirstInstanceHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07802",
+          "text": "The variable decorated with <code>FirstInstanceHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "FirstVertexHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07803",
+          "text": "The <code>FirstVertexHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>FirstVertexHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07804",
+          "text": "The variable decorated with <code>FirstVertexHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "FragInvocationCountEXT": {
-      "(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217",
-          "text": " The <code>FragInvocationCountEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragInvocationCountEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218",
-          "text": " The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219",
-          "text": " The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "FragSizeEXT": {
-      "(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-FragSizeEXT-FragSizeEXT-04220",
-          "text": " The <code>FragSizeEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragSizeEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragSizeEXT-FragSizeEXT-04221",
-          "text": " The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragSizeEXT-FragSizeEXT-04222",
-          "text": " The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "FragStencilRefEXT": {
-      "(VK_EXT_shader_stencil_export)": [
+      "core": [
         {
           "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04223",
-          "text": " The <code>FragStencilRefEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragStencilRefEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04224",
-          "text": " The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04225",
-          "text": " The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar integer value"
+          "text": "The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar integer value",
+          "page": "vkspec"
         }
       ]
     },
     "FragmentSizeNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04226",
-          "text": " The <code>FragmentSizeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FragmentSizeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04227",
-          "text": " The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04228",
-          "text": " The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -24760,37 +31504,42 @@
       "core": [
         {
           "vuid": "VUID-FrontFacing-FrontFacing-04229",
-          "text": " The <code>FrontFacing</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FrontFacing</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FrontFacing-FrontFacing-04230",
-          "text": " The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FrontFacing-FrontFacing-04231",
-          "text": " The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
+          "text": "The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared as a boolean value",
+          "page": "vkspec"
         }
       ]
     },
     "FullyCoveredEXT": {
-      "(VK_EXT_conservative_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04232",
-          "text": " The <code>FullyCoveredEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>FullyCoveredEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04233",
-          "text": " The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04234",
-          "text": " The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
-        }
-      ],
-      "(VK_EXT_conservative_rasterization)+(VK_EXT_post_depth_coverage)": [
+          "text": "The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared as a boolean value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235",
-          "text": " If <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>conservativeRasterizationPostDepthCoverage</code> is not supported the <code>PostDepthCoverage</code> {ExecutionMode} <strong class=\"purple\">must</strong> not be declared, when a variable with the <code>FullyCoveredEXT</code> decoration is declared"
+          "text": "If <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>conservativeRasterizationPostDepthCoverage</code> is not supported the <code>PostDepthCoverage</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be declared, when a variable with the <code>FullyCoveredEXT</code> decoration is declared",
+          "page": "vkspec"
         }
       ]
     },
@@ -24798,15 +31547,18 @@
       "core": [
         {
           "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04236",
-          "text": " The <code>GlobalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>GlobalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04237",
-          "text": " The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04238",
-          "text": " The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -24814,95 +31566,170 @@
       "core": [
         {
           "vuid": "VUID-HelperInvocation-HelperInvocation-04239",
-          "text": " The <code>HelperInvocation</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>HelperInvocation</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HelperInvocation-HelperInvocation-04240",
-          "text": " The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HelperInvocation-HelperInvocation-04241",
-          "text": " The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
+          "text": "The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared as a boolean value",
+          "page": "vkspec"
         }
       ]
     },
     "HitKindKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-HitKindKHR-HitKindKHR-04242",
-          "text": " The <code>HitKindKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitKHR</code> or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>HitKindKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitKHR</code> or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HitKindKHR-HitKindKHR-04243",
-          "text": " The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HitKindKHR-HitKindKHR-04244",
-          "text": " The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "HitTNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-HitTNV-HitTNV-04245",
-          "text": " The <code>HitTNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitNV</code> or <code>ClosestHitNV</code> {ExecutionModel}"
+          "text": "The <code>HitTNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitNV</code> or <code>ClosestHitNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HitTNV-HitTNV-04246",
-          "text": " The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-HitTNV-HitTNV-04247",
-          "text": " The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "HitTriangleVertexPositionsKHR": {
+      "core": [
+        {
+          "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08747",
+          "text": "The <code>HitTriangleVertexPositionsKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitKHR</code> or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08748",
+          "text": "The variable decorated with <code>HitTriangleVertexPositionsKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08749",
+          "text": "The variable decorated with <code>HitTriangleVertexPositionsKHR</code> <strong class=\"purple\">must</strong> be declared as an array of three vectors of three 32-bit float values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08750",
+          "text": "The variable decorated with <code>HitTriangleVertexPositionsKHR</code> <strong class=\"purple\">must</strong> be used only if the value of <code>HitKindKHR</code> is <code>HitKindFrontFacingTriangleKHR</code> or <code>HitKindBackFacingTriangleKHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-HitTriangleVertexPositionsKHR-None-08751",
+          "text": "The acceleration structure corresponding to the current intersection <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "IncomingRayFlagsKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248",
-          "text": " The <code>IncomingRayFlagsKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>IncomingRayFlagsKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249",
-          "text": " The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250",
-          "text": " The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "IndexCountHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-IndexCountHUAWEI-IndexCountHUAWEI-07805",
+          "text": "The <code>IndexCountHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-IndexCountHUAWEI-IndexCountHUAWEI-07806",
+          "text": "The variable decorated with <code>IndexCountHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "InstanceCountHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07807",
+          "text": "The <code>InstanceCountHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07808",
+          "text": "The variable decorated with <code>InstanceCountHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "InstanceCustomIndexKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251",
-          "text": " The <code>InstanceCustomIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>InstanceCustomIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252",
-          "text": " The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253",
-          "text": " The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "InstanceId": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-InstanceId-InstanceId-04254",
-          "text": " The <code>InstanceId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>InstanceId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceId-InstanceId-04255",
-          "text": " The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceId-InstanceId-04256",
-          "text": " The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -24910,31 +31737,37 @@
       "core": [
         {
           "vuid": "VUID-InvocationId-InvocationId-04257",
-          "text": " The <code>InvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>InvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InvocationId-InvocationId-04258",
-          "text": " The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InvocationId-InvocationId-04259",
-          "text": " The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "InvocationsPerPixelNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260",
-          "text": " The <code>InvocationsPerPixelNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>InvocationsPerPixelNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261",
-          "text": " The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262",
-          "text": " The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -24942,47 +31775,56 @@
       "core": [
         {
           "vuid": "VUID-InstanceIndex-InstanceIndex-04263",
-          "text": " The <code>InstanceIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
+          "text": "The <code>InstanceIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceIndex-InstanceIndex-04264",
-          "text": " The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-InstanceIndex-InstanceIndex-04265",
-          "text": " The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "LaunchIdKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04266",
-          "text": " The <code>LaunchIdKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> {ExecutionModel}"
+          "text": "The <code>LaunchIdKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04267",
-          "text": " The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04268",
-          "text": " The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "LaunchSizeKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04269",
-          "text": " The <code>LaunchSizeKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> {ExecutionModel}"
+          "text": "The <code>LaunchSizeKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04270",
-          "text": " The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04271",
-          "text": " The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -24990,49 +31832,57 @@
       "core": [
         {
           "vuid": "VUID-Layer-Layer-04272",
-          "text": " The <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-Layer-Layer-04273",
+          "text": "If the <a href=\"#features-shaderOutputLayer\"><code>shaderOutputLayer</code></a> feature is not enabled then the <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Layer-Layer-04274",
-          "text": " The variable decorated with <code>Layer</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>Layer</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Layer-Layer-04275",
-          "text": " The variable decorated with <code>Layer</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>Layer</code> within the <code>Fragment</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Layer-Layer-04276",
-          "text": " The variable decorated with <code>Layer</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>Layer</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Layer-Layer-07039",
-          "text": " The variable decorated with <code>Layer</code> within the <code>MeshEXT</code> {ExecutionModel} <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration"
-        }
-      ],
-      "(VK_VERSION_1_2)": [
-        {
-          "vuid": "VUID-Layer-Layer-04273",
-          "text": " If the <a href=\"#features-shaderOutputLayer\"><code>shaderOutputLayer</code></a> feature is not enabled then the <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> {ExecutionModel}"
+          "text": "The variable decorated with <code>Layer</code> within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration",
+          "page": "vkspec"
         }
       ]
     },
     "LayerPerViewNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04277",
-          "text": " The <code>LayerPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
+          "text": "The <code>LayerPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04278",
-          "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04279",
-          "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
+          "text": "The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04280",
-          "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
+          "text": "The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25040,15 +31890,18 @@
       "core": [
         {
           "vuid": "VUID-LocalInvocationId-LocalInvocationId-04281",
-          "text": " The <code>LocalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>LocalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LocalInvocationId-LocalInvocationId-04282",
-          "text": " The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LocalInvocationId-LocalInvocationId-04283",
-          "text": " The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25056,63 +31909,75 @@
       "core": [
         {
           "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04284",
-          "text": " The <code>LocalInvocationIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>LocalInvocationIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04285",
-          "text": " The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04286",
-          "text": " The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "MeshViewCountNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04287",
-          "text": " The <code>MeshViewCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>MeshViewCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04288",
-          "text": " The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04289",
-          "text": " The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "MeshViewIndicesNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290",
-          "text": " The <code>MeshViewIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>MeshViewIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291",
-          "text": " The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292",
-          "text": " The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
+          "text": "The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "NumSubgroups": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-NumSubgroups-NumSubgroups-04293",
-          "text": " The <code>NumSubgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>NumSubgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-NumSubgroups-NumSubgroups-04294",
-          "text": " The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-NumSubgroups-NumSubgroups-04295",
-          "text": " The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25120,63 +31985,75 @@
       "core": [
         {
           "vuid": "VUID-NumWorkgroups-NumWorkgroups-04296",
-          "text": " The <code>NumWorkgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, or <code>TaskEXT</code> {ExecutionModel}"
+          "text": "The <code>NumWorkgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, or <code>TaskEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-NumWorkgroups-NumWorkgroups-04297",
-          "text": " The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-NumWorkgroups-NumWorkgroups-04298",
-          "text": " The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "ObjectRayDirectionKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299",
-          "text": " The <code>ObjectRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>ObjectRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300",
-          "text": " The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301",
-          "text": " The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "ObjectRayOriginKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302",
-          "text": " The <code>ObjectRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>ObjectRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303",
-          "text": " The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304",
-          "text": " The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "ObjectToWorldKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305",
-          "text": " The <code>ObjectToWorldKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>ObjectToWorldKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306",
-          "text": " The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307",
-          "text": " The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values"
+          "text": "The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25184,15 +32061,18 @@
       "core": [
         {
           "vuid": "VUID-PatchVertices-PatchVertices-04308",
-          "text": " The <code>PatchVertices</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
+          "text": "The <code>PatchVertices</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PatchVertices-PatchVertices-04309",
-          "text": " The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PatchVertices-PatchVertices-04310",
-          "text": " The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25200,15 +32080,18 @@
       "core": [
         {
           "vuid": "VUID-PointCoord-PointCoord-04311",
-          "text": " The <code>PointCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>PointCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PointCoord-PointCoord-04312",
-          "text": " The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PointCoord-PointCoord-04313",
-          "text": " The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25216,19 +32099,23 @@
       "core": [
         {
           "vuid": "VUID-PointSize-PointSize-04314",
-          "text": " The <code>PointSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>PointSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PointSize-PointSize-04315",
-          "text": " The variable decorated with <code>PointSize</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PointSize</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PointSize-PointSize-04316",
-          "text": " The variable decorated with <code>PointSize</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
+          "text": "The variable decorated with <code>PointSize</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> not be declared using a <code>Storage</code> <code>Class</code> other than <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PointSize-PointSize-04317",
-          "text": " The variable decorated with <code>PointSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>PointSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25236,59 +32123,71 @@
       "core": [
         {
           "vuid": "VUID-Position-Position-04318",
-          "text": " The <code>Position</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>Position</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Position-Position-04319",
-          "text": " The variable decorated with <code>Position</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>Position</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, or <code>Vertex</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Position-Position-04320",
-          "text": " The variable decorated with <code>Position</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
+          "text": "The variable decorated with <code>Position</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> not be declared using a <code>Storage</code> <code>Class</code> other than <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-Position-Position-04321",
-          "text": " The variable decorated with <code>Position</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>Position</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "PositionPerViewNV": {
-      "(VK_NVX_multiview_per_view_attributes)": [
+      "core": [
         {
           "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04322",
-          "text": " The <code>PositionPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>PositionPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04323",
-          "text": " The variable decorated with <code>PositionPerViewNV</code> within the <code>Vertex</code>, or <code>MeshNV</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PositionPerViewNV</code> within the <code>Vertex</code>, or <code>MeshNV</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04324",
-          "text": " The variable decorated with <code>PositionPerViewNV</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
+          "text": "The variable decorated with <code>PositionPerViewNV</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> not be declared using a <code>Storage</code> <code>Class</code> other than <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04325",
-          "text": " The variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass&#8217;s view mask plus one"
+          "text": "The variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass&#8217;s view mask plus one",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04326",
-          "text": " The array variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant"
+          "text": "The array variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitiveCountNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04327",
-          "text": " The <code>PrimitiveCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04328",
-          "text": " The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04329",
-          "text": " The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25296,235 +32195,285 @@
       "core": [
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-04330",
-          "text": " The <code>PrimitiveId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-Fragment-04331",
-          "text": " If pipeline contains both the <code>Fragment</code> and <code>Geometry</code> {ExecutionModel} and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>Geometry</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths"
+          "text": "If pipeline contains both the <code>Fragment</code> and <code>Geometry</code> <code>Execution</code> <code>Model</code> and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>Geometry</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-Fragment-04332",
-          "text": " If pipeline contains both the <code>Fragment</code> and <code>MeshEXT</code> or <code>MeshNV</code> {ExecutionModel} and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>MeshEXT</code> or <code>MeshNV</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths"
+          "text": "If pipeline contains both the <code>Fragment</code> and <code>MeshEXT</code> or <code>MeshNV</code> <code>Execution</code> <code>Model</code> and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>MeshEXT</code> or <code>MeshNV</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-Fragment-04333",
-          "text": " If <code>Fragment</code> {ExecutionModel} contains a variable decorated with <code>PrimitiveId</code>, then either the <code>MeshShadingEXT</code>, <code>MeshShadingNV</code>, <code>Geometry</code> or <code>Tessellation</code> capability <strong class=\"purple\">must</strong> also be declared"
+          "text": "If <code>Fragment</code> <code>Execution</code> <code>Model</code> contains a variable decorated with <code>PrimitiveId</code>, then either the <code>MeshShadingEXT</code>, <code>MeshShadingNV</code>, <code>Geometry</code> or <code>Tessellation</code> capability <strong class=\"purple\">must</strong> also be declared",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-04334",
-          "text": " The variable decorated with <code>PrimitiveId</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Fragment</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveId</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Fragment</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-04335",
-          "text": " The variable decorated with <code>PrimitiveId</code> within the <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveId</code> within the <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-04336",
-          "text": " The variable decorated with <code>PrimitiveId</code> within the <code>MeshEXT</code> or <code>MeshNV</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveId</code> within the <code>MeshEXT</code> or <code>MeshNV</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-04337",
-          "text": " The variable decorated with <code>PrimitiveId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>PrimitiveId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveId-PrimitiveId-07040",
-          "text": " The variable decorated with <code>PrimitiveId</code> within the <code>MeshEXT</code> {ExecutionModel} <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration"
+          "text": "The variable decorated with <code>PrimitiveId</code> within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitiveIndicesNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338",
-          "text": " The <code>PrimitiveIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339",
-          "text": " The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340",
-          "text": " The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
+          "text": "The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341",
-          "text": " All index values of the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> {ExecutionMode}"
+          "text": "All index values of the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-OutputPoints-04342",
-          "text": " If the {ExecutionMode} is <code>OutputPoints</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of the value specified by <code>OutputPrimitivesNV</code>"
+          "text": "If the <code>Execution</code> <code>Mode</code> is <code>OutputPoints</code>, then the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be the size of the value specified by <code>OutputPrimitivesNV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-OutputLinesNV-04343",
-          "text": " If the {ExecutionMode} is <code>OutputLinesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of two times the value specified by <code>OutputPrimitivesNV</code>"
+          "text": "If the <code>Execution</code> <code>Mode</code> is <code>OutputLinesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be the size of two times the value specified by <code>OutputPrimitivesNV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344",
-          "text": " If the {ExecutionMode} is <code>OutputTrianglesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of three times the value specified by <code>OutputPrimitivesNV</code>"
+          "text": "If the <code>Execution</code> <code>Mode</code> is <code>OutputTrianglesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be the size of three times the value specified by <code>OutputPrimitivesNV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitivePointIndicesEXT": {
-      "(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07041",
-          "text": " The <code>PrimitivePointIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> {ExecutionModel}"
+          "text": "The <code>PrimitivePointIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07042",
-          "text": " The <code>PrimitivePointIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputPoints</code> {ExecutionMode}"
+          "text": "The <code>PrimitivePointIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputPoints</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07043",
-          "text": " The variable decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07044",
-          "text": " The variable decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
+          "text": "The variable decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07045",
-          "text": " All index values of the array decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> {ExecutionMode}"
+          "text": "All index values of the array decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07046",
-          "text": " The size of the array decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>"
+          "text": "The size of the array decorated with <code>PrimitivePointIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitiveLineIndicesEXT": {
-      "(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07047",
-          "text": " The <code>PrimitiveLineIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveLineIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07048",
-          "text": " The <code>PrimitiveLineIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputLinesEXT</code> {ExecutionMode}"
+          "text": "The <code>PrimitiveLineIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputLinesEXT</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07049",
-          "text": " The variable decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07050",
-          "text": " The variable decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of two component vector 32-bit integer values"
+          "text": "The variable decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of two component vector 32-bit integer values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07051",
-          "text": " All index values of the array decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> {ExecutionMode}"
+          "text": "All index values of the array decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07052",
-          "text": " The size of the array decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>"
+          "text": "The size of the array decorated with <code>PrimitiveLineIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitiveTriangleIndicesEXT": {
-      "(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053",
-          "text": " The <code>PrimitiveTriangleIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveTriangleIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054",
-          "text": " The <code>PrimitiveTriangleIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputTrianglesEXT</code> {ExecutionMode}"
+          "text": "The <code>PrimitiveTriangleIndicesEXT</code> decoration <strong class=\"purple\">must</strong> be used with the <code>OutputTrianglesEXT</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055",
-          "text": " The variable decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07056",
-          "text": " The variable decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of three component vector 32-bit integer values"
+          "text": "The variable decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be declared as an array of three component vector 32-bit integer values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07057",
-          "text": " All index values of the array decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> {ExecutionMode}"
+          "text": "All index values of the array decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> <code>Execution</code> <code>Mode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07058",
-          "text": " The size of the array decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>"
+          "text": "The size of the array decorated with <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> match the value specified by <code>OutputPrimitivesEXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "PrimitiveShadingRateKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484",
-          "text": " The <code>PrimitiveShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>PrimitiveShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485",
-          "text": " The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486",
-          "text": " The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487",
-          "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Vertical2Pixels</code> and <code>Vertical4Pixels</code>"
+          "text": "The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Vertical2Pixels</code> and <code>Vertical4Pixels</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488",
-          "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Horizontal2Pixels</code> and <code>Horizontal4Pixels</code>"
+          "text": "The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Horizontal2Pixels</code> and <code>Horizontal4Pixels</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489",
-          "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> not have any bits set other than those defined by <strong>Fragment Shading Rate Flags</strong> enumerants in the SPIR-V specification"
+          "text": "The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> not have any bits set other than those defined by <strong>Fragment Shading Rate Flags</strong> enumerants in the SPIR-V specification",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-07059",
-          "text": " The variable decorated with <code>PrimitiveShadingRateKHR</code> within the <code>MeshEXT</code> {ExecutionModel} <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration"
+          "text": "The variable decorated with <code>PrimitiveShadingRateKHR</code> within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration",
+          "page": "vkspec"
         }
       ]
     },
     "RayGeometryIndexKHR": {
-      "(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345",
-          "text": " The <code>RayGeometryIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>RayGeometryIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346",
-          "text": " The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347",
-          "text": " The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "RayTmaxKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04348",
-          "text": " The <code>RayTmaxKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>RayTmaxKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04349",
-          "text": " The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04350",
-          "text": " The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
         }
       ]
     },
     "RayTminKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-RayTminKHR-RayTminKHR-04351",
-          "text": " The <code>RayTminKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>RayTminKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayTminKHR-RayTminKHR-04352",
-          "text": " The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RayTminKHR-RayTminKHR-04353",
-          "text": " The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
+          "text": "The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25532,15 +32481,18 @@
       "core": [
         {
           "vuid": "VUID-SampleId-SampleId-04354",
-          "text": " The <code>SampleId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>SampleId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SampleId-SampleId-04355",
-          "text": " The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SampleId-SampleId-04356",
-          "text": " The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25548,15 +32500,18 @@
       "core": [
         {
           "vuid": "VUID-SampleMask-SampleMask-04357",
-          "text": " The <code>SampleMask</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>SampleMask</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SampleMask-SampleMask-04358",
-          "text": " The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SampleMask-SampleMask-04359",
-          "text": " The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
+          "text": "The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25564,171 +32519,201 @@
       "core": [
         {
           "vuid": "VUID-SamplePosition-SamplePosition-04360",
-          "text": " The <code>SamplePosition</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>SamplePosition</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SamplePosition-SamplePosition-04361",
-          "text": " The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SamplePosition-SamplePosition-04362",
-          "text": " The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "ShadingRateKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04490",
-          "text": " The <code>ShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>ShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04491",
-          "text": " The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04492",
-          "text": " The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "SMCountNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-SMCountNV-SMCountNV-04363",
-          "text": " The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SMCountNV-SMCountNV-04364",
-          "text": " The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "SMIDNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-SMIDNV-SMIDNV-04365",
-          "text": " The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SMIDNV-SMIDNV-04366",
-          "text": " The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupId": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupId-SubgroupId-04367",
-          "text": " The <code>SubgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>SubgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupId-SubgroupId-04368",
-          "text": " The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupId-SubgroupId-04369",
-          "text": " The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupEqMask": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04370",
-          "text": " The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04371",
-          "text": " The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupGeMask": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04372",
-          "text": " The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04373",
-          "text": " The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupGtMask": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04374",
-          "text": " The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04375",
-          "text": " The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupLeMask": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04376",
-          "text": " The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04377",
-          "text": " The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupLtMask": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04378",
-          "text": " The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04379",
-          "text": " The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupLocalInvocationId": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380",
-          "text": " The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381",
-          "text": " The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "SubgroupSize": {
-      "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
+      "core": [
         {
           "vuid": "VUID-SubgroupSize-SubgroupSize-04382",
-          "text": " The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-SubgroupSize-SubgroupSize-04383",
-          "text": " The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "TaskCountNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-TaskCountNV-TaskCountNV-04384",
-          "text": " The <code>TaskCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>TaskCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TaskCountNV-TaskCountNV-04385",
-          "text": " The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TaskCountNV-TaskCountNV-04386",
-          "text": " The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25736,15 +32721,18 @@
       "core": [
         {
           "vuid": "VUID-TessCoord-TessCoord-04387",
-          "text": " The <code>TessCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationEvaluation</code> {ExecutionModel}"
+          "text": "The <code>TessCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessCoord-TessCoord-04388",
-          "text": " The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessCoord-TessCoord-04389",
-          "text": " The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25752,19 +32740,23 @@
       "core": [
         {
           "vuid": "VUID-TessLevelOuter-TessLevelOuter-04390",
-          "text": " The <code>TessLevelOuter</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
+          "text": "The <code>TessLevelOuter</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelOuter-TessLevelOuter-04391",
-          "text": " The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationControl</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationControl</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelOuter-TessLevelOuter-04392",
-          "text": " The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationEvaluation</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelOuter-TessLevelOuter-04393",
-          "text": " The variable decorated with <code>TessLevelOuter</code> <strong class=\"purple\">must</strong> be declared as an array of size four, containing 32-bit floating-point values"
+          "text": "The variable decorated with <code>TessLevelOuter</code> <strong class=\"purple\">must</strong> be declared as an array of size four, containing 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25772,19 +32764,37 @@
       "core": [
         {
           "vuid": "VUID-TessLevelInner-TessLevelInner-04394",
-          "text": " The <code>TessLevelInner</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
+          "text": "The <code>TessLevelInner</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelInner-TessLevelInner-04395",
-          "text": " The variable decorated with <code>TessLevelInner</code> within the <code>TessellationControl</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>TessLevelInner</code> within the <code>TessellationControl</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelInner-TessLevelInner-04396",
-          "text": " The variable decorated with <code>TessLevelInner</code> within the <code>TessellationEvaluation</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>TessLevelInner</code> within the <code>TessellationEvaluation</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-TessLevelInner-TessLevelInner-04397",
-          "text": " The variable decorated with <code>TessLevelInner</code> <strong class=\"purple\">must</strong> be declared as an array of size two, containing 32-bit floating-point values"
+          "text": "The variable decorated with <code>TessLevelInner</code> <strong class=\"purple\">must</strong> be declared as an array of size two, containing 32-bit floating-point values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VertexCountHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-VertexCountHUAWEI-VertexCountHUAWEI-07809",
+          "text": "The <code>VertexCountHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VertexCountHUAWEI-VertexCountHUAWEI-07810",
+          "text": "The variable decorated with <code>VertexCountHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25792,31 +32802,51 @@
       "core": [
         {
           "vuid": "VUID-VertexIndex-VertexIndex-04398",
-          "text": " The <code>VertexIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
+          "text": "The <code>VertexIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VertexIndex-VertexIndex-04399",
-          "text": " The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VertexIndex-VertexIndex-04400",
-          "text": " The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VertexOffsetHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07811",
+          "text": "The <code>VertexOffsetHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07812",
+          "text": "The variable decorated with <code>VertexOffsetHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "ViewIndex": {
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+      "core": [
         {
           "vuid": "VUID-ViewIndex-ViewIndex-04401",
-          "text": " The <code>ViewIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>Vertex</code>, <code>Geometry</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code> or <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>ViewIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>Vertex</code>, <code>Geometry</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code> or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewIndex-ViewIndex-04402",
-          "text": " The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewIndex-ViewIndex-04403",
-          "text": " The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25824,97 +32854,114 @@
       "core": [
         {
           "vuid": "VUID-ViewportIndex-ViewportIndex-04404",
-          "text": " The <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
+          "text": "The <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-ViewportIndex-ViewportIndex-04405",
+          "text": "If the <a href=\"#features-shaderOutputViewportIndex\"><code>shaderOutputViewportIndex</code></a> feature is not enabled then the <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportIndex-ViewportIndex-04406",
-          "text": " The variable decorated with <code>ViewportIndex</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>ViewportIndex</code> within the <code>MeshEXT</code>, <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportIndex-ViewportIndex-04407",
-          "text": " The variable decorated with <code>ViewportIndex</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>ViewportIndex</code> within the <code>Fragment</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportIndex-ViewportIndex-04408",
-          "text": " The variable decorated with <code>ViewportIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>ViewportIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportIndex-ViewportIndex-07060",
-          "text": " The variable decorated with <code>ViewportIndex</code> within the <code>MeshEXT</code> {ExecutionModel} <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration"
-        }
-      ],
-      "(VK_VERSION_1_2)": [
-        {
-          "vuid": "VUID-ViewportIndex-ViewportIndex-04405",
-          "text": " If the <a href=\"#features-shaderOutputViewportIndex\"><code>shaderOutputViewportIndex</code></a> feature is not enabled then the <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> {ExecutionModel}"
+          "text": "The variable decorated with <code>ViewportIndex</code> within the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerPrimitiveEXT</code> decoration",
+          "page": "vkspec"
         }
       ]
     },
     "ViewportMaskNV": {
-      "(VK_NV_viewport_array2)": [
+      "core": [
         {
           "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04409",
-          "text": " The <code>ViewportMaskNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>ViewportMaskNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04410",
-          "text": " The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04411",
-          "text": " The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
+          "text": "The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "ViewportMaskPerViewNV": {
-      "(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)": [
+      "core": [
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412",
-          "text": " The <code>ViewportMaskPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
+          "text": "The <code>ViewportMaskPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413",
-          "text": " The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
+          "text": "The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414",
-          "text": " The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
+          "text": "The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415",
-          "text": " The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size less than or equal to 32"
+          "text": "The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size less than or equal to 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416",
-          "text": " The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size greater than the maximum view in the subpass&#8217;s view mask"
+          "text": "The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size greater than the maximum view in the subpass&#8217;s view mask",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417",
-          "text": " The array variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant"
+          "text": "The array variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant",
+          "page": "vkspec"
         }
       ]
     },
     "WarpsPerSMNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04418",
-          "text": " The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04419",
-          "text": " The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "WarpIDNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-WarpIDNV-WarpIDNV-04420",
-          "text": " The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WarpIDNV-WarpIDNV-04421",
-          "text": " The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -25922,15 +32969,18 @@
       "core": [
         {
           "vuid": "VUID-WorkgroupId-WorkgroupId-04422",
-          "text": " The <code>WorkgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>WorkgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorkgroupId-WorkgroupId-04423",
-          "text": " The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorkgroupId-WorkgroupId-04424",
-          "text": " The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
@@ -25938,123 +32988,178 @@
       "core": [
         {
           "vuid": "VUID-WorkgroupSize-WorkgroupSize-04425",
-          "text": " The <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
+          "text": "The <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshEXT</code>, <code>TaskEXT</code>, <code>MeshNV</code>, or <code>TaskNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorkgroupSize-WorkgroupSize-04426",
-          "text": " The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be a specialization constant or a constant"
+          "text": "The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be a specialization constant or a constant",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorkgroupSize-WorkgroupSize-04427",
-          "text": " The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
+          "text": "The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values",
+          "page": "vkspec"
         }
       ]
     },
     "WorldRayDirectionKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428",
-          "text": " The <code>WorldRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>WorldRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429",
-          "text": " The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430",
-          "text": " The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "WorldRayOriginKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431",
-          "text": " The <code>WorldRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
+          "text": "The <code>WorldRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432",
-          "text": " The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433",
-          "text": " The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
+          "text": "The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "WorldToObjectKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04434",
-          "text": " The <code>WorldToObjectKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
+          "text": "The <code>WorldToObjectKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04435",
-          "text": " The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04436",
-          "text": " The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values"
+          "text": "The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values",
+          "page": "vkspec"
         }
       ]
     },
     "CoreCountARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-CoreCountARM-CoreCountARM-07595",
-          "text": " The variable decorated with <code>CoreCountARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CoreCountARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CoreCountARM-CoreCountARM-07596",
-          "text": " The variable decorated with <code>CoreCountARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>CoreCountARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "CoreMaxIDARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-CoreMaxIDARM-CoreMaxIDARM-07597",
-          "text": " The variable decorated with <code>CoreMaxIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CoreMaxIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CoreMaxIDARM-CoreMaxIDARM-07598",
-          "text": " The variable decorated with <code>CoreMaxIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>CoreMaxIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "CoreIDARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-CoreIDARM-CoreIDARM-07599",
-          "text": " The variable decorated with <code>CoreIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>CoreIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-CoreIDARM-CoreIDARM-07600",
-          "text": " The variable decorated with <code>CoreIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>CoreIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "WarpMaxIDARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-WarpMaxIDARM-WarpMaxIDARM-07601",
-          "text": " The variable decorated with <code>WarpMaxIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WarpMaxIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WarpMaxIDARM-WarpMaxIDARM-07602",
-          "text": " The variable decorated with <code>WarpMaxIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>WarpMaxIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
     "WarpIDARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-WarpIDARM-WarpIDARM-07603",
-          "text": " The variable decorated with <code>WarpIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
+          "text": "The variable decorated with <code>WarpIDARM</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-WarpIDARM-WarpIDARM-07604",
-          "text": " The variable decorated with <code>WarpIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+          "text": "The variable decorated with <code>WarpIDARM</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "CoalescedInputCountAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09172",
+          "text": "The variable decorated with <code>CoalescedInputCountAMDX</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09173",
+          "text": "If a variable is decorated with <code>CoalescedInputCountAMDX</code>, the <code>CoalescingAMDX</code> execution mode <strong class=\"purple\">must</strong> be declared",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09174",
+          "text": "The variable decorated with <code>CoalescedInputCountAMDX</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "ShaderIndexAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-ShaderIndexAMDX-ShaderIndexAMDX-09175",
+          "text": "The variable decorated with <code>ShaderIndexAMDX</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-ShaderIndexAMDX-ShaderIndexAMDX-09176",
+          "text": "The variable decorated with <code>ShaderIndexAMDX</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value",
+          "page": "vkspec"
         }
       ]
     },
@@ -26062,19 +33167,23 @@
       "core": [
         {
           "vuid": "VUID-vkCreateQueryPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateQueryPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter",
-          "text": " <code>pQueryPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>pQueryPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         }
       ]
     },
@@ -26082,95 +33191,126 @@
       "core": [
         {
           "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791",
-          "text": " If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>"
+          "text": "If the <a href=\"#features-pipelineStatisticsQuery\"><code>pipelineStatisticsQuery</code></a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763",
-          "text": " <code>queryCount</code> <strong class=\"purple\">must</strong> be greater than 0"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>, <a href=\"#VkQueryPoolPerformanceQueryCreateInfoINTEL\">VkQueryPoolPerformanceQueryCreateInfoINTEL</a>, <a href=\"#VkVideoDecodeH264ProfileInfoEXT\">VkVideoDecodeH264ProfileInfoEXT</a>, <a href=\"#VkVideoDecodeH265ProfileInfoEXT\">VkVideoDecodeH265ProfileInfoEXT</a>, <a href=\"#VkVideoDecodeUsageInfoKHR\">VkVideoDecodeUsageInfoKHR</a>, <a href=\"#VkVideoEncodeH264ProfileInfoEXT\">VkVideoEncodeH264ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeH265ProfileInfoEXT\">VkVideoEncodeH265ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeUsageInfoKHR\">VkVideoEncodeUsageInfoKHR</a>, or <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068",
-          "text": " If the <a href=\"#features-meshShaderQueries\"><code>meshShaderQueries</code></a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code>"
+          "text": "If the <a href=\"#features-meshShaderQueries\"><code>meshShaderQueries</code></a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069",
-          "text": " If the <a href=\"#features-meshShaderQueries\"><code>meshShaderQueries</code></a> feature is not enabled, and <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT</code> or <code>VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
+          "text": "If the <a href=\"#features-meshShaderQueries\"><code>meshShaderQueries</code></a> feature is not enabled, and <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT</code> or <code>VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792",
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763",
+          "text": "<code>queryCount</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07133",
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with <code>videoCodecOperation</code> specifying an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07906",
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07907",
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, and the <code>pNext</code> chain includes a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure and a <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a> structure, then <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a>::<code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> not contain any bits that are not set in <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>supportedEncodeFeedbackFlags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the <a href=\"#video-profiles\">video profile</a> described by <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> and its <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>, <a href=\"#VkQueryPoolPerformanceQueryCreateInfoINTEL\">VkQueryPoolPerformanceQueryCreateInfoINTEL</a>, <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH264ProfileInfoKHR\">VkVideoDecodeH264ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeH265ProfileInfoKHR\">VkVideoDecodeH265ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeUsageInfoKHR\">VkVideoDecodeUsageInfoKHR</a>, <a href=\"#VkVideoEncodeH264ProfileInfoKHR\">VkVideoEncodeH264ProfileInfoKHR</a>, <a href=\"#VkVideoEncodeH265ProfileInfoKHR\">VkVideoEncodeH265ProfileInfoKHR</a>, <a href=\"#VkVideoEncodeUsageInfoKHR\">VkVideoEncodeUsageInfoKHR</a>, or <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter",
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueryPoolPerformanceCreateInfoKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be a valid queue family index of the device"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be a valid queue family index of the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237",
-          "text": " The <a href=\"#features-performanceCounterQueryPools\"><code>performanceCounterQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-performanceCounterQueryPools\"><code>performanceCounterQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321",
-          "text": " Each element of <code>pCounterIndices</code> <strong class=\"purple\">must</strong> be in the range of counters reported by <code>vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR</code> for the queue family specified in <code>queueFamilyIndex</code>"
+          "text": "Each element of <code>pCounterIndices</code> <strong class=\"purple\">must</strong> be in the range of counters reported by <code>vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR</code> for the queue family specified in <code>queueFamilyIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter",
-          "text": " <code>pCounterIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterIndexCount</code> <code>uint32_t</code> values"
+          "text": "<code>pCounterIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength",
-          "text": " <code>counterIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>counterIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter",
-          "text": " <code>pPerformanceQueryCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure"
+          "text": "<code>pPerformanceQueryCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameter",
-          "text": " <code>pNumPasses</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pNumPasses</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -26178,117 +33318,141 @@
       "core": [
         {
           "vuid": "VUID-vkDestroyQueryPool-queryPool-00793",
-          "text": " All submitted commands that refer to <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-queryPool-00794",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-queryPool-00795",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter",
-          "text": " If <code>queryPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "If <code>queryPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyQueryPool-queryPool-parent",
-          "text": " If <code>queryPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>queryPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdResetQueryPool": {
       "core": [
         {
-          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796",
-          "text": " <code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-09436",
+          "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797",
-          "text": " The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-09437",
+          "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-None-02841",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> not be active"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862",
+          "text": "If <code>queryPool</code> was created with <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries <span class=\"eq\">[<code>firstQuery</code>, <code>firstQuery</code> +  <code>queryCount</code> - 1]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, encode, or opticalflow operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, encode, or optical flow operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResetQueryPool-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862",
-          "text": " If <code>queryPool</code> was created with <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries <span class=\"eq\">[<code>firstQuery</code>, <code>firstQuery</code> &#43; <code>queryCount</code> - 1]</span>"
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkResetQueryPool": {
-      "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [
+      "core": [
+        {
+          "vuid": "VUID-vkResetQueryPool-firstQuery-09436",
+          "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkResetQueryPool-firstQuery-09437",
+          "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkResetQueryPool-None-02665",
-          "text": " The <a href=\"#features-hostQueryReset\"><code>hostQueryReset</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkResetQueryPool-firstQuery-02666",
-          "text": " <code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
-        },
-        {
-          "vuid": "VUID-vkResetQueryPool-firstQuery-02667",
-          "text": " The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "The <a href=\"#features-hostQueryReset\"><code>hostQueryReset</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetQueryPool-firstQuery-02741",
-          "text": " Submitted commands that refer to the range specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "Submitted commands that refer to the range specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetQueryPool-firstQuery-02742",
-          "text": " The range of queries specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> not be in use by calls to <a href=\"#vkGetQueryPoolResults\">vkGetQueryPoolResults</a> or <code>vkResetQueryPool</code> in other threads"
+          "text": "The range of queries specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> not be in use by calls to <a href=\"#vkGetQueryPoolResults\">vkGetQueryPoolResults</a> or <code>vkResetQueryPool</code> in other threads",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetQueryPool-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetQueryPool-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkResetQueryPool-queryPool-parent",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -26296,319 +33460,402 @@
       "core": [
         {
           "vuid": "VUID-vkCmdBeginQuery-None-00807",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-02804",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>"
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-04728",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-06741",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-04729",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-00800",
-          "text": " If the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
+          "text": "If the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-query-00802",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-00803",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-00804",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-00805",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-query-00808",
+          "text": "If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-07126",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> have been created with a queue family index that supports <a href=\"#queries-result-status-only\">result status queries</a>, as indicated by <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>::<code>queryResultStatusSupport</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-None-07127",
+          "text": "If there is a bound video session, then there <strong class=\"purple\">must</strong> be no <a href=\"#queries-operation-active\">active</a> queries",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-None-08370",
+          "text": "If there is a bound video session, then it <strong class=\"purple\">must</strong> not have been created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-07128",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-07129",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-07130",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryType-07131",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-01922",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> that differs from that of any queries that are <a href=\"#queries-operation-active\">active</a> within <code>commandBuffer</code>"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> that differs from that of any queries that are <a href=\"#queries-operation-active\">active</a> within <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQuery-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQuery-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-queryType-04728",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
-        }
-      ],
-      "(VK_KHR_ray_tracing_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-queryType-06741",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-queryType-04729",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-query-00808",
-          "text": " If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
-        }
-      ],
-      "(VK_KHR_video_encode_queue)": [
-        {
-          "vuid": "VUID-vkCmdBeginQuery-queryType-04862",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
-        {
           "vuid": "VUID-vkCmdBeginQuery-queryType-07070",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-02327",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-02328",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)": [
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-06687",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryType-06688",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> then <a href=\"#features-primitivesGeneratedQuery\"><code>primitivesGeneratedQuery</code></a> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> then <a href=\"#features-primitivesGeneratedQuery\"><code>primitivesGeneratedQuery</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-07289",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>queueFamilyIndex</code> <code>queryPool</code> was created with <strong class=\"purple\">must</strong> equal the queue family index of the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>queueFamilyIndex</code> <code>queryPool</code> was created with <strong class=\"purple\">must</strong> equal the queue family index of the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-03223",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-03224",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-03225",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-queryPool-03226",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQuery-None-02863",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQuery-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginQueryIndexedEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-00807",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02804",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>"
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04728",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06741",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04729",
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00800",
-          "text": " If the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
+          "text": "If the <a href=\"#features-occlusionQueryPrecise\"><code>occlusionQueryPrecise</code></a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00802",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00803",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00804",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00805",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808",
+          "text": "If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07126",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> have been created with a queue family index that supports <a href=\"#queries-result-status-only\">result status queries</a>, as indicated by <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>::<code>queryResultStatusSupport</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-07127",
+          "text": "If there is a bound video session, then there <strong class=\"purple\">must</strong> be no <a href=\"#queries-operation-active\">active</a> queries",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-08370",
+          "text": "If there is a bound video session, then it <strong class=\"purple\">must</strong> not have been created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07128",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07129",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07130",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07131",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753",
-          "text": " If the <code>queryPool</code> was created with the same <code>queryType</code> as that of another <a href=\"#queries-operation-active\">active</a> query within <code>commandBuffer</code>, then <code>index</code> <strong class=\"purple\">must</strong> not match the index used for the active query"
+          "text": "If the <code>queryPool</code> was created with the same <code>queryType</code> as that of another <a href=\"#queries-operation-active\">active</a> query within <code>commandBuffer</code>, then <code>index</code> <strong class=\"purple\">must</strong> not match the index used for the active query",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_KHR_acceleration_structure)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04728",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06741",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_NV_ray_tracing)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04729",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808",
-          "text": " If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_KHR_video_encode_queue)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04862",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02340",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> <strong class=\"purple\">must</strong> be zero"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)": [
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06689",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06690",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06691",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> and the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled, the <code>index</code> parameter <strong class=\"purple\">must</strong> be zero"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06692",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> and not <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> and not <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06689",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06690",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06691",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> and the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled, the <code>index</code> parameter <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-06693",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> then <a href=\"#features-primitivesGeneratedQuery\"><code>primitivesGeneratedQuery</code></a> <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_mesh_shader)": [
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> then <a href=\"#features-primitivesGeneratedQuery\"><code>primitivesGeneratedQuery</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07071",
-          "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_KHR_performance_query)": [
+          "text": "The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-07289",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>queueFamilyIndex</code> <code>queryPool</code> was created with <strong class=\"purple\">must</strong> equal the queue family index of the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>queueFamilyIndex</code> <code>queryPool</code> was created with <strong class=\"purple\">must</strong> equal the queue family index of the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02863",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -26616,481 +33863,519 @@
       "core": [
         {
           "vuid": "VUID-vkCmdEndQuery-None-01923",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndQuery-query-00810",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdEndQuery-None-07007",
-          "text": " If called within a subpass of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called previously within the same subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-None-07008",
-          "text": " If called outside of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQuery-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdEndQuery-query-00812",
-          "text": " If <code>vkCmdEndQuery</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
+          "text": "If <code>vkCmdEndQuery</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdEndQuery-queryPool-03227",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> be the last recorded command in <code>commandBuffer</code>"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> be the last recorded command in <code>commandBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndQuery-queryPool-03228",
-          "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
+          "text": "If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> not be recorded within a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-None-07007",
+          "text": "If called within a subpass of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called previously within the same subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQuery-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndQueryIndexedEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-07007",
-          "text": " If called within a subpass of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called previously within the same subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-07008",
-          "text": " If called outside of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345",
-          "text": " If <code>vkCmdEndQueryIndexedEXT</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)": [
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02346",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
+          "text": "If <code>vkCmdEndQueryIndexedEXT</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02347",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> <strong class=\"purple\">must</strong> be zero"
-        },
-        {
-          "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02723",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> <code>index</code> <strong class=\"purple\">must</strong> equal the <code>index</code> used to begin the query"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)": [
-        {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06694",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> or <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> or <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06695",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> and not <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> and not <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, the <code>index</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-06696",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> or <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, <code>index</code> <strong class=\"purple\">must</strong> equal the <code>index</code> used to begin the query"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> or <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code>, <code>index</code> <strong class=\"purple\">must</strong> equal the <code>index</code> used to begin the query",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-07007",
+          "text": "If called within a subpass of a render pass instance, the corresponding <code>vkCmdBeginQuery</code>* command <strong class=\"purple\">must</strong> have been called previously within the same subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetQueryPoolResults": {
       "core": [
         {
-          "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813",
-          "text": " <code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-firstQuery-09436",
+          "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-firstQuery-09437",
+          "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryCount-09438",
+          "text": "If <code>queryCount</code> is greater than 1, <code>stride</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryType-09439",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryType-09440",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryType-09441",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been recorded once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryType-09442",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-flags-09443",
+          "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-None-09401",
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> not be uninitialized",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-flags-02828",
+          "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> and the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueryPoolResults-flags-00815",
-          "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>"
+          "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816",
-          "text": " The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-queryType-00818",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "!(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-flags-02827",
-          "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-flags-02828",
-          "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> and the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-stride-08993",
+          "text": "If <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code> is set, <code>stride</code>     <strong class=\"purple\">must</strong> be large enough to contain the unsigned integer representing     availability or status     in addition to the query result.",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueryPoolResults-queryType-03229",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueryPoolResults-queryType-04519",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be large enough to contain <code>VkQueryPoolPerformanceCreateInfoKHR</code>::<code>counterIndexCount</code> used to create <code>queryPool</code> times the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>"
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be large enough to contain the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>counterIndexCount</code> used to create <code>queryPool</code> times the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetQueryPoolResults-queryType-03230",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code> or <code>VK_QUERY_RESULT_64_BIT</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetQueryPoolResults-queryType-03231",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been recorded once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>"
-        }
-      ],
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkGetQueryPoolResults-queryType-04810",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetQueryPoolResults-flags-04811",
-          "text": " If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetQueryPoolResults-queryType-06900",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>"
+          "vuid": "VUID-vkGetQueryPoolResults-pData-parameter",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyQueryPoolResults": {
       "core": [
         {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-09436",
+          "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-09437",
+          "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryCount-09438",
+          "text": "If <code>queryCount</code> is greater than 1, <code>stride</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-09439",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-09440",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-09441",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been recorded once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-09442",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-09443",
+          "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-None-09402",
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> not be uninitialized when the command is executed",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820",
-          "text": " <code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821",
-          "text": " The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822",
-          "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>"
+          "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823",
-          "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>"
+          "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have enough storage, from <code>dstOffset</code>, to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have enough storage, from <code>dstOffset</code>, to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>"
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232",
+          "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>::<code>allowCommandBufferQueryCopies</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734",
+          "text": "<a href=\"#vkCmdCopyQueryPoolResults\">vkCmdCopyQueryPoolResults</a> <strong class=\"purple\">must</strong> not be called if the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> not be active"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyQueryPoolResults-None-08752",
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> have been made <em>available</em> by prior executed commands",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_KHR_performance_query)": [
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>::<code>allowCommandBufferQueryCopies</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code> or <code>VK_QUERY_RESULT_64_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been submitted once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>"
-        }
-      ],
-      "(VK_INTEL_performance_query)": [
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734",
-          "text": " <a href=\"#vkCmdCopyQueryPoolResults\">vkCmdCopyQueryPoolResults</a> <strong class=\"purple\">must</strong> not be called if the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL</code>"
-        }
-      ],
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06901",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-06902",
-          "text": " If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06903",
-          "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>"
+          "text": "Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteTimestamp2": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWriteTimestamp2-synchronization2-03858",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-stage-03859",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> only include a single pipeline stage"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-stage-03860",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> only include stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03861",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03862",
-          "text": " The query identified by <code>queryPool</code> and <code>query</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-timestampValidBits-03863",
-          "text": " The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-query-04903",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-stage-parameter",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-stage-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp2-stage-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-stage-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-stage-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-synchronization2-03858",
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-stage-03859",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> only include a single pipeline stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-stage-03860",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> only include stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03861",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-timestampValidBits-03863",
+          "text": "The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-query-04903",
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-None-03864",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp2-query-03865",
-          "text": " If <code>vkCmdWriteTimestamp2</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "If <code>vkCmdWriteTimestamp2</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-stage-parameter",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp2-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -27098,773 +34383,870 @@
       "core": [
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "<code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-queryPool-00828",
-          "text": " The query identified by <code>queryPool</code> and <code>query</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829",
-          "text": " The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-query-04904",
-          "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, encode, or opticalflow operations"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-07077",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04081",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-shadingRateImage-07314",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWriteTimestamp-fragmentShadingRate-07315",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-synchronization2-06489",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-06490",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
-        }
-      ],
-      "(VK_KHR_synchronization2)": [
+          "vuid": "VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWriteTimestamp-synchronization2-06489",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE_KHR</code>"
-        }
-      ],
-      "!(VK_KHR_synchronization2)": [
+          "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-06490",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829",
+          "text": "The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-query-04904",
+          "text": "<code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-None-00830",
-          "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
+          "text": "All queries used by the command <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteTimestamp-query-00831",
-          "text": " If <code>vkCmdWriteTimestamp</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "If <code>vkCmdWriteTimestamp</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter",
+          "text": "<code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter",
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, encode, or optical flow operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteTimestamp-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireProfilingLockKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireProfilingLockKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireProfilingLockKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireProfilingLockInfoKHR\">VkAcquireProfilingLockInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireProfilingLockInfoKHR\">VkAcquireProfilingLockInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAcquireProfilingLockInfoKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkAcquireProfilingLockInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkReleaseProfilingLockKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkReleaseProfilingLockKHR-device-03235",
-          "text": " The profiling lock of <code>device</code> <strong class=\"purple\">must</strong> have been held via a previous successful call to <a href=\"#vkAcquireProfilingLockKHR\">vkAcquireProfilingLockKHR</a>"
+          "text": "The profiling lock of <code>device</code> <strong class=\"purple\">must</strong> have been held via a previous successful call to <a href=\"#vkAcquireProfilingLockKHR\">vkAcquireProfilingLockKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleaseProfilingLockKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkInitializePerformanceApiINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkInitializePerformanceApiINTEL-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter",
-          "text": " <code>pInitializeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInitializePerformanceApiInfoINTEL\">VkInitializePerformanceApiInfoINTEL</a> structure"
+          "text": "<code>pInitializeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInitializePerformanceApiInfoINTEL\">VkInitializePerformanceApiInfoINTEL</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkInitializePerformanceApiInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkUninitializePerformanceApiINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkUninitializePerformanceApiINTEL-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPerformanceParameterINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPerformanceParameterINTEL-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPerformanceParameterINTEL-parameter-parameter",
-          "text": " <code>parameter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceParameterTypeINTEL\">VkPerformanceParameterTypeINTEL</a> value"
+          "text": "<code>parameter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceParameterTypeINTEL\">VkPerformanceParameterTypeINTEL</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPerformanceParameterINTEL-pValue-parameter",
-          "text": " <code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceValueINTEL\">VkPerformanceValueINTEL</a> structure"
+          "text": "<code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceValueINTEL\">VkPerformanceValueINTEL</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceValueINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceValueINTEL-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceValueTypeINTEL\">VkPerformanceValueTypeINTEL</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceValueTypeINTEL\">VkPerformanceValueTypeINTEL</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter",
-          "text": " If <code>type</code> is <code>VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL</code>, the <code>valueString</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>type</code> is <code>VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL</code>, the <code>valueString</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "VkQueryPoolPerformanceQueryCreateInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter",
-          "text": " <code>performanceCountersSampling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPoolSamplingModeINTEL\">VkQueryPoolSamplingModeINTEL</a> value"
+          "text": "<code>performanceCountersSampling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPoolSamplingModeINTEL\">VkQueryPoolSamplingModeINTEL</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPerformanceMarkerINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter",
-          "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceMarkerInfoINTEL\">VkPerformanceMarkerInfoINTEL</a> structure"
+          "text": "<code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceMarkerInfoINTEL\">VkPerformanceMarkerInfoINTEL</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceMarkerInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceMarkerInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceMarkerInfoINTEL-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPerformanceStreamMarkerINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter",
-          "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceStreamMarkerInfoINTEL\">VkPerformanceStreamMarkerInfoINTEL</a> structure"
+          "text": "<code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceStreamMarkerInfoINTEL\">VkPerformanceStreamMarkerInfoINTEL</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceStreamMarkerInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735",
-          "text": " The value written by the application into <code>marker</code> <strong class=\"purple\">must</strong> only used the valid bits as reported by <a href=\"#vkGetPerformanceParameterINTEL\">vkGetPerformanceParameterINTEL</a> with the <code>VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL</code>"
+          "text": "The value written by the application into <code>marker</code> <strong class=\"purple\">must</strong> only used the valid bits as reported by <a href=\"#vkGetPerformanceParameterINTEL\">vkGetPerformanceParameterINTEL</a> with the <code>VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPerformanceOverrideINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736",
-          "text": " <code>pOverrideInfo</code> <strong class=\"purple\">must</strong> not be used with a <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> that is not reported available by <code>vkGetPerformanceParameterINTEL</code>"
+          "text": "<code>pOverrideInfo</code> <strong class=\"purple\">must</strong> not be used with a <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> that is not reported available by <code>vkGetPerformanceParameterINTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter",
-          "text": " <code>pOverrideInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceOverrideInfoINTEL\">VkPerformanceOverrideInfoINTEL</a> structure"
+          "text": "<code>pOverrideInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceOverrideInfoINTEL\">VkPerformanceOverrideInfoINTEL</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceOverrideInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceOverrideInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceOverrideInfoINTEL-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceOverrideInfoINTEL-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquirePerformanceConfigurationINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameter",
-          "text": " <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceConfigurationAcquireInfoINTEL\">VkPerformanceConfigurationAcquireInfoINTEL</a> structure"
+          "text": "<code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceConfigurationAcquireInfoINTEL\">VkPerformanceConfigurationAcquireInfoINTEL</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameter",
-          "text": " <code>pConfiguration</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
+          "text": "<code>pConfiguration</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkPerformanceConfigurationAcquireInfoINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationTypeINTEL\">VkPerformanceConfigurationTypeINTEL</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationTypeINTEL\">VkPerformanceConfigurationTypeINTEL</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueueSetPerformanceConfigurationINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameter",
-          "text": " <code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
+          "text": "<code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-commonparent",
-          "text": " Both of <code>configuration</code>, and <code>queue</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>configuration</code>, and <code>queue</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkReleasePerformanceConfigurationINTEL": {
-      "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737",
-          "text": " <code>configuration</code> <strong class=\"purple\">must</strong> not be released before all command buffers submitted while the configuration was set are in <a href=\"#commandbuffers-lifecycle\">pending state</a>"
+          "text": "<code>configuration</code> <strong class=\"purple\">must</strong> not be released before all command buffers submitted while the configuration was set are in <a href=\"#commandbuffers-lifecycle\">pending state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameter",
-          "text": " If <code>configuration</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
+          "text": "If <code>configuration</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parent",
-          "text": " If <code>configuration</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>configuration</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkQueueFamilyQueryResultStatusPropertiesKHR": {
-      "(VK_KHR_video_queue)": [
+    "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR</code>"
+          "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-parameter",
+          "text": "<code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeFeedbackFlagBitsKHR\">VkVideoEncodeFeedbackFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-requiredbitmask",
+          "text": "<code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdClearColorImage": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdClearColorImage-image-01993",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkCmdClearColorImage-image-01993",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdClearColorImage-image-00002",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-image-01545",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not use any of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-image-00003",
-          "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394",
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each only include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each only include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-pRanges-01692",
-          "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> &#43; <code>levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> +  <code>levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-pRanges-01693",
-          "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> &#43; <code>layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> +  <code>layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-image-00007",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not have a compressed or depth/stencil format"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> not have a compressed or depth/stencil format",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-pColor-04961",
-          "text": " <code>pColor</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkClearColorValue\">VkClearColorValue</a> union"
+          "text": "<code>pColor</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkClearColorValue\">VkClearColorValue</a> union",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter",
-          "text": " <code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength",
-          "text": " <code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearColorImage-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdClearColorImage-image-01545",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> not use any of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler {YCbCr} conversion</a>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdClearColorImage-imageLayout-00005",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <strong class=\"purple\">must</strong> not be an unprotected image"
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter",
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter",
+          "text": "<code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength",
+          "text": "<code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearColorImage-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdClearDepthStencilImage": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-image-00009",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658",
-          "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>image</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659",
-          "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660",
-          "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>"
-        }
-      ],
-      "core": [
+          "text": "If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010",
-          "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be either of <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be either of <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02824",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-image-02825",
-          "text": " If the <code>image</code>&#8217;s format does not have a stencil component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> bit"
+          "text": "If the <code>image</code>&#8217;s format does not have a stencil component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> bit",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-image-02826",
-          "text": " If the <code>image</code>&#8217;s format does not have a depth component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> bit"
+          "text": "If the <code>image</code>&#8217;s format does not have a depth component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> bit",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694",
-          "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> &#43; <code>levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> +  <code>levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476",
-          "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695",
-          "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> &#43; <code>layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> +  <code>layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have a depth/stencil format"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have a depth/stencil format",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter",
-          "text": " <code>pDepthStencil</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkClearDepthStencilValue\">VkClearDepthStencilValue</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter",
-          "text": " <code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength",
-          "text": " <code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be an unprotected image"
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter",
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter",
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter",
+          "text": "<code>pDepthStencil</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkClearDepthStencilValue\">VkClearDepthStencilValue</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter",
+          "text": "<code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength",
+          "text": "<code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdClearAttachments": {
       "core": [
         {
-          "vuid": "VUID-vkCmdClearAttachments-pAttachments-07270",
-          "text": " For each element of <code>pAttachments</code>, the corresponding attachment in the current render pass instance <strong class=\"purple\">must</strong> either not be backed by an image view, or contain each of the aspects specified in <code>aspectMask</code>"
+          "vuid": "VUID-vkCmdClearAttachments-aspectMask-07884",
+          "text": "If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a depth component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-aspectMask-07885",
+          "text": "If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a stencil component",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-aspectMask-07271",
-          "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, the <code>colorAttachment</code> <strong class=\"purple\">must</strong> be a valid color attachment index in the current render pass instance"
+          "text": "If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, the <code>colorAttachment</code> <strong class=\"purple\">must</strong> be a valid color attachment index in the current render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-rect-02682",
-          "text": " The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.width</code> greater than <code>0</code>"
+          "text": "The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.width</code> greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-rect-02683",
-          "text": " The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.height</code> greater than <code>0</code>"
+          "text": "The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.height</code> greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-pRects-00016",
-          "text": " The rectangular region specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within the render area of the current render pass instance"
+          "text": "The rectangular region specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within the render area of the current render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-pRects-06937",
-          "text": " The layers specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within every attachment that <code>pAttachments</code> refers to, i.e. for each element of <code>pRects</code>, <a href=\"#VkClearRect\">VkClearRect</a>::<code>baseArrayLayer</code> &#43; <a href=\"#VkClearRect\">VkClearRect</a>::<code>layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of layers rendered to in the current render pass instance"
+          "text": "The layers specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within every attachment that <code>pAttachments</code> refers to, i.e. for each element of <code>pRects</code>, <a href=\"#VkClearRect\">VkClearRect</a>::<code>baseArrayLayer</code> +  <a href=\"#VkClearRect\">VkClearRect</a>::<code>layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of layers rendered to in the current render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-layerCount-01934",
-          "text": " The <code>layerCount</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "The <code>layerCount</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter",
-          "text": " <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkClearAttachment\">VkClearAttachment</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-pRects-parameter",
-          "text": " <code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectCount</code> <a href=\"#VkClearRect\">VkClearRect</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength",
-          "text": " <code>rectCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018",
-          "text": " If the render pass instance this is recorded in uses multiview, then <code>baseArrayLayer</code> <strong class=\"purple\">must</strong> be zero and <code>layerCount</code> <strong class=\"purple\">must</strong> be one"
+          "text": "If the render pass instance this is recorded in uses multiview, then <code>baseArrayLayer</code> <strong class=\"purple\">must</strong> be zero and <code>layerCount</code> <strong class=\"purple\">must</strong> be one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-aspectMask-09298",
+          "text": "If the subpass this is recorded in performs an external format resolve, the <code>aspectMask</code> member of any element of <code>pAttachments</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE<em>_i_</em>BIT</code> for any index <em>i</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter",
+          "text": "<code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkClearAttachment\">VkClearAttachment</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-pRects-parameter",
+          "text": "<code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectCount</code> <a href=\"#VkClearRect\">VkClearRect</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength",
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength",
+          "text": "<code>rectCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -27872,43 +35254,37 @@
       "core": [
         {
           "vuid": "VUID-VkClearAttachment-aspectMask-00019",
-          "text": " If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkClearAttachment-aspectMask-00020",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkClearAttachment-clearValue-00021",
-          "text": " <code>clearValue</code> <strong class=\"purple\">must</strong> be a valid <code>VkClearValue</code> union"
+          "vuid": "VUID-VkClearAttachment-aspectMask-02246",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkClearAttachment-aspectMask-parameter",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkClearAttachment-aspectMask-02246",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkClearDepthStencilValue": {
-      "(VK_EXT_depth_range_unrestricted)": [
+      "core": [
         {
           "vuid": "VUID-VkClearDepthStencilValue-depth-00022",
-          "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>depth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "!(VK_EXT_depth_range_unrestricted)": [
-        {
-          "vuid": "VUID-VkClearDepthStencilValue-depth-02506",
-          "text": " <code>depth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+          "text": "Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>depth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         }
       ]
     },
@@ -27916,75 +35292,88 @@
       "core": [
         {
           "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-size-00026",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-size-00027",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-size-00028",
-          "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-apiVersion-07894",
+          "text": "If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdFillBuffer-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdFillBuffer-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -27992,171 +35381,207 @@
       "core": [
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>65536</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>65536</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdUpdateBuffer-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdUpdateBuffer-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyBuffer": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113",
-          "text": " The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>"
+          "text": "The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114",
-          "text": " The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
+          "text": "The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-size-00115",
-          "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>"
+          "text": "The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-size-00116",
-          "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
+          "text": "The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117",
-          "text": " The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119",
-          "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy\">VkBufferCopy</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy\">VkBufferCopy</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -28164,549 +35589,618 @@
       "core": [
         {
           "vuid": "VUID-VkBufferCopy-size-01988",
-          "text": " The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyBuffer2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01822",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01823",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01824",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter",
-          "text": " <code>pCopyBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferInfo2\">VkCopyBufferInfo2</a> structure"
+          "text": "<code>pCopyBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferInfo2\">VkCopyBufferInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBuffer2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyBufferInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyBufferInfo2-srcOffset-00113",
-          "text": " The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>"
+          "text": "The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-dstOffset-00114",
-          "text": " The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
+          "text": "The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-size-00115",
-          "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>"
+          "text": "The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-size-00116",
-          "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
+          "text": "The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-pRegions-00117",
-          "text": " The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00118",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00119",
-          "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00120",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00121",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-parameter",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy2\">VkBufferCopy2</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy2\">VkBufferCopy2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferInfo2-commonparent",
-          "text": " Both of <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferCopy2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkBufferCopy2-size-01988",
-          "text": " The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCopy2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COPY_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COPY_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferCopy2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyImage": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImage-pRegions-00124",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01995",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00136",
-          "text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcOffset-01783",
-          "text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstOffset-01784",
-          "text": " The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-aspectMask-00142",
-          "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-aspectMask-00143",
-          "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcOffset-00144",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcOffset-00145",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00146",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcOffset-00147",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01785",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01786",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01787",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01788",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstOffset-00150",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstOffset-00151",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-00152",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstOffset-00153",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07278",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07279",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07280",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07281",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07282",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-07283",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01728",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01729",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01730",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01732",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>dstSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01733",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>dstSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01734",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-07745",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same sample count"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy\">VkImageCopy</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01995",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
+          "vuid": "VUID-vkCmdCopyImage-srcImage-09460",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are the same, and any elements of <code>pRegions</code> contains the <code>srcSubresource</code> and <code>dstSubresource</code> with matching <code>mipLevel</code> and overlapping array layers, then the <code>srcImageLayout</code> and <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-dstImage-01996",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-04443",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-04444",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-07743",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-07744",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> in each element of <code>pRegions</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01790",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> are both of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01791",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01792",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00127",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-00132",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00135",
-          "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01546",
-          "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01547",
-          "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01548",
-          "text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-None-01549",
-          "text": " In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01551",
-          "text": " If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01552",
-          "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01553",
-          "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01554",
-          "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01555",
-          "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01556",
-          "text": " If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-01557",
-          "text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
+          "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-02542",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00139",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-07742",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01548",
+          "text": "If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-01789",
-          "text": " If <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
-        {
-          "vuid": "VUID-vkCmdCopyImage-srcImage-00126",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "vuid": "VUID-vkCmdCopyImage-None-01549",
+          "text": "In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImage-dstImage-00131",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "vuid": "VUID-vkCmdCopyImage-srcImage-09247",
+          "text": "If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is a <a href=\"#compressed_image_formats\">compressed image format</a>, the formats <strong class=\"purple\">must</strong> have the same texel block extent",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-00136",
+          "text": "The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcOffset-01783",
+          "text": "The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstOffset-01784",
+          "text": "The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01551",
+          "text": "If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-08713",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-08714",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01556",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01557",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-apiVersion-07932",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, or     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     either <code>srcImage</code> or <code>dstImage</code> is of type     <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>,     <code>srcSubresource.baseArrayLayer</code> and     <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> both be <code>0</code>, and     <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code>     <strong class=\"purple\">must</strong> both be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-04443",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-04444",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-aspectMask-00142",
+          "text": "For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-aspectMask-00143",
+          "text": "For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcOffset-00144",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcOffset-00145",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-00146",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcOffset-00147",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01785",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01786",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01787",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01788",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-apiVersion-07933",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1,     <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-apiVersion-08969",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1,     <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then     for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-07743",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, and <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-08793",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, for each element of <code>pRegions</code>, if neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-08794",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, and one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01790",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are both of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01791",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01792",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstOffset-00150",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstOffset-00151",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-00152",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstOffset-00153",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07278",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07279",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07280",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07281",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07282",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-07283",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01728",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01729",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-01730",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01732",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>dstSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01733",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>dstSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-01734",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImage-aspect-06662",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>srcImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-aspect-06663",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>dstImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-aspect-06664",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>srcImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage-aspect-06665",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcSubresource-07967",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcSubresource-07968",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstSubresource-07967",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstSubresource-07968",
+          "text": "If <code>dstSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy\">VkImageCopy</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImage-commonparent",
+          "text": "Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageCopy": {
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkImageCopy-aspectMask-00137",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkImageCopy-layerCount-00138",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-VkImageCopy-apiVersion-07940",
+          "text": "If     the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, the     <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code>     <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageCopy-apiVersion-07941",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, the     <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code>     <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkImageCopy-extent-06668",
-          "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy-extent-06669",
-          "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy-extent-06670",
-          "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
@@ -28714,2055 +36208,3198 @@
       "core": [
         {
           "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167",
-          "text": " If <code>aspectMask</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not contain either of <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If <code>aspectMask</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not contain either of <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_METADATA_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247",
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageSubresourceLayers-layerCount-09243",
+          "text": "If the <a href=\"#features-maintenance5\"><code>maintenance5</code></a> feature is not enabled, <code>layerCount</code> <strong class=\"purple\">must</strong> not be <code>VK_REMAINING_ARRAY_LAYERS</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700",
-          "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than 0"
+          "text": "If <code>layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, it <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ],
-      "(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247",
-          "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
+          "text": "<code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyImage2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01825",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01826",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01827",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-pCopyImageInfo-parameter",
-          "text": " <code>pCopyImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageInfo2\">VkCopyImageInfo2</a> structure"
+          "text": "<code>pCopyImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageInfo2\">VkCopyImageInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImage2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyImageInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyImageInfo2-pRegions-00124",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01995",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00128",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00133",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00136",
-          "text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01696",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01697",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01698",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01699",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcOffset-01783",
-          "text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstOffset-01784",
-          "text": " The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-aspectMask-00142",
-          "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-aspectMask-00143",
-          "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00144",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00145",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00146",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00147",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01785",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01786",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01787",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01788",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00150",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00151",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-00152",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00153",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07278",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07279",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07280",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07281",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07282",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-07283",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01728",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01729",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01730",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>srcOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01732",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>dstSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01733",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>dstSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01734",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-07745",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same sample count"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy2\">VkImageCopy2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-commonparent",
-          "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01995",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-09460",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are the same, and any elements of <code>pRegions</code> contains the <code>srcSubresource</code> and <code>dstSubresource</code> with matching <code>mipLevel</code> and overlapping array layers, then the <code>srcImageLayout</code> and <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-dstImage-01996",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-04443",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-04444",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-07743",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-07744",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> in each element of <code>pRegions</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01790",
-          "text": " If <code>srcImage</code> and <code>dstImage</code> are both of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01791",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01792",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00127",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-00132",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00135",
-          "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01546",
-          "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01547",
-          "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01548",
-          "text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-None-01549",
-          "text": " In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01551",
-          "text": " If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01552",
-          "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01553",
-          "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01554",
-          "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01555",
-          "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01556",
-          "text": " If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-01557",
-          "text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00129",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00134",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
+          "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00133",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-01395",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-02542",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00139",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-07742",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01548",
+          "text": "If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-01789",
-          "text": " If <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
-        {
-          "vuid": "VUID-VkCopyImageInfo2-srcImage-00126",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "vuid": "VUID-VkCopyImageInfo2-None-01549",
+          "text": "In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageInfo2-dstImage-00131",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-09247",
+          "text": "If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is a <a href=\"#compressed_image_formats\">compressed image format</a>, the formats <strong class=\"purple\">must</strong> have the same texel block extent",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-00136",
+          "text": "The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcOffset-01783",
+          "text": "The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstOffset-01784",
+          "text": "The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01551",
+          "text": "If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-08713",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-08714",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01556",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01557",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-apiVersion-07932",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, or     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, and     either <code>srcImage</code> or <code>dstImage</code> is of type     <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>,     <code>srcSubresource.baseArrayLayer</code> and     <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> both be <code>0</code>, and     <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code>     <strong class=\"purple\">must</strong> both be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-04443",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-04444",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-aspectMask-00142",
+          "text": "For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-aspectMask-00143",
+          "text": "For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00144",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00145",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-00146",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcOffset-00147",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01785",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01786",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01787",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01788",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-apiVersion-07933",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1,     <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-apiVersion-08969",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1,     <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then     for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-07743",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, and <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-08793",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, for each element of <code>pRegions</code>, if neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-08794",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> have the same <a href=\"#VkImageType\">VkImageType</a>, and one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01790",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are both of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01791",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01792",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00150",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00151",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-00152",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstOffset-00153",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07278",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07279",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07280",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07281",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07282",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-07283",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01728",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01729",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-01730",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01732",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>dstSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01733",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>dstSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-01734",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCopyImageInfo2-aspect-06662",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>srcImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-aspect-06663",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>dstImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes any flag other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> or <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-aspect-06664",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>srcImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageInfo2-aspect-06665",
-          "text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>"
+          "text": "If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcSubresource-07967",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcSubresource-07968",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstSubresource-07967",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstSubresource-07968",
+          "text": "If <code>dstSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy2\">VkImageCopy2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageInfo2-commonparent",
+          "text": "Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageCopy2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
-          "vuid": "VUID-VkImageCopy2-aspectMask-00137",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+          "vuid": "VUID-VkImageCopy2-apiVersion-07940",
+          "text": "If     the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, the     <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code>     <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkImageCopy2-layerCount-00138",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "vuid": "VUID-VkImageCopy2-apiVersion-07941",
+          "text": "If     the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, and     <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan     1.1, the     <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code>     <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkImageCopy2-extent-06668",
-          "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-extent-06669",
-          "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-extent-06670",
-          "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COPY_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COPY_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageCopy2-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyBufferToImage": {
-      "(VK_VERSION_1_1)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07973",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-07737",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-07738",
-          "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of {regionsparam} <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
+          "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-07739",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of {regionsparam}, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00199",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00200",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00201",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-00203",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204",
-          "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07273",
-          "text": " For each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07274",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07275",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07276",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00207",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00208",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00209",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-aspectMask-00211",
-          "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07277",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-04053",
-          "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pRegions</code>, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176",
-          "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701",
-          "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702",
-          "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07931",
+          "text": "If <a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a> is not enabled, for each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06217",
-          "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07979",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06218",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>"
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06219",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>"
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07980",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07981",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07983",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>dstImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07975",
+          "text": "If <code>dstImage</code> does not have either a depth/stencil format or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07976",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible Formats of Planes of Multi-Planar Formats</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-07978",
+          "text": "If <code>dstImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00193",
-          "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01558",
-          "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01559",
-          "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07740",
-          "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07741",
-          "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00181",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "!(VK_EXT_depth_range_unrestricted)": [
-        {
-          "vuid": "VUID-vkCmdCopyBufferToImage-None-00214",
-          "text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
+          "text": "Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyImageToBuffer": {
-      "(VK_VERSION_1_1)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07973",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-07746",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-07747",
-          "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of {regionsparam} <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00199",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00200",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00201",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204",
-          "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07273",
-          "text": " For each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07274",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07275",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07276",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00207",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00208",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00209",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-aspectMask-00211",
-          "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213",
-          "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07277",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-04053",
-          "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703",
-          "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704",
-          "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07979",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06220",
-          "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06221",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07980",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06222",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(imageExtent.height &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>"
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07981",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07983",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>srcImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07975",
+          "text": "If <code>srcImage</code> does not have either a depth/stencil format or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07976",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible Formats of Planes of Multi-Planar Formats</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-07978",
+          "text": "If <code>srcImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00193",
-          "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01558",
-          "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01559",
-          "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07740",
-          "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07741",
-          "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferImageCopy": {
       "core": [
         {
-          "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195",
-          "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>"
+          "vuid": "VUID-VkBufferImageCopy-bufferRowLength-09101",
+          "text": "<code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00196",
-          "text": " <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>"
+          "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-09102",
+          "text": "<code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferImageCopy-aspectMask-00212",
-          "text": " The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
+          "vuid": "VUID-VkBufferImageCopy-aspectMask-09103",
+          "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy-imageExtent-06659",
-          "text": " <code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy-imageExtent-06660",
-          "text": " <code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy-imageExtent-06661",
-          "text": " <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter",
-          "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyBufferToImage2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01828",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01829",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01830",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-07737",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-imageOffset-07738",
-          "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of {regionsparam} <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
+          "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-07739",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of {regionsparam}, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pCopyBufferToImageInfo-&gt;pRegions</code>, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter",
-          "text": " <code>pCopyBufferToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferToImageInfo2\">VkCopyBufferToImageInfo2</a> structure"
+          "text": "<code>pCopyBufferToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferToImageInfo2\">VkCopyBufferToImageInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyBufferToImage2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyBufferToImageInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00172",
-          "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-04565",
-          "text": " If the image region specified by each element of <code>pRegions</code> does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, it <strong class=\"purple\">must</strong> be a region that is contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
+          "text": "The image region specified by each element of <code>pRegions</code> that does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554",
-          "text": " If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated destination region as described in <a href=\"#copies-buffers-images-rotation-addressing\">[copies-buffers-images-rotation-addressing]</a> <strong class=\"purple\">must</strong> be contained within <code>dstImage</code>"
+          "text": "If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated destination region as described in <a href=\"#copies-buffers-images-rotation-addressing\">[copies-buffers-images-rotation-addressing]</a> <strong class=\"purple\">must</strong> be contained within <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> have a 1x1x1 <a href=\"#formats-compatibility-classes\">texel block extent</a>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> have a 1x1x1 <a href=\"#formats-compatibility-classes\">texel block extent</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00171",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00173",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00174",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-01997",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00176",
-          "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00177",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00178",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00179",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01701",
-          "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01702",
-          "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07931",
+          "text": "If <a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a> is not enabled, for each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07973",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07979",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07980",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07981",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07983",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>dstImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07975",
+          "text": "If <code>dstImage</code> does not have either a depth/stencil format or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07976",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible Formats of Planes of Multi-Planar Formats</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-07978",
+          "text": "If <code>dstImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06223",
-          "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>"
+          "text": "For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06224",
-          "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00199",
-          "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-00200",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00201",
-          "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204",
-          "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07273",
-          "text": " For each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07274",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07275",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07276",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00207",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00208",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00209",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-aspectMask-00211",
-          "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in pname:dstImage"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-baseArrayLayer-00213",
-          "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07277",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of pname:dstImage <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-04053",
-          "text": " If pname:dstImage has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyBufferToImageInfo2-commonparent",
-          "text": " Both of <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-01997",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00181",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-02543",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-None-00214",
-          "text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-00193",
-          "text": " If pname:dstImage does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-01558",
-          "text": " If pname:dstImage does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-01559",
-          "text": " If pname:dstImage has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07740",
-          "text": " If pname:dstImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07741",
-          "text": " If pname:dstImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "Both of <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyImageToBuffer2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pCopyImageToBufferInfo-&gt;pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-imageOffset-07747",
-          "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of {regionsparam} <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
+          "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pCopyImageToBufferInfo-&gt;pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter",
-          "text": " <code>pCopyImageToBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageToBufferInfo2\">VkCopyImageToBufferInfo2</a> structure"
+          "text": "<code>pCopyImageToBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageToBufferInfo2\">VkCopyImageToBufferInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyImageToBuffer2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyImageToBufferInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00182",
-          "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-04566",
-          "text": " If the image region specified by each element of <code>pRegions</code> does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, it <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
+          "text": "The image region specified by each element of <code>pRegions</code> that does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557",
-          "text": " If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated source region as described in <a href=\"#copies-buffers-images-rotation-addressing\">[copies-buffers-images-rotation-addressing]</a> <strong class=\"purple\">must</strong> be contained within <code>srcImage</code>"
+          "text": "If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated source region as described in <a href=\"#copies-buffers-images-rotation-addressing\">[copies-buffers-images-rotation-addressing]</a> <strong class=\"purple\">must</strong> be contained within <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> have a 1x1x1 <a href=\"#formats-compatibility-classes\">texel block extent</a>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> have a 1x1x1 <a href=\"#formats-compatibility-classes\">texel block extent</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00183",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00184",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00186",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00187",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-01998",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00191",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00192",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00188",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01703",
-          "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01704",
-          "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07973",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07979",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07980",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07981",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07983",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>srcImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07975",
+          "text": "If <code>srcImage</code> does not have either a depth/stencil format or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07976",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible Formats of Planes of Multi-Planar Formats</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-07978",
+          "text": "If <code>srcImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00197",
-          "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>"
+          "text": "For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00198",
-          "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00199",
-          "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00200",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00201",
-          "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204",
-          "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07273",
-          "text": " For each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block size</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07274",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07275",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07276",
-          "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00207",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00208",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00209",
-          "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-aspectMask-00211",
-          "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in pname:srcImage"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213",
-          "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07277",
-          "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of pname:srcImage <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-04053",
-          "text": " If pname:srcImage has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures"
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyImageToBufferInfo2-commonparent",
-          "text": " Both of <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-01998",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00190",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-02544",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-00193",
-          "text": " If pname:srcImage does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-01558",
-          "text": " If pname:srcImage does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-01559",
-          "text": " If pname:srcImage has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07740",
-          "text": " If pname:srcImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07741",
-          "text": " If pname:srcImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+          "text": "Both of <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBufferImageCopy2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
-          "vuid": "VUID-VkBufferImageCopy2-bufferRowLength-00195",
-          "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>"
+          "vuid": "VUID-VkBufferImageCopy2-bufferRowLength-09101",
+          "text": "<code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferImageCopy2-bufferImageHeight-00196",
-          "text": " <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>"
+          "vuid": "VUID-VkBufferImageCopy2-bufferImageHeight-09102",
+          "text": "<code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBufferImageCopy2-aspectMask-00212",
-          "text": " The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
+          "vuid": "VUID-VkBufferImageCopy2-aspectMask-09103",
+          "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-imageExtent-06659",
-          "text": " <code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-imageExtent-06660",
-          "text": " <code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-imageExtent-06661",
-          "text": " <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0"
+          "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBufferImageCopy2-imageSubresource-parameter",
-          "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyCommandTransformInfoQCOM": {
-      "(VK_QCOM_rotated_copy_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyCommandTransformInfoQCOM-transform-04560",
-          "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
+          "text": "<code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyCommandTransformInfoQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCopyMemoryToImageEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058",
+          "text": "The <a href=\"#features-hostImageCopy\"><code>hostImageCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMemoryToImageEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter",
+          "text": "<code>pCopyMemoryToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToImageInfoEXT\">VkCopyMemoryToImageInfoEXT</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCopyMemoryToImageInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109",
+          "text": "If <code>dstImage</code> is sparse then all memory ranges accessed by the copy command <strong class=\"purple\">must</strong> be bound as described in <a href=\"#sparsememory-resource-binding\">Binding Resource Memory</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111",
+          "text": "If the stencil aspect of <code>dstImage</code> is accessed, and <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112",
+          "text": "If the stencil aspect of <code>dstImage</code> is accessed, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113",
+          "text": "If non-stencil aspects of <code>dstImage</code> are accessed, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>x</code>, <code>y</code>, and <code>z</code> members of the <code>imageOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>imageExtent</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> equal the extents of <code>dstImage</code> identified by <code>imageSubresource</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>memoryRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>memoryImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>memoryRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>dstImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the current layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be one of the image layouts returned in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopyDstLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-flags-09393",
+          "text": "If <code>flags</code> includes <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, for each region in <code>pRegions</code>, <code>memoryRowLength</code> and <code>memoryImageHeight</code> <strong class=\"purple\">must</strong> both be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkHostImageCopyFlagBitsEXT\">VkHostImageCopyFlagBitsEXT</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkMemoryToImageCopyEXT\">VkMemoryToImageCopyEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkMemoryToImageCopyEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-09061",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> point to memory that is large enough to contain all memory locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-pRegions-09062",
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101",
+          "text": "<code>memoryRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102",
+          "text": "<code>memoryImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-aspectMask-09103",
+          "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06659",
+          "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06660",
+          "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-imageExtent-06661",
+          "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter",
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCopyImageToMemoryEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063",
+          "text": "The <a href=\"#features-hostImageCopy\"><code>hostImageCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyImageToMemoryEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter",
+          "text": "<code>pCopyImageToMemoryInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageToMemoryInfoEXT\">VkCopyImageToMemoryInfoEXT</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCopyImageToMemoryInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109",
+          "text": "If <code>srcImage</code> is sparse then all memory ranges accessed by the copy command <strong class=\"purple\">must</strong> be bound as described in <a href=\"#sparsememory-resource-binding\">Binding Resource Memory</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111",
+          "text": "If the stencil aspect of <code>srcImage</code> is accessed, and <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112",
+          "text": "If the stencil aspect of <code>srcImage</code> is accessed, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113",
+          "text": "If non-stencil aspects of <code>srcImage</code> are accessed, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>x</code>, <code>y</code>, and <code>z</code> members of the <code>imageOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>imageExtent</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> equal the extents of <code>srcImage</code> identified by <code>imageSubresource</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967",
+          "text": "The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968",
+          "text": "If <code>imageSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> +  <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> +  <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> +  <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106",
+          "text": "For each element of <code>pRegions</code>, <code>memoryRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107",
+          "text": "For each element of <code>pRegions</code>, <code>memoryImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108",
+          "text": "For each element of <code>pRegions</code>, <code>memoryRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of <code>srcImage</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the current layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be one of the image layouts returned in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopySrcLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-flags-09394",
+          "text": "If <code>flags</code> includes <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, for each region in <code>pRegions</code>, <code>memoryRowLength</code> and <code>memoryImageHeight</code> <strong class=\"purple\">must</strong> both be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkHostImageCopyFlagBitsEXT\">VkHostImageCopyFlagBitsEXT</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageToMemoryCopyEXT\">VkImageToMemoryCopyEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkImageToMemoryCopyEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-pHostPointer-09066",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> point to memory that is large enough to contain all memory locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-pRegions-09067",
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101",
+          "text": "<code>memoryRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102",
+          "text": "<code>memoryImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-aspectMask-09103",
+          "text": "The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06659",
+          "text": "<code>imageExtent.width</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06660",
+          "text": "<code>imageExtent.height</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-imageExtent-06661",
+          "text": "<code>imageExtent.depth</code> <strong class=\"purple\">must</strong> not be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-pHostPointer-parameter",
+          "text": "<code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageToMemoryCopyEXT-imageSubresource-parameter",
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCopyImageToImageEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCopyImageToImageEXT-hostImageCopy-09068",
+          "text": "The <a href=\"#features-hostImageCopy\"><code>hostImageCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyImageToImageEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter",
+          "text": "<code>pCopyImageToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageToImageInfoEXT\">VkCopyImageToImageInfoEXT</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCopyImageToImageInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09069",
+          "text": "<code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with identical image creation parameters",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09109",
+          "text": "If <code>srcImage</code> is sparse then all memory ranges accessed by the copy command <strong class=\"purple\">must</strong> be bound as described in <a href=\"#sparsememory-resource-binding\">Binding Resource Memory</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09111",
+          "text": "If the stencil aspect of <code>srcImage</code> is accessed, and <code>srcImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09112",
+          "text": "If the stencil aspect of <code>srcImage</code> is accessed, and <code>srcImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09113",
+          "text": "If non-stencil aspects of <code>srcImage</code> are accessed, <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcOffset-09114",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>x</code>, <code>y</code>, and <code>z</code> members of the <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-09115",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>extent</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> equal the extents of <code>srcImage</code> identified by <code>srcSubresource</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07966",
+          "text": "If <code>srcImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07969",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07979",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07980",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>srcOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07981",
+          "text": "If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-07983",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09109",
+          "text": "If <code>dstImage</code> is sparse then all memory ranges accessed by the copy command <strong class=\"purple\">must</strong> be bound as described in <a href=\"#sparsememory-resource-binding\">Binding Resource Memory</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09111",
+          "text": "If the stencil aspect of <code>dstImage</code> is accessed, and <code>dstImage</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09112",
+          "text": "If the stencil aspect of <code>dstImage</code> is accessed, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09113",
+          "text": "If non-stencil aspects of <code>dstImage</code> are accessed, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstOffset-09114",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>x</code>, <code>y</code>, and <code>z</code> members of the <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-09115",
+          "text": "If <code>flags</code> contains <code>VK_HOST_IMAGE_COPY_MEMCPY_EXT</code>, the <code>extent</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> equal the extents of <code>dstImage</code> identified by <code>dstSubresource</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07966",
+          "text": "If <code>dstImage</code> is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968",
+          "text": "If <code>dstSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07969",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970",
+          "text": "The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07979",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstOffset-09104",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07980",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07274",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07275",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07276",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00207",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00208",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-00209",
+          "text": "For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105",
+          "text": "For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07981",
+          "text": "If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-07983",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the current layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the current layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be one of the image layouts returned in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopySrcLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be one of the image layouts returned in <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>::<code>pCopyDstLayouts</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkHostImageCopyFlagBitsEXT\">VkHostImageCopyFlagBitsEXT</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy2\">VkImageCopy2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyImageToImageInfoEXT-commonparent",
+          "text": "Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMemoryIndirectNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-None-07653",
-          "text": " The <a href=\"#features-indirectCopy\"><code>indirectCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-indirectCopy\"><code>indirectCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654",
-          "text": " <code>copyBufferAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "<code>copyBufferAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-stride-07655",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkCopyMemoryIndirectCommandNV</code>)"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkCopyMemoryIndirectCommandNV</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656",
-          "text": " The <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support at least one of the <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>::<code>supportedQueues</code>"
+          "text": "The <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support at least one of the <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>::<code>supportedQueues</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryIndirectNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMemoryIndirectCommandNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657",
-          "text": " The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658",
-          "text": " The <code>dstAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>dstAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryIndirectCommandNV-size-07659",
-          "text": " The <code>size</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>size</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMemoryToImageIndirectNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-None-07660",
-          "text": " The <a href=\"#features-indirectCopy\"><code>indirectCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-indirectCopy\"><code>indirectCopy</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-aspectMask-07662",
-          "text": " The <code>aspectMask</code> member for every subresource in <code>pImageSubresources</code> <strong class=\"purple\">must</strong> only have a single bit set"
+          "text": "The <code>aspectMask</code> member for every subresource in <code>pImageSubresources</code> <strong class=\"purple\">must</strong> only have a single bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07663",
-          "text": " The image region specified by each element in <code>copyBufferAddress</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>"
+          "text": "The image region specified by each element in <code>copyBufferAddress</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07664",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07665",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07666",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670",
-          "text": " The specified <code>mipLevel</code> of each region <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "text": "The specified <code>mipLevel</code> of each region <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-baseArrayLayer-07671",
-          "text": " The specified <code>baseArrayLayer</code> &#43; <code>layerCount</code> of each region <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764",
+          "text": "If <code>layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, the specified <code>baseArrayLayer</code> +  <code>layerCount</code> of each region <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672",
-          "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each region <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
+          "text": "The <code>imageOffset</code> and <code>imageExtent</code> members of each region <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-07674",
-          "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each region, the <code>aspectMask</code> member of <code>pImageSubresources</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+          "text": "If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each region, the <code>aspectMask</code> member of <code>pImageSubresources</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07675",
-          "text": " For each region in <code>copyBufferAddress</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified subresource"
+          "text": "For each region in <code>copyBufferAddress</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> +  <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified subresource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkCopyMemoryToImageIndirectCommandNV</code>)"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkCopyMemoryToImageIndirectCommandNV</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameter",
-          "text": " <code>pImageSubresources</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>copyCount</code> valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structures"
+          "text": "<code>pImageSubresources</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>copyCount</code> valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylength",
-          "text": " <code>copyCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>copyCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_copy_memory_indirect)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07668",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_NV_copy_memory_indirect)+(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
-        }
-      ],
-      "(VK_NV_copy_memory_indirect)+(VK_EXT_fragment_density_map)": [
-        {
-          "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "Both of <code>commandBuffer</code>, and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMemoryToImageIndirectCommandNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678",
-          "text": " The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679",
-          "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>"
+          "text": "<code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferImageHeight-07680",
-          "text": " <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>"
+          "text": "<code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681",
-          "text": " <code>imageOffset</code> <strong class=\"purple\">must</strong> specify a valid offset in the destination image"
+          "text": "<code>imageOffset</code> <strong class=\"purple\">must</strong> specify a valid offset in the destination image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682",
-          "text": " <code>imageExtent</code> <strong class=\"purple\">must</strong> specify a valid region in the destination image and can be <code>0</code>"
+          "text": "<code>imageExtent</code> <strong class=\"purple\">must</strong> specify a valid region in the destination image and can be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameter",
-          "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBlitImage": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBlitImage-pRegions-00215",
-          "text": " The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>"
+          "text": "The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-pRegions-00216",
-          "text": " The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>"
+          "text": "The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-pRegions-00217",
-          "text": " The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation"
+          "text": "The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-srcImage-01999",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-06421",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-srcImage-00219",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-srcImage-00220",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-09459",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are the same, and an elements of <code>pRegions</code> contains the <code>srcSubresource</code> and <code>dstSubresource</code> with matching <code>mipLevel</code> and overlapping array layers, then the <code>srcImageLayout</code> and <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-dstImage-02000",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_DST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-00224",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-00225",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00229",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00230",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00231",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00232",
-          "text": " If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00233",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-00234",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-filter-02001",
-          "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00240",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-aspectMask-00241",
-          "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-aspectMask-00242",
-          "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcOffset-00243",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcOffset-00244",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00245",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcOffset-00246",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-00247",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstOffset-00248",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstOffset-00249",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-00250",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstOffset-00251",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-00252",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit\">VkImageBlit</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-filter-parameter",
-          "text": " <code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdBlitImage-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImage-06421",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler {YCbCr} conversion</a>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-dstImage-06422",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler {YCbCr} conversion</a>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00222",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00227",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
+          "vuid": "VUID-vkCmdBlitImage-dstImage-00224",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "vuid": "VUID-vkCmdBlitImage-dstImage-00225",
+          "text": "If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00229",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00230",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00231",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00232",
+          "text": "If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00233",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImage-00234",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-filter-02001",
+          "text": "If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBlitImage-filter-02002",
-          "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+          "text": "If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage-filter-00237",
-          "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBlitImage-dstImage-02545",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+          "text": "<code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00240",
+          "text": "If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-aspectMask-00241",
+          "text": "For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-aspectMask-00242",
+          "text": "For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcOffset-00243",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcOffset-00244",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00245",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcOffset-00246",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-00247",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstOffset-00248",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstOffset-00249",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImage-00250",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstOffset-00251",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImage-00252",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit\">VkImageBlit</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-filter-parameter",
+          "text": "<code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBlitImage-commonparent",
+          "text": "Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -30770,553 +39407,673 @@
       "core": [
         {
           "vuid": "VUID-VkImageBlit-aspectMask-00238",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "text": "The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageBlit-layerCount-00239",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "vuid": "VUID-VkImageBlit-layerCount-08800",
+          "text": "If neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageBlit-layerCount-08801",
+          "text": "If one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBlitImage2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01834",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01835",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01836",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-pBlitImageInfo-parameter",
-          "text": " <code>pBlitImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBlitImageInfo2\">VkBlitImageInfo2</a> structure"
+          "text": "<code>pBlitImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBlitImageInfo2\">VkBlitImageInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBlitImage2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkBlitImageInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkBlitImageInfo2-pRegions-00215",
-          "text": " The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>"
+          "text": "The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-pRegions-00216",
-          "text": " The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>"
+          "text": "The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-pRegions-00217",
-          "text": " The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation"
+          "text": "The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-srcImage-01999",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-06421",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-srcImage-00219",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-srcImage-00220",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-00221",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-01398",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-09459",
+          "text": "If <code>srcImage</code> and <code>dstImage</code> are the same, and an elements of <code>pRegions</code> contains the <code>srcSubresource</code> and <code>dstSubresource</code> with matching <code>mipLevel</code> and overlapping array layers, then the <code>srcImageLayout</code> and <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-dstImage-02000",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_DST_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-00224",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-00225",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00226",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00229",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00230",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00231",
-          "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00232",
-          "text": " If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00233",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-00234",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-filter-02001",
-          "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01705",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01706",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01707",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01708",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00240",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-aspectMask-00241",
-          "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-aspectMask-00242",
-          "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00243",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00244",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00245",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00246",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-00247",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00248",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00249",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-00250",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00251",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-00252",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit2\">VkImageBlit2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-filter-parameter",
-          "text": " <code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkBlitImageInfo2-commonparent",
-          "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImage-06421",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler {YCbCr} conversion</a>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_DST_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-dstImage-06422",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler {YCbCr} conversion</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-00222",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00227",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-00224",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-01398",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-00225",
+          "text": "If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00226",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-01399",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00229",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00230",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00231",
+          "text": "If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00232",
+          "text": "If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00233",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-00234",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-filter-02001",
+          "text": "If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBlitImageInfo2-filter-02002",
-          "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+          "text": "If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2-filter-00237",
-          "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
+          "text": "If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01705",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01706",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01707",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01708",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBlitImageInfo2-dstImage-02545",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
+          "text": "<code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00240",
+          "text": "If either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-aspectMask-00241",
+          "text": "For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-aspectMask-00242",
+          "text": "For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00243",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00244",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00245",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcOffset-00246",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-00247",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00248",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00249",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-00250",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstOffset-00251",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-00252",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBlitImageInfo2-pRegions-04561",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> not be block-compressed images"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> not be block-compressed images",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06207",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06208",
-          "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
+          "text": "If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-filter-09204",
+          "text": "If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code> and if the <a href=\"#features-filter-cubic-weight-selection\">selectableCubicWeights</a> feature is not enabled then the cubic weights <strong class=\"purple\">must</strong> be <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBlitImageCubicWeightsInfoQCOM\">VkBlitImageCubicWeightsInfoQCOM</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit2\">VkImageBlit2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-filter-parameter",
+          "text": "<code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageInfo2-commonparent",
+          "text": "Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBlitImageCubicWeightsInfoQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkBlitImageCubicWeightsInfoQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameter",
+          "text": "<code>cubicWeights</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCubicFilterWeightsQCOM\">VkCubicFilterWeightsQCOM</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageBlit2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageBlit2-aspectMask-00238",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "text": "The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageBlit2-layerCount-00239",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "vuid": "VUID-VkImageBlit2-layerCount-08800",
+          "text": "If neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageBlit2-layerCount-08801",
+          "text": "If one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_BLIT_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_BLIT_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit2-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageBlit2-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdResolveImage": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "core": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResolveImage-pRegions-00255",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-srcImage-00256",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-srcImage-00257",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImage-00258",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImage-00259",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImage-02003",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-01386",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-04446",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-04447",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcOffset-00269",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcOffset-00270",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-00271",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcOffset-00272",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-00273",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstOffset-00274",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstOffset-00275",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImage-00276",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstOffset-00277",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImage-00278",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-06762",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImage-06764",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve\">VkImageResolve</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00261",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00263",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_NV_linear_color_attachment)": [
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImage-02003",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResolveImage-linearColorAttachment-06519",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
-        }
-      ],
-      "(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-01386",
+          "text": "<code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712",
+          "text": "If <code>dstSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImage-02546",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+          "text": "<code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-04446",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-04447",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcOffset-00269",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcOffset-00270",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-00271",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcOffset-00272",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-00273",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstOffset-00274",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstOffset-00275",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImage-00276",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstOffset-00277",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImage-00278",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-06762",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResolveImage-srcImage-06763",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImage-06764",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage-dstImage-06765",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve\">VkImageResolve</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdResolveImage-commonparent",
+          "text": "Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -31324,695 +40081,853 @@
       "core": [
         {
           "vuid": "VUID-VkImageResolve-aspectMask-00266",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageResolve-layerCount-00267",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "vuid": "VUID-VkImageResolve-layerCount-08803",
+          "text": "If neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageResolve-layerCount-08804",
+          "text": "If one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdResolveImage2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01837",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01838",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01839",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-pResolveImageInfo-parameter",
-          "text": " <code>pResolveImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkResolveImageInfo2\">VkResolveImageInfo2</a> structure"
+          "text": "<code>pResolveImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkResolveImageInfo2\">VkResolveImageInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdResolveImage2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkResolveImageInfo2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkResolveImageInfo2-pRegions-00255",
-          "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
+          "text": "The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-srcImage-00256",
-          "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-srcImage-00257",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImage-00258",
-          "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImage-00259",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-00260",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-01400",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-00262",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImage-02003",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-01386",
-          "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01709",
-          "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01710",
-          "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01711",
-          "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01712",
-          "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-04446",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-04447",
-          "text": " If either <code>srcImage</code> or <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00269",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00270",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-00271",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00272",
-          "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-00273",
-          "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00274",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00275",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImage-00276",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00277",
-          "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImage-00278",
-          "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-06762",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImage-06764",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImage-parameter",
-          "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-parameter",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImage-parameter",
-          "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-parameter",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-pRegions-parameter",
-          "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve2\">VkImageResolve2</a> structures"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-regionCount-arraylength",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-commonparent",
-          "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-00261",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        },
-        {
-          "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-00263",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-01400",
-          "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-01401",
-          "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_NV_linear_color_attachment)": [
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImage-02003",
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkResolveImageInfo2-linearColorAttachment-06519",
-          "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-01386",
+          "text": "<code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01709",
+          "text": "The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01710",
+          "text": "The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01711",
+          "text": "If <code>srcSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> +  <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01712",
+          "text": "If <code>dstSubresource.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> +  <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImage-02546",
-          "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+          "text": "<code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-04446",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-04447",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00269",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00270",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-00271",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcOffset-00272",
+          "text": "For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-00273",
+          "text": "If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00274",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> +  <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00275",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> +  <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImage-00276",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstOffset-00277",
+          "text": "For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> +  <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImage-00278",
+          "text": "If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-06762",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkResolveImageInfo2-srcImage-06763",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImage-06764",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkResolveImageInfo2-dstImage-06765",
-          "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
+          "text": "The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImage-parameter",
+          "text": "<code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-parameter",
+          "text": "<code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImage-parameter",
+          "text": "<code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-parameter",
+          "text": "<code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-pRegions-parameter",
+          "text": "<code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve2\">VkImageResolve2</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-regionCount-arraylength",
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkResolveImageInfo2-commonparent",
+          "text": "Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageResolve2": {
-      "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageResolve2-aspectMask-00266",
-          "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+          "text": "The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkImageResolve2-layerCount-00267",
-          "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+          "vuid": "VUID-VkImageResolve2-layerCount-08803",
+          "text": "If neither of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> are <code>VK_REMAINING_ARRAY_LAYERS</code>, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkImageResolve2-layerCount-08804",
+          "text": "If one of the <code>layerCount</code> members of <code>srcSubresource</code> or <code>dstSubresource</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the other member <strong class=\"purple\">must</strong> be either <code>VK_REMAINING_ARRAY_LAYERS</code> or equal to the <code>arrayLayers</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> used to create the image minus <code>baseArrayLayer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve2-srcSubresource-parameter",
-          "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageResolve2-dstSubresource-parameter",
-          "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
+          "text": "<code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteBufferMarker2AMD": {
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03929",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03930",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893",
-          "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03894",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> include only a single pipeline stage"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03895",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> include only stages that are valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-parameter",
-          "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03931",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03932",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03933",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03934",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03935",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04956",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07316",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07317",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04957",
-          "text": " If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-subpassShading\"><code>subpassShading</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04995",
-          "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
+          "text": "If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04995",
-          "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07946",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>stage</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893",
+          "text": "The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03894",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> include only a single pipeline stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03895",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> include only stages that are valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896",
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898",
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899",
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-parameter",
+          "text": "<code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteBufferMarkerAMD": {
-      "(VK_AMD_buffer_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
+          "text": "<code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800",
-          "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801",
-          "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter",
-          "text": " If <code>pipelineStage</code> is not <code>0</code>, <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter",
-          "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_EXT_conditional_rendering)": [
-        {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077",
-          "text": " If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_EXT_fragment_density_map)": [
+          "text": "If the <a href=\"#features-conditionalRendering\"><code>conditionalRendering</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078",
-          "text": " If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079",
-          "text": " If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080",
-          "text": " If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077",
-          "text": " If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)": [
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081",
-          "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)": [
+          "text": "If the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314",
-          "text": " If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)": [
-        {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-fragmentShadingRate-07315",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If neither the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489",
-          "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
-        }
-      ],
-      "(VK_AMD_buffer_marker)+!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+          "text": "If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-06490",
-          "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943",
+          "text": "If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798",
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800",
+          "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801",
+          "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter",
+          "text": "If <code>pipelineStage</code> is not <code>0</code>, <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineInputAssemblyStateCreateInfo": {
-      "!(VK_EXT_primitive_topology_list_restart)": [
-        {
-          "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428",
-          "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>primitiveRestartEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_primitive_topology_list_restart)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252",
-          "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code>, and <code>primitiveRestartEnable</code> is <code>VK_TRUE</code>, the <a href=\"#features-primitiveTopologyListRestart\"><code>primitiveTopologyListRestart</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If the <a href=\"#features-primitiveTopologyListRestart\"><code>primitiveTopologyListRestart</code></a> feature is not enabled, and <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code>, <code>primitiveRestartEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253",
-          "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, and <code>primitiveRestartEnable</code> is <code>VK_TRUE</code>, the <a href=\"#features-primitiveTopologyPatchListRestart\"><code>primitiveTopologyPatchListRestart</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "core": [
+          "text": "If the <a href=\"#features-primitiveTopologyPatchListRestart\"><code>primitiveTopologyPatchListRestart</code></a> feature is not enabled, and <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>primitiveRestartEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429",
-          "text": " If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be any of <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY</code>"
+          "text": "If the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be any of <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430",
-          "text": " If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>"
+          "text": "If the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>triangleFans</code> is <code>VK_FALSE</code>, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter",
-          "text": " <code>topology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>triangleFans</code> is <code>VK_FALSE</code>, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN</code>"
+          "text": "<code>topology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPrimitiveRestartEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-None-04866",
-          "text": " The <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-None-08970",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPrimitiveTopology": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetPrimitiveTopology-None-03347",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetPrimitiveTopology-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter",
-          "text": " <code>primitiveTopology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value"
+          "text": "<code>primitiveTopology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPrimitiveTopology-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindIndexBuffer": {
       "core": [
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-offset-00431",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
+          "vuid": "VUID-vkCmdBindIndexBuffer-offset-08782",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-offset-00432",
-          "text": " The sum of <code>offset</code> and the address of the range of <code>VkDeviceMemory</code> object that is backing <code>buffer</code>, <strong class=\"purple\">must</strong> be a multiple of the type indicated by <code>indexType</code>"
+          "vuid": "VUID-vkCmdBindIndexBuffer-offset-08783",
+          "text": "The sum of <code>offset</code> and the base address of the range of <code>VkDeviceMemory</code> object that is backing <code>buffer</code>, <strong class=\"purple\">must</strong> be a multiple of the size of the type indicated by <code>indexType</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00433",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> flag"
+          "vuid": "VUID-vkCmdBindIndexBuffer-buffer-08784",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> flag",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00434",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "vuid": "VUID-vkCmdBindIndexBuffer-buffer-08785",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer-indexType-08786",
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> not be <code>VK_INDEX_TYPE_NONE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer-indexType-08787",
+          "text": "If <code>indexType</code> is <code>VK_INDEX_TYPE_UINT8_EXT</code>, the <a href=\"#features-indexTypeUint8\"><code>indexTypeUint8</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer-None-09493",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, <code>buffer</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer-buffer-09494",
+          "text": "If <code>buffer</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, offset <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindIndexBuffer-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      ]
+    },
+    "vkCmdBindIndexBuffer2KHR": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02507",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> not be <code>VK_INDEX_TYPE_NONE_KHR</code>"
-        }
-      ],
-      "(VK_EXT_index_type_uint8)": [
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-offset-08782",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02765",
-          "text": " If <code>indexType</code> is <code>VK_INDEX_TYPE_UINT8_EXT</code>, the <a href=\"#features-indexTypeUint8\"><code>indexTypeUint8</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-offset-08783",
+          "text": "The sum of <code>offset</code> and the base address of the range of <code>VkDeviceMemory</code> object that is backing <code>buffer</code>, <strong class=\"purple\">must</strong> be a multiple of the size of the type indicated by <code>indexType</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-08784",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-08785",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-08786",
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> not be <code>VK_INDEX_TYPE_NONE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-08787",
+          "text": "If <code>indexType</code> is <code>VK_INDEX_TYPE_UINT8_EXT</code>, the <a href=\"#features-indexTypeUint8\"><code>indexTypeUint8</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-None-09493",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, <code>buffer</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-09494",
+          "text": "If <code>buffer</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, offset <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-size-08767",
+          "text": "If <code>size</code> is not <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be a multiple of the size of the type indicated by <code>indexType</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-size-08768",
+          "text": "If <code>size</code> is not <code>VK_WHOLE_SIZE</code>, the sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-buffer-parameter",
+          "text": "If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-indexType-parameter",
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindIndexBuffer2KHR-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -32020,951 +40935,1793 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDraw-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDraw-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDraw-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDraw-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDraw-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDraw-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDraw-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDraw-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDraw-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDraw-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDraw-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDraw-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDraw-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDraw-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDraw-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDraw-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDraw-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDraw-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDraw-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDraw-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDraw-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDraw-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDraw-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDraw-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDraw-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDraw-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDraw-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDraw-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDraw-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDraw-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDraw-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDraw-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDraw-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDraw-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDraw-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDraw-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -32972,2907 +42729,5456 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDrawIndexed-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndexed-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07312",
-          "text": " An index buffer <strong class=\"purple\">must</strong> be bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-firstIndex-04932",
-          "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndexed-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndexed-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndexed-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexed-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexed-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndexed-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexed-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-07312",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, a valid index buffer <strong class=\"purple\">must</strong> be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-robustBufferAccess2-07825",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-robustBufferAccess2-08798",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code> or <code>vkCmdBindIndexBuffer2KHR</code>. If <code>vkCmdBindIndexBuffer2KHR</code> is used to bind the index buffer, the size of the bound index buffer is <a href=\"#vkCmdBindIndexBuffer2KHR\">vkCmdBindIndexBuffer2KHR</a>::<code>size</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexed-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMultiEXT": {
-      "(VK_EXT_multi_draw)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04933",
-          "text": " The <a href=\"#features-multiDraw\"><code>multiDraw</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04934",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04935",
-          "text": " If <code>drawCount</code> is greater than zero, <code>pVertexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawInfoEXT\">VkMultiDrawInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-stride-04936",
-          "text": " <code>stride</code> must be a multiple of 4"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMultiEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-04933",
+          "text": "The <a href=\"#features-multiDraw\"><code>multiDraw</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04934",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04935",
+          "text": "If <code>drawCount</code> is greater than zero, <code>pVertexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawInfoEXT\">VkMultiDrawInfoEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-stride-04936",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMultiIndexedEXT": {
-      "(VK_EXT_multi_draw)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07312",
-          "text": " An index buffer <strong class=\"purple\">must</strong> be bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
-          "text": " The <a href=\"#features-multiDraw\"><code>multiDraw</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938",
-          "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940",
-          "text": " If <code>drawCount</code> is greater than zero, <code>pIndexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawIndexedInfoEXT\">VkMultiDrawIndexedInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stride-04941",
-          "text": " <code>stride</code> must be a multiple of 4"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter",
-          "text": " If <code>pVertexOffset</code> is not <code>NULL</code>, <code>pVertexOffset</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>int32_t</code> value"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07312",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, a valid index buffer <strong class=\"purple\">must</strong> be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-07825",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code> or <code>vkCmdBindIndexBuffer2KHR</code>. If <code>vkCmdBindIndexBuffer2KHR</code> is used to bind the index buffer, the size of the bound index buffer is <a href=\"#vkCmdBindIndexBuffer2KHR\">vkCmdBindIndexBuffer2KHR</a>::<code>size</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
+          "text": "The <a href=\"#features-multiDraw\"><code>multiDraw</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940",
+          "text": "If <code>drawCount</code> is greater than zero, <code>pIndexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawIndexedInfoEXT\">VkMultiDrawIndexedInfoEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stride-04941",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter",
+          "text": "If <code>pVertexOffset</code> is not <code>NULL</code>, <code>pVertexOffset</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>int32_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -35880,1961 +48186,3701 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDrawIndirect-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndirect-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718",
-          "text": " If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndirectCommand</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487",
-          "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndirect-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndirect-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndirect-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirect-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirect-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndirect-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirect-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718",
+          "text": "If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndirectCommand</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487",
+          "text": "If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirect-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrawIndirectCommand": {
       "core": [
         {
+          "vuid": "VUID-VkDrawIndirectCommand-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDrawIndirectCommand-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkDrawIndirectCommand-None-00500",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501",
-          "text": " If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawIndirectCount": {
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714",
-          "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716",
-          "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717",
-          "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129",
-          "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndirectCommand</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111",
-          "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121",
-          "text": " If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122",
-          "text": " If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commonparent",
-          "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndirectCount-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714",
+          "text": "If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716",
+          "text": "<code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717",
+          "text": "The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129",
+          "text": "<span class=\"eq\">(<code>countBufferOffset</code> +  <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04445",
-          "text": " If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndirectCommand</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111",
+          "text": "If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>maxDrawCount</code> - 1) +  <code>offset</code> +  sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121",
+          "text": "If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122",
+          "text": "If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectCount-commonparent",
+          "text": "Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -37842,8533 +51888,19772 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718",
-          "text": " If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07312",
-          "text": " An index buffer <strong class=\"purple\">must</strong> be bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
-          "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718",
+          "text": "If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07312",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, a valid index buffer <strong class=\"purple\">must</strong> be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
+          "text": "If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrawIndexedIndirectCommand": {
       "core": [
         {
-          "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
+          "vuid": "VUID-VkDrawIndexedIndirectCommand-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDrawIndexedIndirectCommand-indexSize-00553",
-          "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
+          "vuid": "VUID-VkDrawIndexedIndirectCommand-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code> or <code>vkCmdBindIndexBuffer2KHR</code>. If <code>vkCmdBindIndexBuffer2KHR</code> is used to bind the index buffer, the size of the bound index buffer is <a href=\"#vkCmdBindIndexBuffer2KHR\">vkCmdBindIndexBuffer2KHR</a>::<code>size</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554",
-          "text": " If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawIndexedIndirectCount": {
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714",
-          "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716",
-          "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717",
-          "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129",
-          "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07312",
-          "text": " An index buffer <strong class=\"purple\">must</strong> be bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndexedIndirectCommand</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143",
-          "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153",
-          "text": " If count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154",
-          "text": " If count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent",
-          "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714",
+          "text": "If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716",
+          "text": "<code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717",
+          "text": "The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129",
+          "text": "<span class=\"eq\">(<code>countBufferOffset</code> +  <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
-          "text": " If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07312",
+          "text": "If <a href=\"#features-maintenance6\"><code>maintenance6</code></a> is not enabled, a valid index buffer <strong class=\"purple\">must</strong> be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-robustBufferAccess2-07825",
+          "text": "If <a href=\"#features-robustBufferAccess2\"><code>robustBufferAccess2</code></a> is not enabled, <span class=\"eq\">(<code>indexSize</code> × (<code>firstIndex</code> +  <code>indexCount</code>) +  <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndexedIndirectCommand</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143",
+          "text": "If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>maxDrawCount</code> - 1) +  <code>offset</code> +  sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153",
+          "text": "If count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154",
+          "text": "If count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent",
+          "text": "Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawIndirectByteCountEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
-          "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
-          "text": " The implementation <strong class=\"purple\">must</strong> support <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackDraw</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289",
-          "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be greater than 0 and less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxTransformFeedbackBufferDataStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
-          "text": " If <code>counterBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290",
-          "text": " <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568",
-          "text": " <code>counterBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter",
-          "text": " <code>counterBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461",
+          "text": "If the bound graphics pipeline state was created with <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a> in the <code>pNext</code> chain of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code>, any member of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>::<code>pVertexBindingDivisors</code> has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09462",
+          "text": "If <a href=\"#shaders-objects\">shader objects</a> are used for drawing or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, any member of the <code>pVertexBindingDescriptions</code> parameter to the <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> call that sets this dynamic state has a value other than <code>1</code> in <code>divisor</code>, and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>supportsNonZeroFirstInstance</code> is <code>VK_FALSE</code>, then <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
+          "text": "<code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
+          "text": "The implementation <strong class=\"purple\">must</strong> support <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackDraw</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289",
+          "text": "<code>vertexStride</code> <strong class=\"purple\">must</strong> be greater than 0 and less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferDataStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
+          "text": "If <code>counterBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290",
+          "text": "<code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568",
+          "text": "<code>counterBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474",
+          "text": "<code>counterOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475",
+          "text": "<code>vertexStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter",
+          "text": "<code>counterBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent",
+          "text": "Both of <code>commandBuffer</code>, and <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginConditionalRenderingEXT": {
-      "(VK_EXT_conditional_rendering)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980",
-          "text": " Conditional rendering <strong class=\"purple\">must</strong> not already be <a href=\"#active-conditional-rendering\">active</a>"
+          "text": "Conditional rendering <strong class=\"purple\">must</strong> not already be <a href=\"#active-conditional-rendering\">active</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter",
-          "text": " <code>pConditionalRenderingBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkConditionalRenderingBeginInfoEXT\">VkConditionalRenderingBeginInfoEXT</a> structure"
+          "text": "<code>pConditionalRenderingBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkConditionalRenderingBeginInfoEXT\">VkConditionalRenderingBeginInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkConditionalRenderingBeginInfoEXT": {
-      "(VK_EXT_conditional_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT</code> bit set"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code> by at least 32 bits"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code> by at least 32 bits",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of 4"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkConditionalRenderingFlagBitsEXT\">VkConditionalRenderingFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkConditionalRenderingFlagBitsEXT\">VkConditionalRenderingFlagBitsEXT</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndConditionalRenderingEXT": {
-      "(VK_EXT_conditional_rendering)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985",
-          "text": " Conditional rendering <strong class=\"purple\">must</strong> be <a href=\"#active-conditional-rendering\">active</a>"
+          "text": "Conditional rendering <strong class=\"purple\">must</strong> be <a href=\"#active-conditional-rendering\">active</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986",
-          "text": " If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> outside of a render pass instance, it <strong class=\"purple\">must</strong> not be ended inside a render pass instance"
+          "text": "If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> outside of a render pass instance, it <strong class=\"purple\">must</strong> not be ended inside a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987",
-          "text": " If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> within a subpass it <strong class=\"purple\">must</strong> be ended in the same subpass"
+          "text": "If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> within a subpass it <strong class=\"purple\">must</strong> be ended in the same subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndConditionalRenderingEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksNV": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119",
-          "text": " <code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-MeshNV-07080",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-06480",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076",
-          "text": " The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)": [
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07074",
-          "text": " <a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119",
+          "text": "<code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07075",
-          "text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-MeshNV-07080",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksIndirectNV": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718",
-          "text": " If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156",
-          "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076",
-          "text": " The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)": [
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07074",
-          "text": " <a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07075",
-          "text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718",
+          "text": "If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156",
+          "text": "If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrawMeshTasksIndirectCommandNV": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175",
-          "text": " <code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>"
+          "text": "<code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksIndirectCountNV": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714",
-          "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716",
-          "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717",
-          "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129",
-          "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183",
-          "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191",
-          "text": " If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192",
-          "text": " If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent",
-          "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076",
-          "text": " The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)": [
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074",
-          "text": " <a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075",
-          "text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_2)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714",
+          "text": "If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716",
+          "text": "<code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717",
+          "text": "The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129",
+          "text": "<span class=\"eq\">(<code>countBufferOffset</code> +  <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445",
-          "text": " If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183",
+          "text": "If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>maxDrawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191",
+          "text": "If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192",
+          "text": "If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent",
+          "text": "Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksEXT": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[0]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[1]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[2]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupTotalCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[0]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[1]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[2]"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupTotalCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-stage-06480",
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupTotalCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329",
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupTotalCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksIndirectEXT": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718",
-          "text": " If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719",
-          "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089",
-          "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandEXT\">VkDrawMeshTasksIndirectCommandEXT</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090",
-          "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandEXT\">VkDrawMeshTasksIndirectCommandEXT</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480",
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineStatistics-07076",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718",
+          "text": "If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089",
+          "text": "If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandEXT\">VkDrawMeshTasksIndirectCommandEXT</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090",
+          "text": "If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandEXT\">VkDrawMeshTasksIndirectCommandEXT</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrawMeshTasksIndirectCommandEXT": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[0]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[1]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[2]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupCount</code>[2]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> {ExecutionModel}, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupTotalCount</code>"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> contains a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupTotalCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[0]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[1]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[2]"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[2]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329",
-          "text": " If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> {ExecutionModel}, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupTotalCount</code>"
+          "text": "If the current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> does not contain a shader using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code>, The product of <code>groupCountX</code>, <code>groupCountY</code> and <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupTotalCount</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDrawMeshTasksIndirectCountEXT": {
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714",
-          "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716",
-          "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717",
-          "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129",
-          "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>)"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097",
-          "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098",
-          "text": " If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099",
-          "text": " If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100",
-          "text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> {ExecutionModel}"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter",
-          "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent",
-          "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_2)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480",
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineStatistics-07076",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714",
+          "text": "If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716",
+          "text": "<code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717",
+          "text": "The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129",
+          "text": "<span class=\"eq\">(<code>countBufferOffset</code> +  <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445",
-          "text": " If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-drawIndirectCount\"><code>drawIndirectCount</code></a> is not enabled this function <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096",
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>)",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097",
+          "text": "If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>maxDrawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098",
+          "text": "If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099",
+          "text": "If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> × (<code>drawCount</code> - 1) +  <code>offset</code> +  <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandEXT</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter",
+          "text": "<code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent",
+          "text": "Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdDrawClusterHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-magFilter-04553",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02691",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02692",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02693",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-flags-02696",
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08114",
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08115",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08116",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08117",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08119",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06550",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04470",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04471",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04472",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-SampledType-04473",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04475",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06971",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06972",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBoxFilterQCOM-06973",
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974",
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977",
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978",
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688",
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689",
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06666",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419",
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04137",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04141",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04142",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-04876",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-04877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-logicOp-04878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06172",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06173",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06174",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06175",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06176",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06177",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07749",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07751",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06183",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06184",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185",
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06186",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06187",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07619",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07620",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07621",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07622",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07623",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07624",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07625",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07626",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07627",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07628",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07629",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07630",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07631",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07632",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07633",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07634",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07635",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07636",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07637",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07638",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07639",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07640",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07641",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07642",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07643",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07644",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07645",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07646",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488",
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07489",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07494",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stage-07073",
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-stage-06480",
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07819",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820",
+          "text": "<code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</code>::<code>maxWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821",
+          "text": "<code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</code>::<code>maxWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822",
+          "text": "<code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</code>::<code>maxWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterHUAWEI-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdDrawClusterIndirectHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696",
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114",
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04470",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04471",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04472",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04473",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04475",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06971",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06972",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBoxFilterQCOM-06973",
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974",
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977",
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978",
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688",
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689",
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419",
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04137",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04142",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06174",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06175",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06176",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06177",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185",
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06186",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06187",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287",
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07619",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488",
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07489",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07494",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stage-07073",
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480",
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07074",
+          "text": "<a href=\"#queries-transform-feedback\">Transform Feedback Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075",
+          "text": "<a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineStatistics-07076",
+          "text": "The <code>pipelineStatistics</code> member used to create any active <a href=\"#queries-pipestats\">Pipeline Statistics Query</a> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT</code>, <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT</code>, or <code>VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02718",
+          "text": "If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02719",
+          "text": "<code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824",
+          "text": "The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>ClusterCullingHUAWEI</code> <code>Execution</code> <code>Model</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>::<code>indirectBufferOffsetAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -46376,47 +71661,58 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613",
-          "text": " <code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614",
-          "text": " <code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
+          "text": "<code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615",
-          "text": " For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <code>VkVertexInputBindingDescription</code> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>"
+          "text": "For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616",
-          "text": " All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers"
+          "text": "All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617",
-          "text": " All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations"
+          "text": "All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoEXT\">VkPipelineVertexInputDivisorStateCreateInfoEXT</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineVertexInputDivisorStateCreateInfoKHR\">VkPipelineVertexInputDivisorStateCreateInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter",
-          "text": " If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> structures"
+          "text": "If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter",
-          "text": " If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a> structures"
+          "text": "If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -46424,21 +71720,23 @@
       "core": [
         {
           "vuid": "VUID-VkVertexInputBindingDescription-binding-00618",
-          "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription-stride-00619",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVertexInputBindingDescription-stride-04456",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of, and at least as large as, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>::<code>minVertexInputBindingStrideAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter",
-          "text": " <code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkVertexInputBindingDescription-stride-04456",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of, and at least as large as, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>::<code>minVertexInputBindingStrideAlignment</code>"
+          "text": "<code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -46446,151 +71744,180 @@
       "core": [
         {
           "vuid": "VUID-VkVertexInputAttributeDescription-location-00620",
-          "text": " <code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
+          "text": "<code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621",
-          "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription-format-00623",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be allowed as a vertex buffer format, as specified by the <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>"
+          "text": "The <a href=\"#resources-buffer-view-format-features\">format features</a> of <code>format</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> referenced in <code>binding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> referenced in <code>binding</code>"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetVertexInputEXT": {
-      "(VK_EXT_vertex_input_dynamic_state)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetVertexInputEXT-None-04790",
-          "text": " The <a href=\"#features-vertexInputDynamicState\"><code>vertexInputDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetVertexInputEXT-None-08546",
+          "text": "Either the <a href=\"#features-vertexInputDynamicState\"><code>vertexInputDynamicState</code></a> feature or the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature or both <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791",
-          "text": " <code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792",
-          "text": " <code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
+          "text": "<code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-binding-04793",
-          "text": " For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <code>VkVertexInputBindingDescription2EXT</code> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>"
+          "text": "For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794",
-          "text": " All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers"
+          "text": "All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795",
-          "text": " All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations"
+          "text": "All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter",
-          "text": " If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> structures"
+          "text": "If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter",
-          "text": " If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a> structures"
+          "text": "If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetVertexInputEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkVertexInputBindingDescription2EXT": {
-      "(VK_EXT_vertex_input_dynamic_state)": [
+      "core": [
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-binding-04796",
-          "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-stride-04797",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04798",
-          "text": " If the <a href=\"#features-vertexAttributeInstanceRateZeroDivisor\"><code>vertexAttributeInstanceRateZeroDivisor</code></a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If the <a href=\"#features-vertexAttributeInstanceRateZeroDivisor\"><code>vertexAttributeInstanceRateZeroDivisor</code></a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04799",
-          "text": " If the <a href=\"#features-vertexAttributeInstanceRateDivisor\"><code>vertexAttributeInstanceRateDivisor</code></a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-vertexAttributeInstanceRateDivisor\"><code>vertexAttributeInstanceRateDivisor</code></a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06226",
-          "text": " <code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <code>VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</code>::<code>maxVertexAttribDivisor</code>, inclusive"
+          "text": "<code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <code>VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</code>::<code>maxVertexAttribDivisor</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06227",
-          "text": " If <code>divisor</code> is not <code>1</code> then <code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code>"
+          "text": "If <code>divisor</code> is not <code>1</code> then <code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter",
-          "text": " <code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value"
+          "text": "<code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkVertexInputAttributeDescription2EXT": {
-      "(VK_EXT_vertex_input_dynamic_state)": [
+      "core": [
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-location-06228",
-          "text": " <code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
+          "text": "<code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-binding-06229",
-          "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-offset-06230",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-04805",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be allowed as a vertex buffer format, as specified by the <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>"
+          "text": "The <a href=\"#resources-buffer-view-format-features\">format features</a> of <code>format</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806",
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> referenced in <code>binding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        }
-      ],
-      "(VK_EXT_vertex_input_dynamic_state)+(VK_KHR_portability_subset)": [
-        {
-          "vuid": "VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> referenced in <code>binding</code>"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -46598,191 +71925,230 @@
       "core": [
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624",
-          "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625",
-          "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626",
-          "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
+          "text": "All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627",
-          "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag"
+          "text": "All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628",
-          "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04001",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002",
+          "text": "If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter",
-          "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles"
+          "text": "<code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter",
-          "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "<code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength",
-          "text": " <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_robustness2)": [
-        {
-          "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002",
-          "text": " If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindVertexBuffers2": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03355",
-          "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "<code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03356",
-          "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "text": "The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-03357",
-          "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
+          "text": "If <code>pSizes</code> is not <code>NULL</code>, all elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-03358",
-          "text": " If <code>pSizes</code> is not <code>NULL</code>, all elements of <code>pOffsets</code> plus <code>pSizes</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding element in <code>pBuffers</code>"
+          "text": "If <code>pSizes</code> is not <code>NULL</code>, all elements of <code>pOffsets</code> plus <code>pSizes</code> , where <code>pSizes</code> is not <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding element in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03359",
-          "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag"
+          "text": "All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03360",
-          "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04111",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04112",
+          "text": "If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-03362",
-          "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
+          "text": "If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-06209",
-          "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>offset</code> plus <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> size"
+          "text": "If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>offset</code> plus <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-parameter",
-          "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles"
+          "text": "<code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-parameter",
-          "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "<code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-parameter",
-          "text": " If <code>pSizes</code> is not <code>NULL</code>, <code>pSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "If <code>pSizes</code> is not <code>NULL</code>, <code>pSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-parameter",
-          "text": " If <code>pStrides</code> is not <code>NULL</code>, <code>pStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "If <code>pStrides</code> is not <code>NULL</code>, <code>pStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength",
-          "text": " If any of <code>pSizes</code>, or <code>pStrides</code> are not <code>NULL</code>, <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If any of <code>pSizes</code>, or <code>pStrides</code> are not <code>NULL</code>, <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindVertexBuffers2-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_robustness2)": [
-        {
-          "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04112",
-          "text": " If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkPipelineVertexInputDivisorStateCreateInfoEXT": {
-      "(VK_EXT_vertex_attribute_divisor)": [
+    "VkPipelineVertexInputDivisorStateCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT</code>"
+          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter",
-          "text": " <code>pVertexBindingDivisors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDivisorCount</code> <a href=\"#VkVertexInputBindingDivisorDescriptionEXT\">VkVertexInputBindingDivisorDescriptionEXT</a> structures"
+          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameter",
+          "text": "<code>pVertexBindingDivisors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDivisorCount</code> <a href=\"#VkVertexInputBindingDivisorDescriptionKHR\">VkVertexInputBindingDivisorDescriptionKHR</a> structures",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength",
-          "text": " <code>vertexBindingDivisorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-vertexBindingDivisorCount-arraylength",
+          "text": "<code>vertexBindingDivisorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVertexInputBindingDivisorDescriptionEXT": {
-      "(VK_EXT_vertex_attribute_divisor)": [
+    "VkVertexInputBindingDivisorDescriptionKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869",
-          "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
+          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869",
+          "text": "<code>binding</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxVertexInputBindings</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228",
-          "text": " If the <code>vertexAttributeInstanceRateZeroDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228",
+          "text": "If the <code>vertexAttributeInstanceRateZeroDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229",
-          "text": " If the <code>vertexAttributeInstanceRateDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229",
+          "text": "If the <code>vertexAttributeInstanceRateDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870",
-          "text": " <code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <code>VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</code>::<code>maxVertexAttribDivisor</code>, inclusive"
+          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870",
+          "text": "<code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>::<code>maxVertexAttribDivisor</code>, inclusive",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871",
-          "text": " <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a>::<code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code> for this <code>binding</code>"
+          "vuid": "VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871",
+          "text": "<a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a>::<code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code> for this <code>binding</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -46790,573 +72156,696 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214",
-          "text": " <code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
+          "text": "<code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineTessellationDomainOriginStateCreateInfo\">VkPipelineTessellationDomainOriginStateCreateInfo</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineTessellationDomainOriginStateCreateInfo\">VkPipelineTessellationDomainOriginStateCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineTessellationDomainOriginStateCreateInfo": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter",
-          "text": " <code>domainOrigin</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTessellationDomainOrigin\">VkTessellationDomainOrigin</a> value"
+          "text": "<code>domainOrigin</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTessellationDomainOrigin\">VkTessellationDomainOrigin</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetTessellationDomainOriginEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-extendedDynamicState3TessellationDomainOrigin-07444",
-          "text": " The <a href=\"#features-extendedDynamicState3TessellationDomainOrigin\"><code>extendedDynamicState3TessellationDomainOrigin</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3TessellationDomainOrigin\"><code>extendedDynamicState3TessellationDomainOrigin</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameter",
-          "text": " <code>domainOrigin</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTessellationDomainOrigin\">VkTessellationDomainOrigin</a> value"
+          "text": "<code>domainOrigin</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTessellationDomainOrigin\">VkTessellationDomainOrigin</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetTessellationDomainOriginEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindTransformFeedbackBuffersEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355",
-          "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": "<code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356",
-          "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "<code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357",
-          "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358",
-          "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
+          "text": "All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359",
-          "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be a multiple of 4"
+          "text": "All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be a multiple of 4",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360",
-          "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT</code> flag"
+          "text": "All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT</code> flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361",
-          "text": " If the optional <code>pSize</code> array is specified, each element of <code>pSizes</code> <strong class=\"purple\">must</strong> either be <code>VK_WHOLE_SIZE</code>, or be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferSize</code>"
+          "text": "If the optional <code>pSize</code> array is specified, each element of <code>pSizes</code> <strong class=\"purple\">must</strong> either be <code>VK_WHOLE_SIZE</code>, or be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362",
-          "text": " All elements of <code>pSizes</code> <strong class=\"purple\">must</strong> be either <code>VK_WHOLE_SIZE</code>, or less than or equal to the size of the corresponding buffer in <code>pBuffers</code>"
+          "text": "All elements of <code>pSizes</code> <strong class=\"purple\">must</strong> be either <code>VK_WHOLE_SIZE</code>, or less than or equal to the size of the corresponding buffer in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363",
-          "text": " All elements of <code>pOffsets</code> plus <code>pSizes</code>, where the <code>pSizes</code>, element is not <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding buffer in <code>pBuffers</code>"
+          "text": "All elements of <code>pOffsets</code> plus <code>pSizes</code>, where the <code>pSizes</code>, element is not <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding buffer in <code>pBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364",
-          "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365",
-          "text": " Transform feedback <strong class=\"purple\">must</strong> not be active when the <code>vkCmdBindTransformFeedbackBuffersEXT</code> command is recorded"
+          "text": "Transform feedback <strong class=\"purple\">must</strong> not be active when the <code>vkCmdBindTransformFeedbackBuffersEXT</code> command is recorded",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter",
-          "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkBuffer\">VkBuffer</a> handles"
+          "text": "<code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkBuffer\">VkBuffer</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter",
-          "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "<code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength",
-          "text": " <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginTransformFeedbackEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366",
-          "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": "<code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367",
-          "text": " Transform feedback <strong class=\"purple\">must</strong> not be active"
+          "text": "Transform feedback <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368",
-          "text": " <code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "<code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369",
-          "text": " The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607",
-          "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370",
-          "text": " For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array"
+          "text": "For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371",
-          "text": " If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>"
+          "text": "If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372",
-          "text": " For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>"
+          "text": "For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233",
-          "text": " A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-04128",
-          "text": " The last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> of the bound graphics pipeline <strong class=\"purple\">must</strong> have been declared with the <code>Xfb</code> execution mode"
+          "text": "The last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> of the bound graphics pipeline <strong class=\"purple\">must</strong> have been declared with the <code>Xfb</code> execution mode",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373",
+          "text": "Transform feedback <strong class=\"purple\">must</strong> not be made active in a render pass instance with multiview enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter",
-          "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
-        {
-          "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373",
-          "text": " Transform feedback <strong class=\"purple\">must</strong> not be made active in a render pass instance with multiview enabled"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndTransformFeedbackEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374",
-          "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": "<code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375",
-          "text": " Transform feedback <strong class=\"purple\">must</strong> be active"
+          "text": "Transform feedback <strong class=\"purple\">must</strong> be active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376",
-          "text": " <code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "<code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377",
-          "text": " The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
+          "text": "The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608",
-          "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378",
-          "text": " For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array"
+          "text": "For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379",
-          "text": " If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>"
+          "text": "If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380",
-          "text": " For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>"
+          "text": "For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter",
-          "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values"
+          "text": "If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <a href=\"#VkDeviceSize\">VkDeviceSize</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportSwizzleStateCreateInfoNV": {
-      "(VK_NV_viewport_swizzle)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> set in <code>VkPipelineViewportStateCreateInfo</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> set in <code>VkPipelineViewportStateCreateInfo</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter",
-          "text": " <code>pViewportSwizzles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewportSwizzleNV\">VkViewportSwizzleNV</a> structures"
+          "text": "<code>pViewportSwizzles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewportSwizzleNV\">VkViewportSwizzleNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetViewportSwizzleNV": {
-      "(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetViewportSwizzleNV-extendedDynamicState3ViewportSwizzle-07445",
-          "text": " The <a href=\"#features-extendedDynamicState3ViewportSwizzle\"><code>extendedDynamicState3ViewportSwizzle</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetViewportSwizzleNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ViewportSwizzle\"><code>extendedDynamicState3ViewportSwizzle</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter",
-          "text": " <code>pViewportSwizzles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewportSwizzleNV\">VkViewportSwizzleNV</a> structures"
+          "text": "<code>pViewportSwizzles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewportSwizzleNV\">VkViewportSwizzleNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkViewportSwizzleNV": {
-      "(VK_NV_viewport_swizzle)": [
+      "core": [
         {
           "vuid": "VUID-VkViewportSwizzleNV-x-parameter",
-          "text": " <code>x</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
+          "text": "<code>x</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewportSwizzleNV-y-parameter",
-          "text": " <code>y</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
+          "text": "<code>y</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewportSwizzleNV-z-parameter",
-          "text": " <code>z</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
+          "text": "<code>z</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewportSwizzleNV-w-parameter",
-          "text": " <code>w</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
+          "text": "<code>w</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT": {
-      "(VK_EXT_provoking_vertex)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883",
-          "text": " If <code>provokingVertexMode</code> is <code>VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT</code>, then the <a href=\"#features-provokingVertexLast\"><code>provokingVertexLast</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>provokingVertexMode</code> is <code>VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT</code>, then the <a href=\"#features-provokingVertexLast\"><code>provokingVertexLast</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter",
-          "text": " <code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkProvokingVertexModeEXT\">VkProvokingVertexModeEXT</a> value"
+          "text": "<code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkProvokingVertexModeEXT\">VkProvokingVertexModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetProvokingVertexModeEXT": {
-      "(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-extendedDynamicState3ProvokingVertexMode-07446",
-          "text": " The <a href=\"#features-extendedDynamicState3ProvokingVertexMode\"><code>extendedDynamicState3ProvokingVertexMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ProvokingVertexMode\"><code>extendedDynamicState3ProvokingVertexMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447",
-          "text": " If <code>provokingVertexMode</code> is <code>VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT</code>, then the <a href=\"#features-provokingVertexLast\"><code>provokingVertexLast</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>provokingVertexMode</code> is <code>VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT</code>, then the <a href=\"#features-provokingVertexLast\"><code>provokingVertexLast</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameter",
-          "text": " <code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkProvokingVertexModeEXT\">VkProvokingVertexModeEXT</a> value"
+          "text": "<code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkProvokingVertexModeEXT\">VkProvokingVertexModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetProvokingVertexModeEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthClampEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthClampEnableEXT-extendedDynamicState3DepthClampEnable-07448",
-          "text": " The <a href=\"#features-extendedDynamicState3DepthClampEnable\"><code>extendedDynamicState3DepthClampEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetDepthClampEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3DepthClampEnable\"><code>extendedDynamicState3DepthClampEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449",
-          "text": " If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is not enabled, <code>depthClampEnable</code> must be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is not enabled, <code>depthClampEnable</code> must be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClampEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthClipEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthClipEnableEXT-extendedDynamicState3DepthClipEnable-07450",
-          "text": " The <a href=\"#features-extendedDynamicState3DepthClipEnable\"><code>extendedDynamicState3DepthClipEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetDepthClipEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3DepthClipEnable\"><code>extendedDynamicState3DepthClipEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451",
-          "text": " The <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportDepthClipControlCreateInfoEXT": {
-      "(VK_EXT_depth_clip_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470",
-          "text": " If <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> is not enabled, <code>negativeOneToOne</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> is not enabled, <code>negativeOneToOne</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthClipNegativeOneToOneEXT": {
-      "(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-extendedDynamicState3DepthClipNegativeOneToOne-07452",
-          "text": " The <a href=\"#features-extendedDynamicState3DepthClipNegativeOneToOne\"><code>extendedDynamicState3DepthClipNegativeOneToOne</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3DepthClipNegativeOneToOne\"><code>extendedDynamicState3DepthClipNegativeOneToOne</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453",
-          "text": " The <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportWScalingStateCreateInfoNV": {
-      "(VK_NV_clip_space_w_scaling)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetViewportWScalingEnableNV": {
-      "(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-extendedDynamicState3ViewportWScalingEnable-07580",
-          "text": " The <a href=\"#features-extendedDynamicState3ViewportWScalingEnable\"><code>extendedDynamicState3ViewportWScalingEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ViewportWScalingEnable\"><code>extendedDynamicState3ViewportWScalingEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingEnableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetViewportWScalingNV": {
-      "(VK_NV_clip_space_w_scaling)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324",
-          "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxViewports</code>, inclusive"
+          "text": "The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter",
-          "text": " <code>pViewportWScalings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures"
+          "text": "<code>pViewportWScalings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -47364,189 +72853,201 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219",
-          "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
+          "text": "<code>scissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-x-02821",
-          "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
+          "text": "The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02822",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.x</code> +  <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02823",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.y</code> +  <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportDepthClipControlCreateInfoEXT\">VkPipelineViewportDepthClipControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>, or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>"
-        },
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220",
-          "text": " <code>scissorCount</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be identical"
-        },
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength",
-          "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
-        {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134",
-          "text": " If the graphics pipeline is being created without <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> set then <code>scissorCount</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be identical"
+          "text": "If <code>scissorCount</code> and <code>viewportCount</code> are both not dynamic, then <code>scissorCount</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135",
-          "text": " If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> set then <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> set then <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136",
-          "text": " If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> set then <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_NV_clip_space_w_scaling)": [
+          "text": "If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> set then <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726",
-          "text": " If the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure included in the <code>pNext</code> chain is <code>VK_TRUE</code>, the <code>viewportCount</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code>"
+          "text": "If the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure included in the <code>pNext</code> chain is <code>VK_TRUE</code>, the <code>viewportCount</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportDepthClipControlCreateInfoEXT\">VkPipelineViewportDepthClipControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>, or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetViewportWithCount": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetViewportWithCount-None-03393",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetViewportWithCount-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03394",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03395",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-04819",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-pViewports-parameter",
-          "text": " <code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures"
+          "text": "<code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)": [
-        {
-          "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-04819",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetScissorWithCount": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetScissorWithCount-None-03396",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetScissorWithCount-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03397",
-          "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "<code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03398",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-x-03399",
-          "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
+          "text": "The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-offset-03400",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.x</code> +  <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-offset-03401",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.y</code> +  <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-04820",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-pScissors-parameter",
-          "text": " <code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "<code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-arraylength",
-          "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)": [
-        {
-          "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-04820",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
+          "text": "<code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -47554,45 +73055,53 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetViewport-firstViewport-01223",
-          "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-firstViewport-01224",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-viewportCount-01225",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetViewport-commandBuffer-04821",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-pViewports-parameter",
-          "text": " <code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures"
+          "text": "<code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_NV_inherited_viewport_scissor)": [
-        {
-          "vuid": "VUID-vkCmdSetViewport-commandBuffer-04821",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -47600,67 +73109,63 @@
       "core": [
         {
           "vuid": "VUID-VkViewport-width-01770",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-width-01771",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[0]"
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkViewport-apiVersion-07917",
+          "text": "If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, the <a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a> extension is not enabled, and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-height-01773",
-          "text": " The absolute value of <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[1]"
+          "text": "The absolute value of <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-x-01774",
-          "text": " <code>x</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
+          "text": "<code>x</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-x-01232",
-          "text": " <span class=\"eq\">(<code>x</code> &#43; <code>width</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
+          "text": "<span class=\"eq\">(<code>x</code> +  <code>width</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-y-01775",
-          "text": " <code>y</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
+          "text": "<code>y</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkViewport-y-01233",
-          "text": " <span class=\"eq\">(<code>y</code> &#43; <code>height</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
-        }
-      ],
-      "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
-        {
-          "vuid": "VUID-VkViewport-height-01772",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
-        {
           "vuid": "VUID-VkViewport-y-01776",
-          "text": " <code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
+          "text": "<code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-y-01777",
-          "text": " <span class=\"eq\">(<code>y</code> &#43; <code>height</code>)</span> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
-        }
-      ],
-      "(VK_EXT_depth_range_unrestricted)": [
+          "text": "<span class=\"eq\">(<code>y</code> +  <code>height</code>)</span> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkViewport-y-01233",
+          "text": "<span class=\"eq\">(<code>y</code> +  <code>height</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkViewport-minDepth-01234",
-          "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+          "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViewport-maxDepth-01235",
-          "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "!(VK_EXT_depth_range_unrestricted)": [
-        {
-          "vuid": "VUID-VkViewport-minDepth-02540",
-          "text": " <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        },
-        {
-          "vuid": "VUID-VkViewport-maxDepth-02541",
-          "text": " <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+          "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         }
       ]
     },
@@ -47668,69 +73173,72 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782",
-          "text": " If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is not enabled, <code>depthClampEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is not enabled, <code>depthClampEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationDepthClipStateCreateInfoEXT\">VkPipelineRasterizationDepthClipStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationStateRasterizationOrderAMD\">VkPipelineRasterizationStateRasterizationOrderAMD</a>, or <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter",
-          "text": " <code>polygonMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPolygonMode\">VkPolygonMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter",
-          "text": " <code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter",
-          "text": " <code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value"
-        }
-      ],
-      "!(VK_NV_fill_rectangle)": [
-        {
-          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413",
-          "text": " If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code>"
-        }
-      ],
-      "(VK_NV_fill_rectangle)": [
-        {
           "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507",
-          "text": " If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code> or <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
+          "text": "If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is     not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code> or <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414",
-          "text": " If the <code><a href=\"#VK_NV_fill_rectangle\">VK_NV_fill_rectangle</a></code> extension is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "If the <code><a href=\"#VK_NV_fill_rectangle\">VK_NV_fill_rectangle</a></code> extension is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>pointPolygons</code> is <code>VK_FALSE</code>, and <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_POINT</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>pointPolygons</code> is <code>VK_FALSE</code>, and <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_POINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDepthBiasRepresentationInfoEXT\">VkDepthBiasRepresentationInfoEXT</a>, <a href=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationDepthClipStateCreateInfoEXT\">VkPipelineRasterizationDepthClipStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationStateRasterizationOrderAMD\">VkPipelineRasterizationStateRasterizationOrderAMD</a>, or <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter",
+          "text": "<code>polygonMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPolygonMode\">VkPolygonMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter",
+          "text": "<code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter",
+          "text": "<code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationDepthClipStateCreateInfoEXT": {
-      "(VK_EXT_depth_clip_enable)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -47738,817 +73246,981 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784",
-          "text": " If the <a href=\"#features-sampleRateShading\"><code>sampleRateShading</code></a> feature is not enabled, <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-sampleRateShading\"><code>sampleRateShading</code></a> feature is not enabled, <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785",
-          "text": " If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786",
-          "text": " <code>minSampleShading</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
+          "text": "<code>minSampleShading</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the subpass has any color attachments and <code>rasterizationSamples</code> is greater than the number of color samples, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCoverageModulationStateCreateInfoNV\">VkPipelineCoverageModulationStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageToColorStateCreateInfoNV\">VkPipelineCoverageToColorStateCreateInfoNV</a>, or <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCoverageModulationStateCreateInfoNV\">VkPipelineCoverageModulationStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageToColorStateCreateInfoNV\">VkPipelineCoverageToColorStateCreateInfoNV</a>, or <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter",
-          "text": " <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter",
-          "text": " If <code>pSampleMask</code> is not <code>NULL</code>, <code>pSampleMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) <a href=\"#VkSampleMask\">VkSampleMask</a> values"
-        }
-      ],
-      "(VK_NV_framebuffer_mixed_samples)": [
-        {
-          "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the subpass has any color attachments and <code>rasterizationSamples</code> is greater than the number of color samples, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If <code>pSampleMask</code> is not <code>NULL</code>, <code>pSampleMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) <a href=\"#VkSampleMask\">VkSampleMask</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetRasterizerDiscardEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-None-04871",
-          "text": " The <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-None-08970",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationStateStreamCreateInfoEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324",
-          "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": "<code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325",
-          "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>"
+          "text": "<code>rasterizationStream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326",
-          "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be zero if <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackRasterizationStreamSelect</code> is <code>VK_FALSE</code>"
+          "text": "<code>rasterizationStream</code> <strong class=\"purple\">must</strong> be zero if <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackRasterizationStreamSelect</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetRasterizationStreamEXT": {
-      "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetRasterizationStreamEXT-extendedDynamicState3RasterizationStream-07410",
-          "text": " The <a href=\"#features-extendedDynamicState3RasterizationStream\"><code>extendedDynamicState3RasterizationStream</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetRasterizationStreamEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3RasterizationStream\"><code>extendedDynamicState3RasterizationStream</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411",
-          "text": " The <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-transformFeedback\"><code>transformFeedback</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412",
-          "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>"
+          "text": "<code>rasterizationStream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413",
-          "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be zero if <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackRasterizationStreamSelect</code> is <code>VK_FALSE</code>"
+          "text": "<code>rasterizationStream</code> <strong class=\"purple\">must</strong> be zero if <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackRasterizationStreamSelect</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationStreamEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationStateRasterizationOrderAMD": {
-      "(VK_AMD_rasterization_order)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter",
-          "text": " <code>rasterizationOrder</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRasterizationOrderAMD\">VkRasterizationOrderAMD</a> value"
+          "text": "<code>rasterizationOrder</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRasterizationOrderAMD\">VkRasterizationOrderAMD</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetRasterizationSamplesEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-extendedDynamicState3RasterizationSamples-07414",
-          "text": " The <a href=\"#features-extendedDynamicState3RasterizationSamples\"><code>extendedDynamicState3RasterizationSamples</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3RasterizationSamples\"><code>extendedDynamicState3RasterizationSamples</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameter",
-          "text": " <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRasterizationSamplesEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineSampleLocationsStateCreateInfoEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter",
-          "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
+          "text": "<code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkSampleLocationsInfoEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526",
-          "text": " <code>sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> be a bit value that is set in <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>sampleLocationSampleCounts</code>"
+          "text": "<code>sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>sampleLocationSampleCounts</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527",
-          "text": " <code>sampleLocationsCount</code> <strong class=\"purple\">must</strong> equal <span class=\"eq\"><code>sampleLocationsPerPixel</code> {times} <code>sampleLocationGridSize.width</code> {times} <code>sampleLocationGridSize.height</code></span>"
+          "text": "<code>sampleLocationsCount</code> <strong class=\"purple\">must</strong> equal <span class=\"eq\"><code>sampleLocationsPerPixel</code> × <code>sampleLocationGridSize.width</code> × <code>sampleLocationGridSize.height</code></span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter",
-          "text": " If <code>sampleLocationsCount</code> is not <code>0</code>, <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationsCount</code> <a href=\"#VkSampleLocationEXT\">VkSampleLocationEXT</a> structures"
+          "text": "If <code>sampleLocationsCount</code> is not <code>0</code>, <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationsCount</code> <a href=\"#VkSampleLocationEXT\">VkSampleLocationEXT</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetSampleLocationsEnableEXT": {
-      "(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-extendedDynamicState3SampleLocationsEnable-07415",
-          "text": " The <a href=\"#features-extendedDynamicState3SampleLocationsEnable\"><code>extendedDynamicState3SampleLocationsEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3SampleLocationsEnable\"><code>extendedDynamicState3SampleLocationsEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetSampleLocationsEXT": {
-      "(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529",
-          "text": " The <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
-        }
-      ],
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530",
-          "text": " If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code> then the current render pass <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the sample locations state pointed to by <code>pSampleLocationsInfo</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code> then the current render pass <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the sample locations state pointed to by <code>pSampleLocationsInfo</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter",
-          "text": " <code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
+          "text": "<code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleLocationsEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceFragmentShadingRatesKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameter",
-          "text": " <code>pFragmentShadingRateCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pFragmentShadingRateCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameter",
-          "text": " If the value referenced by <code>pFragmentShadingRateCount</code> is not <code>0</code>, and <code>pFragmentShadingRates</code> is not <code>NULL</code>, <code>pFragmentShadingRates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFragmentShadingRateCount</code> <a href=\"#VkPhysicalDeviceFragmentShadingRateKHR\">VkPhysicalDeviceFragmentShadingRateKHR</a> structures"
+          "text": "If the value referenced by <code>pFragmentShadingRateCount</code> is not <code>0</code>, and <code>pFragmentShadingRates</code> is not <code>NULL</code>, <code>pFragmentShadingRates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFragmentShadingRateCount</code> <a href=\"#VkPhysicalDeviceFragmentShadingRateKHR\">VkPhysicalDeviceFragmentShadingRateKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShadingRateKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineFragmentShadingRateStateCreateInfoKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetFragmentShadingRateKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507",
-          "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508",
-          "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509",
-          "text": " One of <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> be enabled"
+          "text": "One of <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510",
-          "text": " If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
+          "text": "If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512",
-          "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
+          "text": "If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513",
-          "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
+          "text": "<code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514",
-          "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
+          "text": "<code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515",
-          "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be a power-of-two value"
+          "text": "<code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be a power-of-two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516",
-          "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be a power-of-two value"
+          "text": "<code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be a power-of-two value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517",
-          "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
+          "text": "<code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518",
-          "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
+          "text": "<code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter",
-          "text": " <code>pFragmentSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
+          "text": "<code>pFragmentSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtent2D\">VkExtent2D</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter",
-          "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
+          "text": "Each element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineFragmentShadingRateEnumStateCreateInfoNV": {
-      "(VK_NV_fragment_shading_rate_enums)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetFragmentShadingRateEnumNV": {
-      "(VK_NV_fragment_shading_rate_enums)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576",
-          "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>"
+          "text": "If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577",
-          "text": " If <a href=\"#features-supersampleFragmentShadingRates\"><code>supersampleFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>"
+          "text": "If <a href=\"#features-supersampleFragmentShadingRates\"><code>supersampleFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578",
-          "text": " If <a href=\"#features-noInvocationFragmentShadingRates\"><code>noInvocationFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>"
+          "text": "If <a href=\"#features-noInvocationFragmentShadingRates\"><code>noInvocationFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579",
-          "text": " The <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580",
-          "text": " One of the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> features <strong class=\"purple\">must</strong> be enabled"
+          "text": "One of the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> features <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581",
-          "text": " If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
+          "text": "If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582",
-          "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
+          "text": "If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> feature is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583",
-          "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
+          "text": "If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter",
-          "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value"
+          "text": "<code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter",
-          "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
+          "text": "Each element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportShadingRateImageStateCreateInfoNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056",
-          "text": " If <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>"
+          "text": "If <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindShadingRateImageNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058",
-          "text": " The <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time the subresource is accessed"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time the subresource is accessed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetShadingRateImageEnableNV": {
-      "(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-extendedDynamicState3ShadingRateImageEnable-07416",
-          "text": " The <a href=\"#features-extendedDynamicState3ShadingRateImageEnable\"><code>extendedDynamicState3ShadingRateImageEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ShadingRateImageEnable\"><code>extendedDynamicState3ShadingRateImageEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetShadingRateImageEnableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetViewportShadingRatePaletteNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064",
-          "text": " The <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067",
-          "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter",
-          "text": " <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures"
+          "text": "<code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength",
-          "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkShadingRatePaletteNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071",
-          "text": " <code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRatePaletteSize</code>, inclusive"
+          "text": "<code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRatePaletteSize</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter",
-          "text": " <code>pShadingRatePaletteEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shadingRatePaletteEntryCount</code> valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> values"
+          "text": "<code>pShadingRatePaletteEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shadingRatePaletteEntryCount</code> valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength",
-          "text": " <code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072",
-          "text": " If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234",
-          "text": " The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members"
+          "text": "The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter",
-          "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value"
+          "text": "<code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter",
-          "text": " If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures"
+          "text": "If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkCoarseSampleOrderCustomNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073",
-          "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a shading rate that generates fragments with more than one pixel"
+          "text": "<code>shadingRate</code> <strong class=\"purple\">must</strong> be a shading rate that generates fragments with more than one pixel",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074",
-          "text": " <code>sampleCount</code> <strong class=\"purple\">must</strong> correspond to a sample count enumerated in <a href=\"#VkSampleCountFlags\">VkSampleCountFlags</a> whose corresponding bit is set in <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>framebufferNoAttachmentsSampleCounts</code>"
+          "text": "<code>sampleCount</code> <strong class=\"purple\">must</strong> correspond to a sample count enumerated in <a href=\"#VkSampleCountFlags\">VkSampleCountFlags</a> whose corresponding bit is set in <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>framebufferNoAttachmentsSampleCounts</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075",
-          "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be equal to the product of <code>sampleCount</code>, the fragment width for <code>shadingRate</code>, and the fragment height for <code>shadingRate</code>"
+          "text": "<code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be equal to the product of <code>sampleCount</code>, the fragment width for <code>shadingRate</code>, and the fragment height for <code>shadingRate</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076",
-          "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value of <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRateMaxCoarseSamples</code>"
+          "text": "<code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value of <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRateMaxCoarseSamples</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077",
-          "text": " The array <code>pSampleLocations</code> <strong class=\"purple\">must</strong> contain exactly one entry for every combination of valid values for <code>pixelX</code>, <code>pixelY</code>, and <code>sample</code> in the structure <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a>"
+          "text": "The array <code>pSampleLocations</code> <strong class=\"purple\">must</strong> contain exactly one entry for every combination of valid values for <code>pixelX</code>, <code>pixelY</code>, and <code>sample</code> in the structure <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter",
-          "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> value"
+          "text": "<code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter",
-          "text": " <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationCount</code> <a href=\"#VkCoarseSampleLocationNV\">VkCoarseSampleLocationNV</a> structures"
+          "text": "<code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationCount</code> <a href=\"#VkCoarseSampleLocationNV\">VkCoarseSampleLocationNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength",
-          "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkCoarseSampleLocationNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078",
-          "text": " <code>pixelX</code> <strong class=\"purple\">must</strong> be less than the width (in pixels) of the fragment"
+          "text": "<code>pixelX</code> <strong class=\"purple\">must</strong> be less than the width (in pixels) of the fragment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079",
-          "text": " <code>pixelY</code> <strong class=\"purple\">must</strong> be less than the height (in pixels) of the fragment"
+          "text": "<code>pixelY</code> <strong class=\"purple\">must</strong> be less than the height (in pixels) of the fragment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080",
-          "text": " <code>sample</code> <strong class=\"purple\">must</strong> be less than the number of coverage samples in each pixel belonging to the fragment"
+          "text": "<code>sample</code> <strong class=\"purple\">must</strong> be less than the number of coverage samples in each pixel belonging to the fragment",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoarseSampleOrderNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081",
-          "text": " If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235",
-          "text": " The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members"
+          "text": "The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter",
-          "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value"
+          "text": "<code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter",
-          "text": " If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures"
+          "text": "If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationLineStateCreateInfoEXT": {
-      "(VK_EXT_line_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-rectangularLines\"><code>rectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-rectangularLines\"><code>rectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-bresenhamLines\"><code>bresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-bresenhamLines\"><code>bresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-smoothLines\"><code>smoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-smoothLines\"><code>smoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771",
-          "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772",
-          "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773",
-          "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774",
-          "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter",
-          "text": " <code>lineRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLineRasterizationModeEXT\">VkLineRasterizationModeEXT</a> value"
+          "text": "<code>lineRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLineRasterizationModeEXT\">VkLineRasterizationModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetLineRasterizationModeEXT": {
-      "(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-extendedDynamicState3LineRasterizationMode-07417",
-          "text": " The <a href=\"#features-extendedDynamicState3LineRasterizationMode\"><code>extendedDynamicState3LineRasterizationMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3LineRasterizationMode\"><code>extendedDynamicState3LineRasterizationMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-rectangularLines\"><code>rectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-rectangularLines\"><code>rectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-bresenhamLines\"><code>bresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-bresenhamLines\"><code>bresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420",
-          "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-smoothLines\"><code>smoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-smoothLines\"><code>smoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameter",
-          "text": " <code>lineRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLineRasterizationModeEXT\">VkLineRasterizationModeEXT</a> value"
+          "text": "<code>lineRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLineRasterizationModeEXT\">VkLineRasterizationModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineRasterizationModeEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetLineStippleEnableEXT": {
-      "(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetLineStippleEnableEXT-extendedDynamicState3LineStippleEnable-07421",
-          "text": " The <a href=\"#features-extendedDynamicState3LineStippleEnable\"><code>extendedDynamicState3LineStippleEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetLineStippleEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3LineStippleEnable\"><code>extendedDynamicState3LineStippleEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -48556,177 +74228,198 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788",
-          "text": " If the <a href=\"#features-wideLines\"><code>wideLines</code></a> feature is not enabled, <code>lineWidth</code> <strong class=\"purple\">must</strong> be <code>1.0</code>"
+          "text": "If the <a href=\"#features-wideLines\"><code>wideLines</code></a> feature is not enabled, <code>lineWidth</code> <strong class=\"purple\">must</strong> be <code>1.0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineWidth-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetLineStippleEXT": {
-      "(VK_EXT_line_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776",
-          "text": " <code>lineStippleFactor</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>"
+          "text": "<code>lineStippleFactor</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLineStippleEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetFrontFace": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetFrontFace-None-03383",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetFrontFace-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFrontFace-frontFace-parameter",
-          "text": " <code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value"
+          "text": "<code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetFrontFace-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCullMode": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCullMode-None-03384",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetCullMode-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetCullMode-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCullMode-cullMode-parameter",
-          "text": " <code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values"
+          "text": "<code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCullMode-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCullMode-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCullMode-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetPolygonModeEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-extendedDynamicState3PolygonMode-07422",
-          "text": " The <a href=\"#features-extendedDynamicState3PolygonMode\"><code>extendedDynamicState3PolygonMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3PolygonMode\"><code>extendedDynamicState3PolygonMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter",
-          "text": " <code>polygonMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPolygonMode\">VkPolygonMode</a> value"
-        },
-        {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+!(VK_NV_fill_rectangle)": [
-        {
-          "vuid": "VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07423",
-          "text": " If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_NV_fill_rectangle)": [
-        {
           "vuid": "VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424",
-          "text": " If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code> or <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
+          "text": "If the <a href=\"#features-fillModeNonSolid\"><code>fillModeNonSolid</code></a> feature is     not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code> or <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetPolygonModeEXT-polygonMode-07425",
-          "text": " If the <code><a href=\"#VK_NV_fill_rectangle\">VK_NV_fill_rectangle</a></code> extension is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
+          "text": "If the <code><a href=\"#VK_NV_fill_rectangle\">VK_NV_fill_rectangle</a></code> extension is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter",
+          "text": "<code>polygonMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPolygonMode\">VkPolygonMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetPolygonModeEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthBiasEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthBiasEnable-None-04872",
-          "text": " The <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "vuid": "VUID-vkCmdSetDepthBiasEnable-None-08970",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState2\"><code>extendedDynamicState2</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBiasEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -48734,169 +74427,348 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790",
-          "text": " If the <a href=\"#features-depthBiasClamp\"><code>depthBiasClamp</code></a> feature is not enabled, <code>depthBiasClamp</code> <strong class=\"purple\">must</strong> be <code>0.0</code>"
+          "text": "If the <a href=\"#features-depthBiasClamp\"><code>depthBiasClamp</code></a> feature is not enabled, <code>depthBiasClamp</code> <strong class=\"purple\">must</strong> be <code>0.0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBias-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkDepthBiasRepresentationInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947",
+          "text": "If the <a href=\"#features-leastRepresentableValueForceUnormRepresentation\"><code>leastRepresentableValueForceUnormRepresentation</code></a> feature is not enabled, <code>depthBiasRepresentation</code> <strong class=\"purple\">must</strong> not be <code>VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948",
+          "text": "If the <a href=\"#features-floatRepresentation\"><code>floatRepresentation</code></a> feature is not enabled, <code>depthBiasRepresentation</code> <strong class=\"purple\">must</strong> not be <code>VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949",
+          "text": "If the <a href=\"#features-depthBiasExact\"><code>depthBiasExact</code></a> feature is not enabled, <code>depthBiasExact</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameter",
+          "text": "<code>depthBiasRepresentation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDepthBiasRepresentationEXT\">VkDepthBiasRepresentationEXT</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkDepthBiasInfoEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950",
+          "text": "If the <a href=\"#features-depthBiasClamp\"><code>depthBiasClamp</code></a> feature is not enabled, <code>depthBiasClamp</code> <strong class=\"purple\">must</strong> be <code>0.0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasInfoEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasInfoEXT-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDepthBiasRepresentationInfoEXT\">VkDepthBiasRepresentationInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDepthBiasInfoEXT-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdSetDepthBias2EXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameter",
+          "text": "<code>pDepthBiasInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDepthBiasInfoEXT\">VkDepthBiasInfoEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDepthBias2EXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRasterizationConservativeStateCreateInfoEXT": {
-      "(VK_EXT_conservative_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769",
-          "text": " <code>extraPrimitiveOverestimationSize</code> <strong class=\"purple\">must</strong> be in the range of <code>0.0</code> to <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>maxExtraPrimitiveOverestimationSize</code> inclusive"
+          "text": "<code>extraPrimitiveOverestimationSize</code> <strong class=\"purple\">must</strong> be in the range of <code>0.0</code> to <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>maxExtraPrimitiveOverestimationSize</code> inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter",
-          "text": " <code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkConservativeRasterizationModeEXT\">VkConservativeRasterizationModeEXT</a> value"
+          "text": "<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkConservativeRasterizationModeEXT\">VkConservativeRasterizationModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetConservativeRasterizationModeEXT": {
-      "(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-extendedDynamicState3ConservativeRasterizationMode-07426",
-          "text": " The <a href=\"#features-extendedDynamicState3ConservativeRasterizationMode\"><code>extendedDynamicState3ConservativeRasterizationMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ConservativeRasterizationMode\"><code>extendedDynamicState3ConservativeRasterizationMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameter",
-          "text": " <code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkConservativeRasterizationModeEXT\">VkConservativeRasterizationModeEXT</a> value"
+          "text": "<code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkConservativeRasterizationModeEXT\">VkConservativeRasterizationModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetConservativeRasterizationModeEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetExtraPrimitiveOverestimationSizeEXT": {
-      "(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extendedDynamicState3ExtraPrimitiveOverestimationSize-07427",
-          "text": " The <a href=\"#features-extendedDynamicState3ExtraPrimitiveOverestimationSize\"><code>extendedDynamicState3ExtraPrimitiveOverestimationSize</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ExtraPrimitiveOverestimationSize\"><code>extendedDynamicState3ExtraPrimitiveOverestimationSize</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428",
-          "text": " <code>extraPrimitiveOverestimationSize</code> <strong class=\"purple\">must</strong> be in the range of <code>0.0</code> to <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>maxExtraPrimitiveOverestimationSize</code> inclusive"
+          "text": "<code>extraPrimitiveOverestimationSize</code> <strong class=\"purple\">must</strong> be in the range of <code>0.0</code> to <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>maxExtraPrimitiveOverestimationSize</code> inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineDiscardRectangleStateCreateInfoEXT": {
-      "(VK_EXT_discard_rectangles)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582",
-          "text": " <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDiscardRectanglePropertiesEXT</code>::<code>maxDiscardRectangles</code>"
+          "text": "<code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDiscardRectanglePropertiesEXT</code>::<code>maxDiscardRectangles</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter",
-          "text": " <code>discardRectangleMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDiscardRectangleModeEXT\">VkDiscardRectangleModeEXT</a> value"
+          "text": "<code>discardRectangleMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDiscardRectangleModeEXT\">VkDiscardRectangleModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDiscardRectangleEXT": {
-      "(VK_EXT_discard_rectangles)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585",
-          "text": " The sum of <code>firstDiscardRectangle</code> and <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>::<code>maxDiscardRectangles</code>"
+          "text": "The sum of <code>firstDiscardRectangle</code> and <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>::<code>maxDiscardRectangles</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587",
-          "text": " The <code>x</code> and <code>y</code> member of <code>offset</code> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
+          "text": "The <code>x</code> and <code>y</code> member of <code>offset</code> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.x</code> +  <code>extent.width</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.y</code> +  <code>extent.height</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788",
+          "text": "If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter",
-          "text": " <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "<code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength",
-          "text": " <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_EXT_discard_rectangles)+(VK_NV_inherited_viewport_scissor)": [
+      ]
+    },
+    "vkCmdSetDiscardRectangleEnableEXT": {
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788",
-          "text": " If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called"
+          "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-specVersion-07851",
+          "text": "The <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension <strong class=\"purple\">must</strong> be enabled, and the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of this extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleEnableEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdSetDiscardRectangleModeEXT": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-specVersion-07852",
+          "text": "The <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension <strong class=\"purple\">must</strong> be enabled, and the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of this extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-discardRectangleMode-parameter",
+          "text": "<code>discardRectangleMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDiscardRectangleModeEXT\">VkDiscardRectangleModeEXT</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetDiscardRectangleModeEXT-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -48904,217 +74776,302 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetScissor-firstScissor-00592",
-          "text": " The sum of <code>firstScissor</code> and <code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "The sum of <code>firstScissor</code> and <code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-firstScissor-00593",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-scissorCount-00594",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-x-00595",
-          "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
+          "text": "The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-offset-00596",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.x</code> +  <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-offset-00597",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.y</code> +  <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetScissor-viewportScissor2D-04789",
+          "text": "If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-pScissors-parameter",
-          "text": " <code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "<code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength",
-          "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        }
-      ],
-      "(VK_NV_inherited_viewport_scissor)": [
-        {
-          "vuid": "VUID-vkCmdSetScissor-viewportScissor2D-04789",
-          "text": " If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called"
+          "text": "<code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineViewportExclusiveScissorStateCreateInfoNV": {
-      "(VK_NV_scissor_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028",
-          "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
+          "text": "<code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029",
-          "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or greater than or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>"
+          "text": "<code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or greater than or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetExclusiveScissorNV": {
-      "(VK_NV_scissor_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031",
-          "text": " The <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034",
-          "text": " The sum of <code>firstExclusiveScissor</code> and <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
+          "text": "The sum of <code>firstExclusiveScissor</code> and <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstExclusiveScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>firstExclusiveScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036",
-          "text": " If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If the <a href=\"#features-multiViewport\"><code>multiViewport</code></a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037",
-          "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> in each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
+          "text": "The <code>x</code> and <code>y</code> members of <code>offset</code> in each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.x</code> +  <code>extent.width</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039",
-          "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
+          "text": "Evaluation of <span class=\"eq\">(<code>offset.y</code> +  <code>extent.height</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter",
-          "text": " <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "<code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength",
-          "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdSetExclusiveScissorEnableNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissor-07853",
+          "text": "The <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature <strong class=\"purple\">must</strong> be enabled, and the implementation <strong class=\"purple\">must</strong> support at least <code>specVersion</code> <code>2</code> of the <code><a href=\"#VK_NV_scissor_exclusive\">VK_NV_scissor_exclusive</a></code> extension",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-pExclusiveScissorEnables-parameter",
+          "text": "<code>pExclusiveScissorEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkBool32\">VkBool32</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissorCount-arraylength",
+          "text": "<code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetSampleMaskEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetSampleMaskEXT-extendedDynamicState3SampleMask-07342",
-          "text": " The <a href=\"#features-extendedDynamicState3SampleMask\"><code>extendedDynamicState3SampleMask</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetSampleMaskEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3SampleMask\"><code>extendedDynamicState3SampleMask</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameter",
-          "text": " <code>pSampleMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\lceil{\\mathit{samples} \\over 32}\\rceil\\) <a href=\"#VkSampleMask\">VkSampleMask</a> values"
+          "text": "<code>pSampleMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\lceil{\\mathit{samples} \\over 32}\\rceil\\) <a href=\"#VkSampleMask\">VkSampleMask</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetSampleMaskEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetAlphaToCoverageEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-extendedDynamicState3AlphaToCoverageEnable-07343",
-          "text": " The <a href=\"#features-extendedDynamicState3AlphaToCoverageEnable\"><code>extendedDynamicState3AlphaToCoverageEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3AlphaToCoverageEnable\"><code>extendedDynamicState3AlphaToCoverageEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToCoverageEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetAlphaToOneEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-extendedDynamicState3AlphaToOneEnable-07345",
-          "text": " The <a href=\"#features-extendedDynamicState3AlphaToOneEnable\"><code>extendedDynamicState3AlphaToOneEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3AlphaToOneEnable\"><code>extendedDynamicState3AlphaToOneEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607",
-          "text": " If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetAlphaToOneEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -49122,189 +75079,204 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598",
-          "text": " If the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is not enabled, <code>depthBoundsTestEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is not enabled, <code>depthBoundsTestEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineDepthStencilStateCreateFlagBits\">VkPipelineDepthStencilStateCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter",
-          "text": " <code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter",
-          "text": " <code>front</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure"
-        },
-        {
-          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter",
-          "text": " <code>back</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
-        {
           "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>separateStencilMaskRef</code> is <code>VK_FALSE</code>, and the value of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a>::<code>stencilTestEnable</code> is <code>VK_TRUE</code>, and the value of <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a>::<code>cullMode</code> is <code>VK_CULL_MODE_NONE</code>, the value of <code>reference</code> in each of the <a href=\"#VkStencilOpState\">VkStencilOpState</a> structs in <code>front</code> and <code>back</code> <strong class=\"purple\">must</strong> be the same"
-        }
-      ],
-      "(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)": [
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>separateStencilMaskRef</code> is <code>VK_FALSE</code>, and the value of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a>::<code>stencilTestEnable</code> is <code>VK_TRUE</code>, and the value of <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a>::<code>cullMode</code> is <code>VK_CULL_MODE_NONE</code>, the value of <code>reference</code> in each of the <a href=\"#VkStencilOpState\">VkStencilOpState</a> structs in <code>front</code> and <code>back</code> <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463",
-          "text": " If the <a href=\"#features-rasterizationOrderDepthAttachmentAccess\"><code>rasterizationOrderDepthAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-rasterizationOrderDepthAttachmentAccess\"><code>rasterizationOrderDepthAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464",
-          "text": " If the <a href=\"#features-rasterizationOrderStencilAttachmentAccess\"><code>rasterizationOrderStencilAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>"
+          "text": "If the <a href=\"#features-rasterizationOrderStencilAttachmentAccess\"><code>rasterizationOrderStencilAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineDepthStencilStateCreateFlagBits\">VkPipelineDepthStencilStateCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter",
+          "text": "<code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter",
+          "text": "<code>front</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter",
+          "text": "<code>back</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthBoundsTestEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-None-03349",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthBounds": {
-      "(VK_EXT_depth_range_unrestricted)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600",
-          "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+          "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601",
-          "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "!(VK_EXT_depth_range_unrestricted)": [
-        {
-          "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-02508",
-          "text": " <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+          "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-02509",
-          "text": " <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
-        }
-      ],
-      "core": [
-        {
           "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthBounds-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetStencilTestEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetStencilTestEnable-None-03350",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetStencilTestEnable-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilTestEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetStencilOp": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetStencilOp-None-03351",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetStencilOp-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-faceMask-parameter",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-faceMask-requiredbitmask",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-failOp-parameter",
-          "text": " <code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-passOp-parameter",
-          "text": " <code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-depthFailOp-parameter",
-          "text": " <code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-compareOp-parameter",
-          "text": " <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
+          "text": "<code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilOp-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -49312,19 +75284,23 @@
       "core": [
         {
           "vuid": "VUID-VkStencilOpState-failOp-parameter",
-          "text": " <code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStencilOpState-passOp-parameter",
-          "text": " <code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStencilOpState-depthFailOp-parameter",
-          "text": " <code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
+          "text": "<code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStencilOpState-compareOp-parameter",
-          "text": " <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
+          "text": "<code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value",
+          "page": "vkspec"
         }
       ]
     },
@@ -49332,27 +75308,33 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilCompareMask-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -49360,27 +75342,33 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilWriteMask-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -49388,381 +75376,452 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask",
-          "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetStencilReference-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthTestEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthTestEnable-None-03352",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetDepthTestEnable-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthTestEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthCompareOp": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthCompareOp-None-03353",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetDepthCompareOp-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter",
-          "text": " <code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
+          "text": "<code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthCompareOp-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetDepthWriteEnable": {
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetDepthWriteEnable-None-03354",
-          "text": " The <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "vuid": "VUID-vkCmdSetDepthWriteEnable-None-08971",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <a href=\"#features-extendedDynamicState\"><code>extendedDynamicState</code></a>\nfeature is enabled</p>\n</li>\n<li>\n<p>the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n<li>\n<p>the value of <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>apiVersion</code> used to create\nthe <a href=\"#VkInstance\">VkInstance</a> parent of <code>commandBuffer</code> is greater than or\nequal to Version 1.3</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetDepthWriteEnable-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": {
-      "(VK_NV_representative_fragment_test)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetRepresentativeFragmentTestEnableNV": {
-      "(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-extendedDynamicState3RepresentativeFragmentTestEnable-07346",
-          "text": " The <a href=\"#features-extendedDynamicState3RepresentativeFragmentTestEnable\"><code>extendedDynamicState3RepresentativeFragmentTestEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3RepresentativeFragmentTestEnable\"><code>extendedDynamicState3RepresentativeFragmentTestEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineCoverageToColorStateCreateInfoNV": {
-      "(VK_NV_fragment_coverage_to_color)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404",
-          "text": " If <code>coverageToColorEnable</code> is <code>VK_TRUE</code>, then the render pass subpass indicated by <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> and <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>subpass</code> <strong class=\"purple\">must</strong> have a color attachment at the location selected by <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
+          "text": "If <code>coverageToColorEnable</code> is <code>VK_TRUE</code>, then the render pass subpass indicated by <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> and <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>subpass</code> <strong class=\"purple\">must</strong> have a color attachment at the location selected by <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageToColorEnableNV": {
-      "(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-extendedDynamicState3CoverageToColorEnable-07347",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageToColorEnable\"><code>extendedDynamicState3CoverageToColorEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageToColorEnable\"><code>extendedDynamicState3CoverageToColorEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorEnableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageToColorLocationNV": {
-      "(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-extendedDynamicState3CoverageToColorLocation-07348",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageToColorLocation\"><code>extendedDynamicState3CoverageToColorLocation</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageToColorLocation\"><code>extendedDynamicState3CoverageToColorLocation</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageToColorLocationNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineCoverageReductionStateCreateInfoNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter",
-          "text": " <code>coverageReductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageReductionModeNV\">VkCoverageReductionModeNV</a> value"
+          "text": "<code>coverageReductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageReductionModeNV\">VkCoverageReductionModeNV</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageReductionModeNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageReductionModeNV-extendedDynamicState3CoverageReductionMode-07349",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageReductionMode\"><code>extendedDynamicState3CoverageReductionMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageReductionModeNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageReductionMode\"><code>extendedDynamicState3CoverageReductionMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameter",
-          "text": " <code>coverageReductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageReductionModeNV\">VkCoverageReductionModeNV</a> value"
+          "text": "<code>coverageReductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageReductionModeNV\">VkCoverageReductionModeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageReductionModeNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter",
-          "text": " <code>pCombinationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pCombinationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter",
-          "text": " If the value referenced by <code>pCombinationCount</code> is not <code>0</code>, and <code>pCombinations</code> is not <code>NULL</code>, <code>pCombinations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCombinationCount</code> <a href=\"#VkFramebufferMixedSamplesCombinationNV\">VkFramebufferMixedSamplesCombinationNV</a> structures"
+          "text": "If the value referenced by <code>pCombinationCount</code> is not <code>0</code>, and <code>pCombinations</code> is not <code>NULL</code>, <code>pCombinations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCombinationCount</code> <a href=\"#VkFramebufferMixedSamplesCombinationNV\">VkFramebufferMixedSamplesCombinationNV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkFramebufferMixedSamplesCombinationNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
+      "core": [
         {
           "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineCoverageModulationStateCreateInfoNV": {
-      "(VK_NV_framebuffer_mixed_samples)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405",
-          "text": " If <code>coverageModulationTableEnable</code> is <code>VK_TRUE</code>, <code>coverageModulationTableCount</code> <strong class=\"purple\">must</strong> be equal to the number of rasterization samples divided by the number of color samples in the subpass"
+          "text": "If <code>coverageModulationTableEnable</code> is <code>VK_TRUE</code>, <code>coverageModulationTableCount</code> <strong class=\"purple\">must</strong> be equal to the number of rasterization samples divided by the number of color samples in the subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter",
-          "text": " <code>coverageModulationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageModulationModeNV\">VkCoverageModulationModeNV</a> value"
+          "text": "<code>coverageModulationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageModulationModeNV\">VkCoverageModulationModeNV</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageModulationModeNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageModulationModeNV-extendedDynamicState3CoverageModulationMode-07350",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageModulationMode\"><code>extendedDynamicState3CoverageModulationMode</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageModulationModeNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageModulationMode\"><code>extendedDynamicState3CoverageModulationMode</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameter",
-          "text": " <code>coverageModulationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageModulationModeNV\">VkCoverageModulationModeNV</a> value"
+          "text": "<code>coverageModulationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageModulationModeNV\">VkCoverageModulationModeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationModeNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageModulationTableEnableNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-extendedDynamicState3CoverageModulationTableEnable-07351",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageModulationTableEnable\"><code>extendedDynamicState3CoverageModulationTableEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageModulationTableEnable\"><code>extendedDynamicState3CoverageModulationTableEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableEnableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCoverageModulationTableNV": {
-      "(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetCoverageModulationTableNV-extendedDynamicState3CoverageModulationTable-07352",
-          "text": " The <a href=\"#features-extendedDynamicState3CoverageModulationTable\"><code>extendedDynamicState3CoverageModulationTable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetCoverageModulationTableNV-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3CoverageModulationTable\"><code>extendedDynamicState3CoverageModulationTable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameter",
-          "text": " <code>pCoverageModulationTable</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>coverageModulationTableCount</code> <code>float</code> values"
+          "text": "<code>pCoverageModulationTable</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>coverageModulationTableCount</code> <code>float</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylength",
-          "text": " <code>coverageModulationTableCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>coverageModulationTableCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -49770,59 +75829,53 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605",
-          "text": " If the <a href=\"#features-independentBlend\"><code>independentBlend</code></a> feature is not enabled, all elements of <code>pAttachments</code> <strong class=\"purple\">must</strong> be identical"
+          "text": "If the <a href=\"#features-independentBlend\"><code>independentBlend</code></a> feature is not enabled, all elements of <code>pAttachments</code> <strong class=\"purple\">must</strong> be identical",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606",
-          "text": " If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607",
-          "text": " If <code>logicOpEnable</code> is <code>VK_TRUE</code>, <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
+          "text": "If <code>logicOpEnable</code> is <code>VK_TRUE</code>, <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465",
+          "text": "If the <a href=\"#features-rasterizationOrderColorAttachmentAccess\"><code>rasterizationOrderColorAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353",
+          "text": "If <code>attachmentCount</code> is not <code>0</code> , and any of <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, or <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> are not set, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineColorBlendAdvancedStateCreateInfoEXT\">VkPipelineColorBlendAdvancedStateCreateInfoEXT</a> or <a href=\"#VkPipelineColorWriteCreateInfoEXT\">VkPipelineColorWriteCreateInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineColorBlendAdvancedStateCreateInfoEXT\">VkPipelineColorBlendAdvancedStateCreateInfoEXT</a> or <a href=\"#VkPipelineColorWriteCreateInfoEXT\">VkPipelineColorWriteCreateInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineColorBlendStateCreateFlagBits\">VkPipelineColorBlendStateCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineColorBlendStateCreateFlagBits\">VkPipelineColorBlendStateCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, and <code>pAttachments</code> is not <code>NULL</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures"
-        }
-      ],
-      "(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)": [
-        {
-          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465",
-          "text": " If the <a href=\"#features-rasterizationOrderColorAttachmentAccess\"><code>rasterizationOrderColorAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, and any of <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, or <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> are not set, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures"
-        }
-      ],
-      "!(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07354",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures"
-        }
-      ],
-      "(VK_ARM_rasterization_order_attachment_access)": [
-        {
-          "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465",
-          "text": " If the <a href=\"#features-rasterizationOrderColorAttachmentAccess\"><code>rasterizationOrderColorAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM</code>"
+          "text": "If <code>attachmentCount</code> is not <code>0</code>, and <code>pAttachments</code> is not <code>NULL</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -49830,235 +75883,279 @@
       "core": [
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter",
-          "text": " <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter",
-          "text": " <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter",
-          "text": " <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter",
-          "text": " <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter",
-          "text": " <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter",
-          "text": " <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter",
-          "text": " <code>colorWriteMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkColorComponentFlagBits\">VkColorComponentFlagBits</a> values"
-        }
-      ],
-      "(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406",
-          "text": " If either of <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> equal <code>alphaBlendOp</code>"
+          "text": "If either of <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> equal <code>alphaBlendOp</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407",
-          "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>colorBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments"
+          "text": "If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>colorBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408",
-          "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments"
+          "text": "If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409",
-          "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendAllOperations</code> is <code>VK_FALSE</code>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_OP_ZERO_EXT</code>, <code>VK_BLEND_OP_SRC_EXT</code>, <code>VK_BLEND_OP_DST_EXT</code>, <code>VK_BLEND_OP_SRC_OVER_EXT</code>, <code>VK_BLEND_OP_DST_OVER_EXT</code>, <code>VK_BLEND_OP_SRC_IN_EXT</code>, <code>VK_BLEND_OP_DST_IN_EXT</code>, <code>VK_BLEND_OP_SRC_OUT_EXT</code>, <code>VK_BLEND_OP_DST_OUT_EXT</code>, <code>VK_BLEND_OP_SRC_ATOP_EXT</code>, <code>VK_BLEND_OP_DST_ATOP_EXT</code>, <code>VK_BLEND_OP_XOR_EXT</code>, <code>VK_BLEND_OP_INVERT_EXT</code>, <code>VK_BLEND_OP_INVERT_RGB_EXT</code>, <code>VK_BLEND_OP_LINEARDODGE_EXT</code>, <code>VK_BLEND_OP_LINEARBURN_EXT</code>, <code>VK_BLEND_OP_VIVIDLIGHT_EXT</code>, <code>VK_BLEND_OP_LINEARLIGHT_EXT</code>, <code>VK_BLEND_OP_PINLIGHT_EXT</code>, <code>VK_BLEND_OP_HARDMIX_EXT</code>, <code>VK_BLEND_OP_PLUS_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT</code>, <code>VK_BLEND_OP_PLUS_DARKER_EXT</code>, <code>VK_BLEND_OP_MINUS_EXT</code>, <code>VK_BLEND_OP_MINUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_CONTRAST_EXT</code>, <code>VK_BLEND_OP_INVERT_OVG_EXT</code>, <code>VK_BLEND_OP_RED_EXT</code>, <code>VK_BLEND_OP_GREEN_EXT</code>, or <code>VK_BLEND_OP_BLUE_EXT</code>"
+          "text": "If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendAllOperations</code> is <code>VK_FALSE</code>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_OP_ZERO_EXT</code>, <code>VK_BLEND_OP_SRC_EXT</code>, <code>VK_BLEND_OP_DST_EXT</code>, <code>VK_BLEND_OP_SRC_OVER_EXT</code>, <code>VK_BLEND_OP_DST_OVER_EXT</code>, <code>VK_BLEND_OP_SRC_IN_EXT</code>, <code>VK_BLEND_OP_DST_IN_EXT</code>, <code>VK_BLEND_OP_SRC_OUT_EXT</code>, <code>VK_BLEND_OP_DST_OUT_EXT</code>, <code>VK_BLEND_OP_SRC_ATOP_EXT</code>, <code>VK_BLEND_OP_DST_ATOP_EXT</code>, <code>VK_BLEND_OP_XOR_EXT</code>, <code>VK_BLEND_OP_INVERT_EXT</code>, <code>VK_BLEND_OP_INVERT_RGB_EXT</code>, <code>VK_BLEND_OP_LINEARDODGE_EXT</code>, <code>VK_BLEND_OP_LINEARBURN_EXT</code>, <code>VK_BLEND_OP_VIVIDLIGHT_EXT</code>, <code>VK_BLEND_OP_LINEARLIGHT_EXT</code>, <code>VK_BLEND_OP_PINLIGHT_EXT</code>, <code>VK_BLEND_OP_HARDMIX_EXT</code>, <code>VK_BLEND_OP_PLUS_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT</code>, <code>VK_BLEND_OP_PLUS_DARKER_EXT</code>, <code>VK_BLEND_OP_MINUS_EXT</code>, <code>VK_BLEND_OP_MINUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_CONTRAST_EXT</code>, <code>VK_BLEND_OP_INVERT_OVG_EXT</code>, <code>VK_BLEND_OP_RED_EXT</code>, <code>VK_BLEND_OP_GREEN_EXT</code>, or <code>VK_BLEND_OP_BLUE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410",
-          "text": " If <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorAttachmentCount</code> of the subpass this pipeline is compiled against <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendMaxColorAttachments</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "If <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorAttachmentCount</code> of the subpass this pipeline is compiled against <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendMaxColorAttachments</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter",
+          "text": "<code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter",
+          "text": "<code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter",
+          "text": "<code>colorBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter",
+          "text": "<code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter",
+          "text": "<code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter",
+          "text": "<code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter",
+          "text": "<code>colorWriteMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkColorComponentFlagBits\">VkColorComponentFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetColorBlendEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetColorBlendEnableEXT-extendedDynamicState3ColorBlendEnable-07355",
-          "text": " The <a href=\"#features-extendedDynamicState3ColorBlendEnable\"><code>extendedDynamicState3ColorBlendEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetColorBlendEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ColorBlendEnable\"><code>extendedDynamicState3ColorBlendEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameter",
-          "text": " <code>pColorBlendEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values"
+          "text": "<code>pColorBlendEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetColorBlendEquationEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetColorBlendEquationEXT-extendedDynamicState3ColorBlendEquation-07356",
-          "text": " The <a href=\"#features-extendedDynamicState3ColorBlendEquation\"><code>extendedDynamicState3ColorBlendEquation</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetColorBlendEquationEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ColorBlendEquation\"><code>extendedDynamicState3ColorBlendEquation</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameter",
-          "text": " <code>pColorBlendEquations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkColorBlendEquationEXT\">VkColorBlendEquationEXT</a> structures"
+          "text": "<code>pColorBlendEquations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkColorBlendEquationEXT\">VkColorBlendEquationEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkColorBlendEquationEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
           "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07357",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07358",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07359",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendEquationEXT-dualSrcBlend-07360",
-          "text": " If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
+          "text": "If the <a href=\"#features-dualSrcBlend\"><code>dualSrcBlend</code></a> feature is not enabled, <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter",
-          "text": " <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter",
-          "text": " <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkColorBlendEquationEXT-colorBlendOp-parameter",
-          "text": " <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
-        },
-        {
-          "vuid": "VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter",
-          "text": " <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter",
-          "text": " <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
-        },
-        {
-          "vuid": "VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter",
-          "text": " <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-VkColorBlendEquationEXT-colorBlendOp-07361",
-          "text": " <code>colorBlendOp</code> and <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_OP_ZERO_EXT</code>, <code>VK_BLEND_OP_SRC_EXT</code>, <code>VK_BLEND_OP_DST_EXT</code>, <code>VK_BLEND_OP_SRC_OVER_EXT</code>, <code>VK_BLEND_OP_DST_OVER_EXT</code>, <code>VK_BLEND_OP_SRC_IN_EXT</code>, <code>VK_BLEND_OP_DST_IN_EXT</code>, <code>VK_BLEND_OP_SRC_OUT_EXT</code>, <code>VK_BLEND_OP_DST_OUT_EXT</code>, <code>VK_BLEND_OP_SRC_ATOP_EXT</code>, <code>VK_BLEND_OP_DST_ATOP_EXT</code>, <code>VK_BLEND_OP_XOR_EXT</code>, <code>VK_BLEND_OP_INVERT_EXT</code>, <code>VK_BLEND_OP_INVERT_RGB_EXT</code>, <code>VK_BLEND_OP_LINEARDODGE_EXT</code>, <code>VK_BLEND_OP_LINEARBURN_EXT</code>, <code>VK_BLEND_OP_VIVIDLIGHT_EXT</code>, <code>VK_BLEND_OP_LINEARLIGHT_EXT</code>, <code>VK_BLEND_OP_PINLIGHT_EXT</code>, <code>VK_BLEND_OP_HARDMIX_EXT</code>, <code>VK_BLEND_OP_PLUS_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT</code>, <code>VK_BLEND_OP_PLUS_DARKER_EXT</code>, <code>VK_BLEND_OP_MINUS_EXT</code>, <code>VK_BLEND_OP_MINUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_CONTRAST_EXT</code>, <code>VK_BLEND_OP_INVERT_OVG_EXT</code>, <code>VK_BLEND_OP_RED_EXT</code>, <code>VK_BLEND_OP_GREEN_EXT</code>, or <code>VK_BLEND_OP_BLUE_EXT</code>"
-        }
-      ],
-      "(VK_EXT_extended_dynamic_state3)+(VK_KHR_portability_subset)": [
+          "text": "<code>colorBlendOp</code> and <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_OP_ZERO_EXT</code>, <code>VK_BLEND_OP_SRC_EXT</code>, <code>VK_BLEND_OP_DST_EXT</code>, <code>VK_BLEND_OP_SRC_OVER_EXT</code>, <code>VK_BLEND_OP_DST_OVER_EXT</code>, <code>VK_BLEND_OP_SRC_IN_EXT</code>, <code>VK_BLEND_OP_DST_IN_EXT</code>, <code>VK_BLEND_OP_SRC_OUT_EXT</code>, <code>VK_BLEND_OP_DST_OUT_EXT</code>, <code>VK_BLEND_OP_SRC_ATOP_EXT</code>, <code>VK_BLEND_OP_DST_ATOP_EXT</code>, <code>VK_BLEND_OP_XOR_EXT</code>, <code>VK_BLEND_OP_MULTIPLY_EXT</code>, <code>VK_BLEND_OP_SCREEN_EXT</code>, <code>VK_BLEND_OP_OVERLAY_EXT</code>, <code>VK_BLEND_OP_DARKEN_EXT</code>, <code>VK_BLEND_OP_LIGHTEN_EXT</code>, <code>VK_BLEND_OP_COLORDODGE_EXT</code>, <code>VK_BLEND_OP_COLORBURN_EXT</code>, <code>VK_BLEND_OP_HARDLIGHT_EXT</code>, <code>VK_BLEND_OP_SOFTLIGHT_EXT</code>, <code>VK_BLEND_OP_DIFFERENCE_EXT</code>, <code>VK_BLEND_OP_EXCLUSION_EXT</code>, <code>VK_BLEND_OP_INVERT_EXT</code>, <code>VK_BLEND_OP_INVERT_RGB_EXT</code>, <code>VK_BLEND_OP_LINEARDODGE_EXT</code>, <code>VK_BLEND_OP_LINEARBURN_EXT</code>, <code>VK_BLEND_OP_VIVIDLIGHT_EXT</code>, <code>VK_BLEND_OP_LINEARLIGHT_EXT</code>, <code>VK_BLEND_OP_PINLIGHT_EXT</code>, <code>VK_BLEND_OP_HARDMIX_EXT</code>, <code>VK_BLEND_OP_HSL_HUE_EXT</code>, <code>VK_BLEND_OP_HSL_SATURATION_EXT</code>, <code>VK_BLEND_OP_HSL_COLOR_EXT</code>, <code>VK_BLEND_OP_HSL_LUMINOSITY_EXT</code>, <code>VK_BLEND_OP_PLUS_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT</code>, <code>VK_BLEND_OP_PLUS_DARKER_EXT</code>, <code>VK_BLEND_OP_MINUS_EXT</code>, <code>VK_BLEND_OP_MINUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_CONTRAST_EXT</code>, <code>VK_BLEND_OP_INVERT_OVG_EXT</code>, <code>VK_BLEND_OP_RED_EXT</code>, <code>VK_BLEND_OP_GREEN_EXT</code>, or <code>VK_BLEND_OP_BLUE_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter",
+          "text": "<code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter",
+          "text": "<code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-colorBlendOp-parameter",
+          "text": "<code>colorBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter",
+          "text": "<code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter",
+          "text": "<code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter",
+          "text": "<code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetColorWriteMaskEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetColorWriteMaskEXT-extendedDynamicState3ColorWriteMask-07364",
-          "text": " The <a href=\"#features-extendedDynamicState3ColorWriteMask\"><code>extendedDynamicState3ColorWriteMask</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetColorWriteMaskEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ColorWriteMask\"><code>extendedDynamicState3ColorWriteMask</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameter",
-          "text": " <code>pColorWriteMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid combinations of <a href=\"#VkColorComponentFlagBits\">VkColorComponentFlagBits</a> values"
+          "text": "<code>pColorWriteMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid combinations of <a href=\"#VkColorComponentFlagBits\">VkColorComponentFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -50066,247 +76163,290 @@
       "core": [
         {
           "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetBlendConstants-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineColorBlendAdvancedStateCreateInfoEXT": {
-      "(VK_EXT_blend_operation_advanced)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424",
-          "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If the <a href=\"#limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425",
-          "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If the <a href=\"#limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426",
-          "text": " If the <a href=\"#limits-advancedBlendCorrelatedOverlap\">correlated overlap</a> property is not supported, <code>blendOverlap</code> <strong class=\"purple\">must</strong> be <code>VK_BLEND_OVERLAP_UNCORRELATED_EXT</code>"
+          "text": "If the <a href=\"#limits-advancedBlendCorrelatedOverlap\">correlated overlap</a> property is not supported, <code>blendOverlap</code> <strong class=\"purple\">must</strong> be <code>VK_BLEND_OVERLAP_UNCORRELATED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter",
-          "text": " <code>blendOverlap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOverlapEXT\">VkBlendOverlapEXT</a> value"
+          "text": "<code>blendOverlap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOverlapEXT\">VkBlendOverlapEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetColorBlendAdvancedEXT": {
-      "(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-extendedDynamicState3ColorBlendAdvanced-07504",
-          "text": " The <a href=\"#features-extendedDynamicState3ColorBlendAdvanced\"><code>extendedDynamicState3ColorBlendAdvanced</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3ColorBlendAdvanced\"><code>extendedDynamicState3ColorBlendAdvanced</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameter",
-          "text": " <code>pColorBlendAdvanced</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkColorBlendAdvancedEXT\">VkColorBlendAdvancedEXT</a> structures"
+          "text": "<code>pColorBlendAdvanced</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkColorBlendAdvancedEXT\">VkColorBlendAdvancedEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkColorBlendAdvancedEXT": {
-      "(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
           "vuid": "VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505",
-          "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If the <a href=\"#limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506",
-          "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If the <a href=\"#limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendAdvancedEXT-blendOverlap-07507",
-          "text": " If the <a href=\"#limits-advancedBlendCorrelatedOverlap\">correlated overlap</a> property is not supported, <code>blendOverlap</code> <strong class=\"purple\">must</strong> be <code>VK_BLEND_OVERLAP_UNCORRELATED_EXT</code>"
+          "text": "If the <a href=\"#limits-advancedBlendCorrelatedOverlap\">correlated overlap</a> property is not supported, <code>blendOverlap</code> <strong class=\"purple\">must</strong> be <code>VK_BLEND_OVERLAP_UNCORRELATED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameter",
-          "text": " <code>advancedBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
+          "text": "<code>advancedBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkColorBlendAdvancedEXT-blendOverlap-parameter",
-          "text": " <code>blendOverlap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOverlapEXT\">VkBlendOverlapEXT</a> value"
+          "text": "<code>blendOverlap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOverlapEXT\">VkBlendOverlapEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetLogicOpEnableEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetLogicOpEnableEXT-extendedDynamicState3LogicOpEnable-07365",
-          "text": " The <a href=\"#features-extendedDynamicState3LogicOpEnable\"><code>extendedDynamicState3LogicOpEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetLogicOpEnableEXT-None-09423",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState3LogicOpEnable\"><code>extendedDynamicState3LogicOpEnable</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366",
-          "text": " If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetLogicOpEXT": {
-      "(VK_EXT_extended_dynamic_state2)": [
+      "core": [
         {
-          "vuid": "VUID-vkCmdSetLogicOpEXT-None-04867",
-          "text": " The <a href=\"#features-extendedDynamicState2LogicOp\"><code>extendedDynamicState2LogicOp</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdSetLogicOpEXT-None-09422",
+          "text": "At least one of the following <strong class=\"purple\">must</strong> be true:<div class=\"ulist\">\n<ul>\n<li>\n<p>The <a href=\"#features-extendedDynamicState2LogicOp\"><code>extendedDynamicState2LogicOp</code></a> feature is\nenabled</p>\n</li>\n<li>\n<p>The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is enabled</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEXT-logicOp-parameter",
-          "text": " <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
+          "text": "<code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetLogicOpEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkPipelineColorWriteCreateInfoEXT": {
-      "(VK_EXT_color_write_enable)": [
+      "core": [
         {
           "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801",
-          "text": " If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is not enabled, all elements of <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is not enabled, all elements of <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608",
+          "text": "If the pipeline is being created with <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, or <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic states not set, <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>attachmentCount</code> member of the <code>VkPipelineColorBlendStateCreateInfo</code> structure specified during pipeline creation",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxColorAttachments</code> member of <code>VkPhysicalDeviceLimits</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxColorAttachments</code> member of <code>VkPhysicalDeviceLimits</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameter",
-          "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values"
-        }
-      ],
-      "(VK_EXT_color_write_enable)+(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608",
-          "text": " If the pipeline is being created with <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code>, or <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic states not set, <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>attachmentCount</code> member of the <code>VkPipelineColorBlendStateCreateInfo</code> structure specified during pipeline creation"
-        }
-      ],
-      "(VK_EXT_color_write_enable)+!(VK_EXT_extended_dynamic_state3)": [
-        {
-          "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>attachmentCount</code> member of the <code>VkPipelineColorBlendStateCreateInfo</code> structure specified during pipeline creation"
+          "text": "If <code>attachmentCount</code> is not <code>0</code>, <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetColorWriteEnableEXT": {
-      "(VK_EXT_color_write_enable)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-None-04803",
-          "text": " The <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxColorAttachments</code> member of <code>VkPhysicalDeviceLimits</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxColorAttachments</code> member of <code>VkPhysicalDeviceLimits</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameter",
-          "text": " <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values"
+          "text": "<code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <a href=\"#VkBool32\">VkBool32</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength",
-          "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetFramebufferTilePropertiesQCOM": {
-      "(VK_QCOM_tile_properties)": [
+      "core": [
         {
           "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameter",
-          "text": " <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
+          "text": "<code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameter",
-          "text": " <code>pPropertiesCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertiesCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertiesCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertiesCount</code> <a href=\"#VkTilePropertiesQCOM\">VkTilePropertiesQCOM</a> structures"
+          "text": "If the value referenced by <code>pPropertiesCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertiesCount</code> <a href=\"#VkTilePropertiesQCOM\">VkTilePropertiesQCOM</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parent",
-          "text": " <code>framebuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>framebuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -50314,321 +76454,373 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDispatch-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatch-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDispatch-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatch-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-groupCountX-00386",
-          "text": " <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-groupCountY-00387",
-          "text": " <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-groupCountZ-00388",
-          "text": " <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatch-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatch-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatch-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatch-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDispatch-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatch-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatch-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatch-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDispatch-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatch-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDispatch-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatch-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDispatch-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatch-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-groupCountX-00386",
+          "text": "<code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-groupCountY-00387",
+          "text": "<code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-groupCountZ-00388",
+          "text": "<code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatch-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -50636,303 +76828,378 @@
       "core": [
         {
           "vuid": "VUID-vkCmdDispatchIndirect-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDispatchIndirect-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-offset-02710",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-offset-00407",
-          "text": " The sum of <code>offset</code> and the size of <code>VkDispatchIndirectCommand</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commonparent",
-          "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDispatchIndirect-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdDispatchIndirect-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708",
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-offset-02710",
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-offset-00407",
+          "text": "The sum of <code>offset</code> and the size of <code>VkDispatchIndirectCommand</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter",
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchIndirect-commonparent",
+          "text": "Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -50940,2119 +77207,3417 @@
       "core": [
         {
           "vuid": "VUID-VkDispatchIndirectCommand-x-00417",
-          "text": " <code>x</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
+          "text": "<code>x</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDispatchIndirectCommand-y-00418",
-          "text": " <code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
+          "text": "<code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDispatchIndirectCommand-z-00419",
-          "text": " <code>z</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
+          "text": "<code>z</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDispatchBase": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDispatchBase-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchBase-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdDispatchBase-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchBase-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421",
-          "text": " <code>baseGroupX</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422",
-          "text": " <code>baseGroupY</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423",
-          "text": " <code>baseGroupZ</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424",
-          "text": " <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] minus <code>baseGroupX</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425",
-          "text": " <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] minus <code>baseGroupY</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426",
-          "text": " <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] minus <code>baseGroupZ</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427",
-          "text": " If any of <code>baseGroupX</code>, <code>baseGroupY</code>, or <code>baseGroupZ</code> are not zero, then the bound compute pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchBase-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchBase-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdDispatchBase-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchBase-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchBase-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdDispatchBase-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdDispatchBase-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchBase-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdDispatchBase-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
-        },
-        {
-          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713",
-          "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
-        {
           "vuid": "VUID-vkCmdDispatchBase-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDispatchBase-commandBuffer-04617",
-          "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+          "text": "If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\"><code>RayQueryKHR</code></a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421",
+          "text": "<code>baseGroupX</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422",
+          "text": "<code>baseGroupY</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423",
+          "text": "<code>baseGroupZ</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424",
+          "text": "<code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] minus <code>baseGroupX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425",
+          "text": "<code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] minus <code>baseGroupY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426",
+          "text": "<code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] minus <code>baseGroupZ</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427",
+          "text": "If any of <code>baseGroupX</code>, <code>baseGroupY</code>, or <code>baseGroupZ</code> are not zero, then the bound compute pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchBase-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSubpassShadingHUAWEI": {
-      "(VK_HUAWEI_subpass_shading)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04931",
-          "text": " This command must be called in a subpass with bind point <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>. No draw commands can be called in the same subpass. Only one <a href=\"#vkCmdSubpassShadingHUAWEI\">vkCmdSubpassShadingHUAWEI</a> command can be called in a subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04931",
+          "text": "This command must be called in a subpass with bind point <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>. No draw commands can be called in the same subpass. Only one <a href=\"#vkCmdSubpassShadingHUAWEI\">vkCmdSubpassShadingHUAWEI</a> command can be called in a subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdSubpassShadingHUAWEI-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdCudaLaunchKernelNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCudaLaunchKernelNV-pLaunchInfo-parameter",
+          "text": "<code>pLaunchInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCudaLaunchInfoNV\">VkCudaLaunchInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCudaLaunchKernelNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCudaLaunchKernelNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCudaLaunchKernelNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkCudaLaunchInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-gridDimX-09406",
+          "text": "<code>gridDimX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-gridDimY-09407",
+          "text": "<code>gridDimY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-gridDimZ-09408",
+          "text": "<code>gridDimZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-paramCount-09409",
+          "text": "<code>paramCount</code> <strong class=\"purple\">must</strong> be the total amount of parameters listed in the <code>pParams</code> table.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-pParams-09410",
+          "text": "<code>pParams</code> <strong class=\"purple\">must</strong> be a pointer to a table of <code>paramCount</code> parameters, corresponding to the arguments of <code>function</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-extraCount-09411",
+          "text": "<code>extraCount</code> must be 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-pExtras-09412",
+          "text": "<code>pExtras</code> must be NULL",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCudaLaunchInfoNV-function-parameter",
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCudaFunctionNV\">VkCudaFunctionNV</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateIndirectCommandsLayoutNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsLayoutCreateInfoNV\">VkIndirectCommandsLayoutCreateInfoNV</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsLayoutCreateInfoNV\">VkIndirectCommandsLayoutCreateInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter",
-          "text": " <code>pIndirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
+          "text": "<code>pIndirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkIndirectCommandsLayoutCreateInfoNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930",
-          "text": " The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
+          "text": "The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931",
-          "text": " <code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenCount</code>"
+          "text": "<code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932",
-          "text": " If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code> it <strong class=\"purple\">must</strong> be the first element of the array and there <strong class=\"purple\">must</strong> be only a single element of such token type"
+          "text": "If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code> it <strong class=\"purple\">must</strong> be the first element of the array and there <strong class=\"purple\">must</strong> be only a single element of such token type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933",
-          "text": " If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code> there <strong class=\"purple\">must</strong> be only a single element of such token type"
+          "text": "If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code> there <strong class=\"purple\">must</strong> be only a single element of such token type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934",
-          "text": " All state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> occur before any work provoking tokens (<code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV</code>)"
+          "text": "All state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> occur before any work provoking tokens (<code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV</code> , <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV</code> )",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935",
-          "text": " The content of <code>pTokens</code> <strong class=\"purple\">must</strong> include one single work provoking token that is compatible with the <code>pipelineBindPoint</code>"
+          "text": "The content of <code>pTokens</code> <strong class=\"purple\">must</strong> include one single work provoking token that is compatible with the <code>pipelineBindPoint</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936",
-          "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamCount</code>"
+          "text": "<code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937",
-          "text": " each element of <code>pStreamStrides</code> <strong class=\"purple\">must</strong> be greater than `0`and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamStride</code>. Furthermore the alignment of each token input <strong class=\"purple\">must</strong> be ensured"
+          "text": "each element of <code>pStreamStrides</code> <strong class=\"purple\">must</strong> be greater than `0`and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamStride</code>. Furthermore the alignment of each token input <strong class=\"purple\">must</strong> be ensured",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088",
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> then the <a href=\"#features-deviceGeneratedCompute\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedCompute</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089",
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> then the state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> only include <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV</code>, or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090",
+          "text": "If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> and <code>pTokens</code> includes <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV</code>, then the <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectCommandsLayoutUsageFlagBitsNV\">VkIndirectCommandsLayoutUsageFlagBitsNV</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectCommandsLayoutUsageFlagBitsNV\">VkIndirectCommandsLayoutUsageFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter",
-          "text": " <code>pTokens</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tokenCount</code> valid <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a> structures"
+          "text": "<code>pTokens</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tokenCount</code> valid <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter",
-          "text": " <code>pStreamStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> <code>uint32_t</code> values"
+          "text": "<code>pStreamStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength",
-          "text": " <code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength",
-          "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyIndirectCommandsLayoutNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938",
-          "text": " All submitted commands that refer to <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All submitted commands that refer to <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter",
-          "text": " If <code>indirectCommandsLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
+          "text": "If <code>indirectCommandsLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent",
-          "text": " If <code>indirectCommandsLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>indirectCommandsLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkIndirectCommandsStreamNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02942",
-          "text": " The <code>buffer</code>&#8217;s usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "The <code>buffer</code>&#8217;s usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsStreamNV-offset-02943",
-          "text": " The <code>offset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minIndirectCommandsBufferOffsetAlignment</code>"
+          "text": "The <code>offset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minIndirectCommandsBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02975",
-          "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindShaderGroupIndirectCommandNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-None-02944",
-          "text": " The current bound graphics pipeline, as well as the pipelines it may reference, <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
+          "text": "The current bound graphics pipeline, as well as the pipelines it may reference, <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-index-02945",
-          "text": " The <code>index</code> <strong class=\"purple\">must</strong> be within range of the accessible shader groups of the current bound graphics pipeline. See <a href=\"#vkCmdBindPipelineShaderGroupNV\">vkCmdBindPipelineShaderGroupNV</a> for further details"
+          "text": "The <code>index</code> <strong class=\"purple\">must</strong> be within range of the accessible shader groups of the current bound graphics pipeline. See <a href=\"#vkCmdBindPipelineShaderGroupNV\">vkCmdBindPipelineShaderGroupNV</a> for further details",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindIndexBufferIndirectCommandNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02946",
-          "text": " The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> bit set"
+          "text": "The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947",
-          "text": " The <code>bufferAddress</code> <strong class=\"purple\">must</strong> be aligned to the <code>indexType</code> used"
+          "text": "The <code>bufferAddress</code> <strong class=\"purple\">must</strong> be aligned to the <code>indexType</code> used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948",
-          "text": " Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindVertexBufferIndirectCommandNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02949",
-          "text": " The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> bit set"
+          "text": "The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950",
-          "text": " Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBindPipelineIndirectCommandNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091",
+          "text": "The <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09092",
+          "text": "The referenced pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09093",
+          "text": "The referenced pipeline <strong class=\"purple\">must</strong> have been updated with <a href=\"#vkCmdUpdatePipelineIndirectBufferNV\">vkCmdUpdatePipelineIndirectBufferNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09094",
+          "text": "The referenced pipeline&#8217;s address <strong class=\"purple\">must</strong> have been queried with <a href=\"#vkGetPipelineIndirectDeviceAddressNV\">vkGetPipelineIndirectDeviceAddressNV</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkIndirectCommandsLayoutTokenNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-stream-02951",
-          "text": " <code>stream</code> <strong class=\"purple\">must</strong> be smaller than <code>VkIndirectCommandsLayoutCreateInfoNV</code>::<code>streamCount</code>"
+          "text": "<code>stream</code> <strong class=\"purple\">must</strong> be smaller than <code>VkIndirectCommandsLayoutCreateInfoNV</code>::<code>streamCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-02952",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenOffset</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-06888",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be aligned to the scalar alignment of <code>tokenType</code> or <code>minIndirectCommandsBufferOffsetAlignment</code>, whichever is lower"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be aligned to the scalar alignment of <code>tokenType</code> or <code>minIndirectCommandsBufferOffsetAlignment</code>, whichever is lower",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV</code>, <code>vertexBindingUnit</code> <strong class=\"purple\">must</strong> stay within device supported limits for the appropriate commands"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV</code>, <code>vertexBindingUnit</code> <strong class=\"purple\">must</strong> stay within device supported limits for the appropriate commands",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be valid"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be valid",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>pushconstantOffset</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>pushconstantOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each shader stage in <code>pushconstantShaderStageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>pushconstantPipelineLayout</code> that includes that byte and that stage"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each shader stage in <code>pushconstantShaderStageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>pushconstantPipelineLayout</code> that includes that byte and that stage",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each push constant range that overlaps that byte, <code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each push constant range that overlaps that byte, <code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984",
-          "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code>, <code>indirectStateFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code>, <code>indirectStateFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter",
-          "text": " <code>tokenType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsTokenTypeNV\">VkIndirectCommandsTokenTypeNV</a> value"
+          "text": "<code>tokenType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsTokenTypeNV\">VkIndirectCommandsTokenTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter",
-          "text": " If <code>pushconstantPipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
+          "text": "If <code>pushconstantPipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter",
-          "text": " <code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
+          "text": "<code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter",
-          "text": " <code>indirectStateFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectStateFlagBitsNV\">VkIndirectStateFlagBitsNV</a> values"
+          "text": "<code>indirectStateFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectStateFlagBitsNV\">VkIndirectStateFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter",
-          "text": " If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> valid <a href=\"#VkIndexType\">VkIndexType</a> values"
+          "text": "If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> valid <a href=\"#VkIndexType\">VkIndexType</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter",
-          "text": " If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypeValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> <code>uint32_t</code> values"
+          "text": "If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypeValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetGeneratedCommandsMemoryRequirementsNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074",
+          "text": "If <code>pInfo-&gt;pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, then the <a href=\"#features-deviceGeneratedCompute\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedCompute</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter",
-          "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeneratedCommandsMemoryRequirementsInfoNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907",
-          "text": " <code>maxSequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code>"
+          "text": "<code>maxSequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, then <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, and the <code>indirectCommandsLayout</code> was not created with a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV</code> token, then the <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, and the <code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV</code> token, then the <code>pipeline</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "If <code>pipeline</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter",
-          "text": " <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
+          "text": "<code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent",
-          "text": " Both of <code>indirectCommandsLayout</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>indirectCommandsLayout</code>, and <code>pipeline</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPipelineIndirectDeviceAddressNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078",
+          "text": "The <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter",
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineIndirectDeviceAddressInfoNV\">VkPipelineIndirectDeviceAddressInfoNV</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPipelineIndirectDeviceAddressInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079",
+          "text": "The provided <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with flag <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkComputePipelineIndirectBufferInfoNV\">VkComputePipelineIndirectBufferInfoNV</a> structure specifying a valid address where its metadata will be saved",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter",
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter",
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPipelineIndirectMemoryRequirementsNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082",
+          "text": "The <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083",
+          "text": "<code>pCreateInfo-&gt;flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameter",
+          "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdExecuteGeneratedCommandsNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684",
-          "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685",
-          "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07748",
-          "text": " If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468",
-          "text": " If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07469",
-          "text": " Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06537",
-          "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06538",
-          "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06539",
-          "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06886",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06887",
-          "text": " If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007",
-          "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008",
-          "text": " If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721",
-          "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908",
-          "text": " If <code>isPreprocessed</code> is <code>VK_TRUE</code> then <a href=\"#vkCmdPreprocessGeneratedCommandsNV\">vkCmdPreprocessGeneratedCommandsNV</a> <strong class=\"purple\">must</strong> have already been executed on the device, using the same <code>pGeneratedCommandsInfo</code> content as well as the content of the input buffers it references (all except <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a>::<code>preprocessBuffer</code>). Furthermore <code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909",
-          "text": " <code>VkGeneratedCommandsInfoNV</code>::<code>pipeline</code> <strong class=\"purple\">must</strong> match the current bound pipeline at <code>VkGeneratedCommandsInfoNV</code>::<code>pipelineBindPoint</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter",
-          "text": " <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684",
+          "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685",
+          "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07748",
+          "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468",
+          "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07469",
+          "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06537",
+          "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09000",
+          "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09001",
+          "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09002",
+          "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n  <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code>\nit <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09003",
+          "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06539",
+          "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06886",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06887",
+          "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07831",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07832",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07833",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08617",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08618",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08619",
+          "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07834",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08620",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> in the current command buffer set <code>depthBiasEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetDepthBias\">vkCmdSetDepthBias</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07835",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08621",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07836",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08622",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> in the current command buffer set <code>depthBoundsTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07837",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08623",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07838",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08624",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07839",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08625",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688",
-          "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_sample_locations)": [
+          "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689",
-          "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
+          "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06666",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08626",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> in the current command buffer set <code>sampleLocationsEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07840",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08627",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07841",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08628",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07843",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08629",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07844",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08630",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07845",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08631",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> in the current command buffer set <code>depthTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07846",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08632",
+          "text": "If a shader object is bound to any graphics stage, and the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07847",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08633",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07848",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08634",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> in the current command buffer set <code>stencilTestEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419",
-          "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08635",
+          "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09232",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08636",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08637",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07878",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07879",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08638",
+          "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04876",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08639",
+          "text": "If a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04877",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08640",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04879",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08641",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> set <code>logicOpEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
-          "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642",
+          "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727",
+          "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08643",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-04740",
-          "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08644",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08876",
+          "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06180",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-07616",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-07617",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-07618",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911",
+          "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09363",
+          "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09364",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09365",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09366",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09368",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09369",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371",
+          "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07749",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08646",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08647",
+          "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07751",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07880",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08648",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07881",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08649",
+          "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917",
+          "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185",
-          "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
+          "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     the current render pass instance was begun with     <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than     <code>0</code>, then each element of the     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a     <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been     created with a sample count equal to the value of     <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188",
-          "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+          "text": "If     the currently bound pipeline was created without a     <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or     <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a>     structure, and     the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not     <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the     currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count     used to create     <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06189",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935",
+          "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190",
-          "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_primitives_generated_query)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorAttachments-08963",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithRasterizerDiscard-06708",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-06709",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07619",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07620",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09237",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08650",
+          "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07621",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08651",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07622",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08652",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07623",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08653",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07624",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08654",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920",
+          "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07625",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08655",
+          "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07626",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08656",
+          "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07627",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08657",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07628",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08658",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07629",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08659",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07630",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
-          "text": " If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08660",
+          "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07631",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08661",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07632",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08662",
+          "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> in the current command buffer set <code>conservativeRasterizationMode</code> to <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07633",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08663",
+          "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07634",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08664",
+          "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07635",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09416",
+          "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07636",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08665",
+          "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07637",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08666",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08667",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08668",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07638",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08669",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08670",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08671",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> must be VK_TRUE"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07849",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08672",
+          "text": "If the <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07639",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08673",
+          "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07640",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08674",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07641",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08675",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)": [
-        {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07642",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08676",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07643",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass must have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08677",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> in the current command buffer set <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07644",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08678",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07645",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08679",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> in the current command buffer set coverageModulationMode to any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07646",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> must have been called in the current command buffer prior to this drawing command"
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08680",
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> in the current command buffer set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07647",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238",
+          "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set rasterizerDiscardEnable to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08681",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07648",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08682",
+          "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07649",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08683",
+          "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09211",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09417",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09418",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09419",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481",
+          "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487",
+          "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass"
+          "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> must be the same as the sample count of the depth/stencil attachment"
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09420",
+          "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491",
+          "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-09421",
+          "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494",
-          "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)": [
+          "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07647",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07648",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07649",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> must have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07475",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491",
-          "text": " If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_mesh_shader)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073",
-          "text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)": [
+          "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)": [
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08877",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07850",
+          "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08684",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08685",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08686",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08687",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08688",
+          "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08689",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08690",
+          "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08693",
+          "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08694",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08695",
+          "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08696",
+          "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08698",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08699",
+          "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08878",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08879",
+          "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372",
+          "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08880",
+          "text": "If the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716",
+          "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09116",
+          "text": "If     a shader object is bound to any graphics stage or     the currently bound graphics pipeline was created with     <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>,     and the format of any color attachment is     <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the     <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a>     <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>,     <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or     none of them",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239",
+          "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007",
+          "text": "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008",
+          "text": "If the <a href=\"#features-nullDescriptor\"><code>nullDescriptor</code></a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721",
+          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07842",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter in the last call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code> dynamic state enabled and the <a href=\"#limits-dynamicPrimitiveTopologyUnrestricted\"><code>dynamicPrimitiveTopologyUnrestricted</code></a> is <code>VK_FALSE</code>, then the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopology</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04912",
-          "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+          "text": "If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
-        {
-          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884",
-          "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_vertex_input_dynamic_state)": [
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state2)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current     command buffer prior to this draw command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then all variables with the <code>Input</code> storage class decorated with     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> contain a location in     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     then the numeric type associated with all <code>Input</code> variables of the     corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08936",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then the scalar width associated with all <code>Input</code>     variables of the corresponding <code>Location</code> in the <code>Vertex</code>     <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08937",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and the scalar width associated with a <code>Location</code> decorated     <code>Input</code> variable in the <code>Vertex</code> <code>Execution</code> <code>Model</code>     <code>OpEntryPoint</code> is 64-bit, then the corresponding     <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a     64-bit component",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09203",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled     and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a     64-bit component, then all <code>Input</code> variables at the corresponding     <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code>     <strong class=\"purple\">must</strong> not use components that are not present in the format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
-          "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)": [
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04879",
+          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code> dynamic state enabled     then <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the     current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481",
-          "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
+          "text": "The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08885",
+          "text": "There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908",
+          "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> then <a href=\"#vkCmdPreprocessGeneratedCommandsNV\">vkCmdPreprocessGeneratedCommandsNV</a> <strong class=\"purple\">must</strong> have already been executed on the device, using the same <code>pGeneratedCommandsInfo</code> content as well as the content of the input buffers it references (all except <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a>::<code>preprocessBuffer</code>). Furthermore <code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909",
+          "text": "<a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a>::<code>pipeline</code> <strong class=\"purple\">must</strong> match the current bound pipeline at <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a>::<code>pipelineBindPoint</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910",
-          "text": " Transform feedback <strong class=\"purple\">must</strong> not be active"
+          "text": "Transform feedback <strong class=\"purple\">must</strong> not be active",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911",
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter",
+          "text": "<code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkGeneratedCommandsInfoNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-02912",
-          "text": " The provided <code>pipeline</code> <strong class=\"purple\">must</strong> match the pipeline bound at execution time"
+          "text": "The provided <code>pipeline</code> <strong class=\"purple\">must</strong> match the pipeline bound at execution time",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913",
-          "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with multiple shader groups"
+          "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with multiple shader groups",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914",
-          "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code> set in <code>VkGraphicsPipelineCreateInfo</code>::<code>flags</code>"
+          "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code> set in <code>VkGraphicsPipelineCreateInfo</code>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915",
-          "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, then the <code>pipeline</code>`s <code>VkPipelineLayout</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a>::<code>pushconstantPipelineLayout</code>"
+          "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, then the <code>pipeline</code>`s <code>VkPipelineLayout</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a>::<code>pushconstantPipelineLayout</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-02916",
-          "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> match the <code>indirectCommandsLayout</code>&#8217;s <code>streamCount</code>"
+          "text": "<code>streamCount</code> <strong class=\"purple\">must</strong> match the <code>indirectCommandsLayout</code>&#8217;s <code>streamCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with the flag <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkComputePipelineIndirectBufferInfoNV\">VkComputePipelineIndirectBufferInfoNV</a> structure specifying a valid address where its metadata will be saved",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, then <a href=\"#vkCmdUpdatePipelineIndirectBufferNV\">vkCmdUpdatePipelineIndirectBufferNV</a> <strong class=\"purple\">must</strong> have been called on that pipeline to save its metadata to a device address",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087",
+          "text": "If <code>pipelineBindPoint</code> is of type <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, and if <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV</code> is used, then <code>pipeline</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917",
-          "text": " <code>sequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code> and <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a>::<code>maxSequencesCount</code> that was used to determine the <code>preprocessSize</code>"
+          "text": "<code>sequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code> and <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a>::<code>maxSequencesCount</code> that was used to determine the <code>preprocessSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918",
-          "text": " <code>preprocessBuffer</code> <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set in its usage flag"
+          "text": "<code>preprocessBuffer</code> <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set in its usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919",
-          "text": " <code>preprocessOffset</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>minIndirectCommandsBufferOffsetAlignment</code>"
+          "text": "<code>preprocessOffset</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>minIndirectCommandsBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971",
-          "text": " If <code>preprocessBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>preprocessBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920",
-          "text": " <code>preprocessSize</code> <strong class=\"purple\">must</strong> be at least equal to the memory requirement`s size returned by <a href=\"#vkGetGeneratedCommandsMemoryRequirementsNV\">vkGetGeneratedCommandsMemoryRequirementsNV</a> using the matching inputs (<code>indirectCommandsLayout</code>, &#8230;&#8203;) as within this structure"
+          "text": "<code>preprocessSize</code> <strong class=\"purple\">must</strong> be at least equal to the memory requirement`s size returned by <a href=\"#vkGetGeneratedCommandsMemoryRequirementsNV\">vkGetGeneratedCommandsMemoryRequirementsNV</a> using the matching inputs (<code>indirectCommandsLayout</code>, &#8230;&#8203;) as within this structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921",
-          "text": " <code>sequencesCountBuffer</code> <strong class=\"purple\">can</strong> be set if the actual used count of sequences is sourced from the provided buffer. In that case the <code>sequencesCount</code> serves as upper bound"
+          "text": "<code>sequencesCountBuffer</code> <strong class=\"purple\">can</strong> be set if the actual used count of sequences is sourced from the provided buffer. In that case the <code>sequencesCount</code> serves as upper bound",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922",
-          "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923",
-          "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesCountBufferOffsetAlignment</code>"
+          "text": "If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesCountBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972",
-          "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924",
-          "text": " If <code>indirectCommandsLayout</code>&#8217;s <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV</code> is set, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be set otherwise it <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>indirectCommandsLayout</code>&#8217;s <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV</code> is set, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be set otherwise it <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925",
-          "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926",
-          "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesIndexBufferOffsetAlignment</code>"
+          "text": "If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesIndexBufferOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973",
-          "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078",
+          "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079",
+          "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter",
-          "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
+          "text": "<code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-parameter",
-          "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
+          "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter",
-          "text": " <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
+          "text": "<code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-pStreams-parameter",
-          "text": " <code>pStreams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> valid <a href=\"#VkIndirectCommandsStreamNV\">VkIndirectCommandsStreamNV</a> structures"
+          "text": "<code>pStreams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> valid <a href=\"#VkIndirectCommandsStreamNV\">VkIndirectCommandsStreamNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter",
-          "text": " <code>preprocessBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>preprocessBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter",
-          "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter",
-          "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength",
-          "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkGeneratedCommandsInfoNV-commonparent",
-          "text": " Each of <code>indirectCommandsLayout</code>, <code>pipeline</code>, <code>preprocessBuffer</code>, <code>sequencesCountBuffer</code>, and <code>sequencesIndexBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078",
-          "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshNV</code> {ExecutionModel}"
-        }
-      ],
-      "(VK_NV_device_generated_commands)+(VK_EXT_mesh_shader)": [
-        {
-          "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079",
-          "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>MeshEXT</code> {ExecutionModel}"
+          "text": "Each of <code>indirectCommandsLayout</code>, <code>pipeline</code>, <code>preprocessBuffer</code>, <code>sequencesCountBuffer</code>, and <code>sequencesIndexBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdPreprocessGeneratedCommandsNV": {
-      "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        }
-      ],
-      "(VK_NV_device_generated_commands)": [
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927",
-          "text": " <code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set"
+          "text": "<code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928",
-          "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter",
-          "text": " <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure"
+          "text": "<code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
@@ -53060,115 +80625,140 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties\">VkSparseImageFormatProperties</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties\">VkSparseImageFormatProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSparseImageFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter",
-          "text": " <code>pFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSparseImageFormatInfo2\">VkPhysicalDeviceSparseImageFormatInfo2</a> structure"
+          "text": "<code>pFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSparseImageFormatInfo2\">VkPhysicalDeviceSparseImageFormatInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties2\">VkSparseImageFormatProperties2</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties2\">VkSparseImageFormatProperties2</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSparseImageFormatInfo2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSparseImageFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkSparseImageFormatProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -53176,91 +80766,109 @@
       "core": [
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter",
-          "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter",
-          "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements\">VkSparseImageMemoryRequirements</a> structures"
+          "text": "If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements\">VkSparseImageMemoryRequirements</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetImageSparseMemoryRequirements2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSparseMemoryRequirementsInfo2\">VkImageSparseMemoryRequirementsInfo2</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSparseMemoryRequirementsInfo2\">VkImageSparseMemoryRequirementsInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter",
-          "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter",
-          "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures"
+          "text": "If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceImageSparseMemoryRequirements": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter",
-          "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter",
-          "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures"
+          "text": "If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageSparseMemoryRequirementsInfo2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkSparseImageMemoryRequirements2": {
-      "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+      "core": [
         {
           "vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -53268,49 +80876,68 @@
       "core": [
         {
           "vuid": "VUID-VkSparseMemoryBind-memory-01096",
-          "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the resource, as described in section <a href=\"#resources-association\">Resource Memory Association</a>"
+          "text": "If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the resource, as described in section <a href=\"#resources-association\">Resource Memory Association</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseMemoryBind-resourceOffset-09491",
+          "text": "If the resource being bound is a <code>VkBuffer</code>, <code>resourceOffset</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetBufferMemoryRequirements\">vkGetBufferMemoryRequirements</a> with the buffer resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseMemoryBind-resourceOffset-09492",
+          "text": "If the resource being bound is a <code>VkImage</code>, <code>resourceOffset</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the image resource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-memory-01097",
-          "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> not have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code> bit set"
+          "text": "If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> not have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-size-01098",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099",
-          "text": " <code>resourceOffset</code> <strong class=\"purple\">must</strong> be less than the size of the resource"
+          "text": "<code>resourceOffset</code> <strong class=\"purple\">must</strong> be less than the size of the resource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-size-01100",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the resource minus <code>resourceOffset</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the resource minus <code>resourceOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101",
-          "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-size-01102",
-          "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
+          "text": "<code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSparseMemoryBind-memory-parameter",
-          "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSparseMemoryBind-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
           "vuid": "VUID-VkSparseMemoryBind-memory-02730",
-          "text": " If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> or <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the resource was created"
+          "text": "If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> or <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the resource was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseMemoryBind-memory-02731",
-          "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> or <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the resource was created"
+          "text": "If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> or <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the resource was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseMemoryBind-memory-parameter",
+          "text": "If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseMemoryBind-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -53318,15 +80945,18 @@
       "core": [
         {
           "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter",
-          "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter",
-          "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures"
+          "text": "<code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength",
-          "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -53334,19 +80964,23 @@
       "core": [
         {
           "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103",
-          "text": " If the <code>flags</code> member of any element of <code>pBinds</code> contains <code>VK_SPARSE_MEMORY_BIND_METADATA_BIT</code>, the binding range defined <strong class=\"purple\">must</strong> be within the mip tail region of the metadata aspect of <code>image</code>"
+          "text": "If the <code>flags</code> member of any element of <code>pBinds</code> contains <code>VK_SPARSE_MEMORY_BIND_METADATA_BIT</code>, the binding range defined <strong class=\"purple\">must</strong> be within the mip tail region of the metadata aspect of <code>image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter",
-          "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures"
+          "text": "<code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength",
-          "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -53354,27 +80988,33 @@
       "core": [
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722",
-          "text": " The <code>subresource.mipLevel</code> member of each element of <code>pBinds</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <code>subresource.mipLevel</code> member of each element of <code>pBinds</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723",
-          "text": " The <code>subresource.arrayLayer</code> member of each element of <code>pBinds</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
+          "text": "The <code>subresource.arrayLayer</code> member of each element of <code>pBinds</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-image-02901",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> set"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter",
-          "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
+          "text": "<code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter",
-          "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseImageMemoryBind\">VkSparseImageMemoryBind</a> structures"
+          "text": "<code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseImageMemoryBind\">VkSparseImageMemoryBind</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength",
-          "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -53382,61 +81022,88 @@
       "core": [
         {
           "vuid": "VUID-VkSparseImageMemoryBind-memory-01104",
-          "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, and if any other resources are bound to ranges of <code>memory</code>, the range of <code>memory</code> being bound <strong class=\"purple\">must</strong> not overlap with those bound ranges"
+          "text": "If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, and if any other resources are bound to ranges of <code>memory</code>, the range of <code>memory</code> being bound <strong class=\"purple\">must</strong> not overlap with those bound ranges",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-memory-01105",
-          "text": " <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the calling command&#8217;s <code>image</code>, as described in section <a href=\"#resources-association\">Resource Memory Association</a>"
+          "text": "<code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the calling command&#8217;s <code>image</code>, as described in section <a href=\"#resources-association\">Resource Memory Association</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106",
-          "text": " <code>subresource</code> <strong class=\"purple\">must</strong> be a valid image subresource for <code>image</code> (see <a href=\"#resources-image-views\">Image Views</a>)"
+          "text": "<code>subresource</code> <strong class=\"purple\">must</strong> be a valid image subresource for <code>image</code> (see <a href=\"#resources-image-views\">Image Views</a>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-offset-01107",
-          "text": " <code>offset.x</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of the image"
+          "text": "<code>offset.x</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of the image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-extent-09388",
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-extent-01108",
-          "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of the image, or else <span class=\"eq\">(<code>extent.width</code> &#43; <code>offset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the image subresource"
+          "text": "<code>extent.width</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of the image, or else <span class=\"eq\">(<code>extent.width</code> +  <code>offset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the image subresource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-offset-01109",
-          "text": " <code>offset.y</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of the image"
+          "text": "<code>offset.y</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of the image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-extent-09389",
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-extent-01110",
-          "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of the image, or else <span class=\"eq\">(<code>extent.height</code> &#43; <code>offset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the image subresource"
+          "text": "<code>extent.height</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of the image, or else <span class=\"eq\">(<code>extent.height</code> +  <code>offset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the image subresource",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-offset-01111",
-          "text": " <code>offset.z</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block depth (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.depth</code>) of the image"
+          "text": "<code>offset.z</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block depth (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.depth</code>) of the image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-extent-09390",
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-extent-01112",
-          "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block depth of the image, or else <span class=\"eq\">(<code>extent.depth</code> &#43; <code>offset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the image subresource"
+          "text": "<code>extent.depth</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block depth of the image, or else <span class=\"eq\">(<code>extent.depth</code> +  <code>offset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the image subresource",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter",
-          "text": " <code>subresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure"
-        },
-        {
-          "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter",
-          "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_external_memory)": [
-        {
           "vuid": "VUID-VkSparseImageMemoryBind-memory-02732",
-          "text": " If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the image was created"
+          "text": "If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the image was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSparseImageMemoryBind-memory-02733",
-          "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
+          "text": "If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter",
+          "text": "<code>subresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter",
+          "text": "If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -53444,10093 +81111,15540 @@
       "core": [
         {
           "vuid": "VUID-vkQueueBindSparse-fence-01113",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-fence-01114",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115",
-          "text": " Each element of the <code>pSignalSemaphores</code> member of each element of <code>pBindInfo</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
+          "text": "Each element of the <code>pSignalSemaphores</code> member of each element of <code>pBindInfo</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116",
-          "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pBindInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
+          "text": "When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pBindInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of the <code>pBindInfo</code> parameter referring to a binary semaphore <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
+          "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245",
+          "text": "All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pBindInfo</code> referring to a semaphore created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> on which it depends <strong class=\"purple\">must</strong> have also been submitted for execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter",
-          "text": " If <code>bindInfoCount</code> is not <code>0</code>, <code>pBindInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindSparseInfo\">VkBindSparseInfo</a> structures"
+          "text": "If <code>bindInfoCount</code> is not <code>0</code>, <code>pBindInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindSparseInfo\">VkBindSparseInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-queuetype",
-          "text": " The <code>queue</code> <strong class=\"purple\">must</strong> support sparse binding operations"
+          "text": "The <code>queue</code> <strong class=\"purple\">must</strong> support sparse binding operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBindSparse-commonparent",
-          "text": " Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pBindInfo</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
+          "text": "Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkBindSparseInfo": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03246",
-          "text": " If any element of <code>pWaitSemaphores</code> or <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure"
+          "text": "If any element of <code>pWaitSemaphores</code> or <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pNext-03247",
-          "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>"
+          "text": "If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pNext-03248",
-          "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>"
+          "text": "If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03249",
-          "text": " For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
+          "text": "For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03250",
-          "text": " For each element of <code>pWaitSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
+          "text": "For each element of <code>pWaitSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03251",
-          "text": " For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
-        }
-      ],
-      "core": [
+          "text": "For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkBindSparseInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_SPARSE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_SPARSE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupBindSparseInfo\">VkDeviceGroupBindSparseInfo</a> or <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupBindSparseInfo\">VkDeviceGroupBindSparseInfo</a>, <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, or <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-parameter",
-          "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
+          "text": "If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter",
-          "text": " If <code>bufferBindCount</code> is not <code>0</code>, <code>pBufferBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferBindCount</code> valid <a href=\"#VkSparseBufferMemoryBindInfo\">VkSparseBufferMemoryBindInfo</a> structures"
+          "text": "If <code>bufferBindCount</code> is not <code>0</code>, <code>pBufferBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferBindCount</code> valid <a href=\"#VkSparseBufferMemoryBindInfo\">VkSparseBufferMemoryBindInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter",
-          "text": " If <code>imageOpaqueBindCount</code> is not <code>0</code>, <code>pImageOpaqueBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageOpaqueBindCount</code> valid <a href=\"#VkSparseImageOpaqueMemoryBindInfo\">VkSparseImageOpaqueMemoryBindInfo</a> structures"
+          "text": "If <code>imageOpaqueBindCount</code> is not <code>0</code>, <code>pImageOpaqueBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageOpaqueBindCount</code> valid <a href=\"#VkSparseImageOpaqueMemoryBindInfo\">VkSparseImageOpaqueMemoryBindInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter",
-          "text": " If <code>imageBindCount</code> is not <code>0</code>, <code>pImageBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageBindCount</code> valid <a href=\"#VkSparseImageMemoryBindInfo\">VkSparseImageMemoryBindInfo</a> structures"
+          "text": "If <code>imageBindCount</code> is not <code>0</code>, <code>pImageBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageBindCount</code> valid <a href=\"#VkSparseImageMemoryBindInfo\">VkSparseImageMemoryBindInfo</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter",
-          "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
+          "text": "If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkBindSparseInfo-commonparent",
-          "text": " Both of the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupBindSparseInfo": {
-      "(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118",
-          "text": " <code>resourceDeviceIndex</code> and <code>memoryDeviceIndex</code> <strong class=\"purple\">must</strong> both be valid device indices"
+          "text": "<code>resourceDeviceIndex</code> and <code>memoryDeviceIndex</code> <strong class=\"purple\">must</strong> both be valid device indices",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119",
-          "text": " Each memory allocation bound in this batch <strong class=\"purple\">must</strong> have allocated an instance for <code>memoryDeviceIndex</code>"
+          "text": "Each memory allocation bound in this batch <strong class=\"purple\">must</strong> have allocated an instance for <code>memoryDeviceIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateAndroidSurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_android_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAndroidSurfaceCreateInfoKHR\">VkAndroidSurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAndroidSurfaceCreateInfoKHR\">VkAndroidSurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkAndroidSurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_android_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid Android <a href=\"#ANativeWindow\">ANativeWindow</a>"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> point to a valid Android <a href=\"#ANativeWindow\">ANativeWindow</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateWaylandSurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWaylandSurfaceCreateInfoKHR\">VkWaylandSurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWaylandSurfaceCreateInfoKHR\">VkWaylandSurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkWaylandSurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_display</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_display</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_surface</code>"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_surface</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateWin32SurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWin32SurfaceCreateInfoKHR\">VkWin32SurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWin32SurfaceCreateInfoKHR\">VkWin32SurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkWin32SurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307",
-          "text": " <code>hinstance</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HINSTANCE</code>"
+          "text": "<code>hinstance</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HINSTANCE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308",
-          "text": " <code>hwnd</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HWND</code>"
+          "text": "<code>hwnd</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HWND</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateXcbSurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXcbSurfaceCreateInfoKHR\">VkXcbSurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXcbSurfaceCreateInfoKHR\">VkXcbSurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkXcbSurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310",
-          "text": " <code>connection</code> <strong class=\"purple\">must</strong> point to a valid X11 <code>xcb_connection_t</code>"
+          "text": "<code>connection</code> <strong class=\"purple\">must</strong> point to a valid X11 <code>xcb_connection_t</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid X11 <code>xcb_window_t</code>"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> be a valid X11 <code>xcb_window_t</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateXlibSurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXlibSurfaceCreateInfoKHR\">VkXlibSurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXlibSurfaceCreateInfoKHR\">VkXlibSurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkXlibSurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313",
-          "text": " <code>dpy</code> <strong class=\"purple\">must</strong> point to a valid Xlib <code>Display</code>"
+          "text": "<code>dpy</code> <strong class=\"purple\">must</strong> point to a valid Xlib <code>Display</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid Xlib <code>Window</code>"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> be a valid Xlib <code>Window</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDirectFBSurfaceEXT": {
-      "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDirectFBSurfaceEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDirectFBSurfaceCreateInfoEXT\">VkDirectFBSurfaceCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDirectFBSurfaceCreateInfoEXT\">VkDirectFBSurfaceCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDirectFBSurfaceCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117",
-          "text": " <code>dfb</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFB</code>"
+          "text": "<code>dfb</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFB</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFBSurface</code>"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFBSurface</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateImagePipeSurfaceFUCHSIA": {
-      "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImagePipeSurfaceCreateInfoFUCHSIA\">VkImagePipeSurfaceCreateInfoFUCHSIA</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImagePipeSurfaceCreateInfoFUCHSIA\">VkImagePipeSurfaceCreateInfoFUCHSIA</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkImagePipeSurfaceCreateInfoFUCHSIA": {
-      "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863",
-          "text": " <code>imagePipeHandle</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code>"
+          "text": "<code>imagePipeHandle</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateStreamDescriptorSurfaceGGP": {
-      "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStreamDescriptorSurfaceCreateInfoGGP\">VkStreamDescriptorSurfaceCreateInfoGGP</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStreamDescriptorSurfaceCreateInfoGGP\">VkStreamDescriptorSurfaceCreateInfoGGP</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkStreamDescriptorSurfaceCreateInfoGGP": {
-      "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681",
-          "text": " <code>streamDescriptor</code> <strong class=\"purple\">must</strong> be a valid <code>GgpStreamDescriptor</code>"
+          "text": "<code>streamDescriptor</code> <strong class=\"purple\">must</strong> be a valid <code>GgpStreamDescriptor</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateIOSSurfaceMVK": {
-      "(VK_KHR_surface)+(VK_MVK_ios_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIOSSurfaceCreateInfoMVK\">VkIOSSurfaceCreateInfoMVK</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIOSSurfaceCreateInfoMVK\">VkIOSSurfaceCreateInfoMVK</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkIOSSurfaceCreateInfoMVK": {
-      "(VK_KHR_surface)+(VK_MVK_ios_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-04143",
-          "text": " If <code>pView</code> is a <a href=\"#CAMetalLayer\">CAMetalLayer</a> object, it <strong class=\"purple\">must</strong> be a valid <a href=\"#CAMetalLayer\">CAMetalLayer</a>"
+          "text": "If <code>pView</code> is a <a href=\"#CAMetalLayer\">CAMetalLayer</a> object, it <strong class=\"purple\">must</strong> be a valid <a href=\"#CAMetalLayer\">CAMetalLayer</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316",
-          "text": " If <code>pView</code> is a <code>UIView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>UIView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <a href=\"#CAMetalLayer\">CAMetalLayer</a>, and <a href=\"#vkCreateIOSSurfaceMVK\">vkCreateIOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread"
+          "text": "If <code>pView</code> is a <code>UIView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>UIView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <a href=\"#CAMetalLayer\">CAMetalLayer</a>, and <a href=\"#vkCreateIOSSurfaceMVK\">vkCreateIOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateMacOSSurfaceMVK": {
-      "(VK_KHR_surface)+(VK_MVK_macos_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMacOSSurfaceCreateInfoMVK\">VkMacOSSurfaceCreateInfoMVK</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMacOSSurfaceCreateInfoMVK\">VkMacOSSurfaceCreateInfoMVK</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkMacOSSurfaceCreateInfoMVK": {
-      "(VK_KHR_surface)+(VK_MVK_macos_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144",
-          "text": " If <code>pView</code> is a <a href=\"#CAMetalLayer\">CAMetalLayer</a> object, it <strong class=\"purple\">must</strong> be a valid <a href=\"#CAMetalLayer\">CAMetalLayer</a>"
+          "text": "If <code>pView</code> is a <a href=\"#CAMetalLayer\">CAMetalLayer</a> object, it <strong class=\"purple\">must</strong> be a valid <a href=\"#CAMetalLayer\">CAMetalLayer</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317",
-          "text": " If <code>pView</code> is an <code>NSView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>NSView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <a href=\"#CAMetalLayer\">CAMetalLayer</a>, and <a href=\"#vkCreateMacOSSurfaceMVK\">vkCreateMacOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread"
+          "text": "If <code>pView</code> is an <code>NSView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>NSView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <a href=\"#CAMetalLayer\">CAMetalLayer</a>, and <a href=\"#vkCreateMacOSSurfaceMVK\">vkCreateMacOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateViSurfaceNN": {
-      "(VK_KHR_surface)+(VK_NN_vi_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkViSurfaceCreateInfoNN\">VkViSurfaceCreateInfoNN</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkViSurfaceCreateInfoNN\">VkViSurfaceCreateInfoNN</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateViSurfaceNN-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkViSurfaceCreateInfoNN": {
-      "(VK_KHR_surface)+(VK_NN_vi_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid <code>nn</code>::<code>vi</code>::<code>NativeWindowHandle</code>"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> be a valid <code>nn</code>::<code>vi</code>::<code>NativeWindowHandle</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateMetalSurfaceEXT": {
-      "(VK_KHR_surface)+(VK_EXT_metal_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMetalSurfaceCreateInfoEXT\">VkMetalSurfaceCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMetalSurfaceCreateInfoEXT\">VkMetalSurfaceCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkMetalSurfaceCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_EXT_metal_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateScreenSurfaceQNX": {
-      "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateScreenSurfaceQNX-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkScreenSurfaceCreateInfoQNX\">VkScreenSurfaceCreateInfoQNX</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkScreenSurfaceCreateInfoQNX\">VkScreenSurfaceCreateInfoQNX</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateScreenSurfaceQNX-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateScreenSurfaceQNX-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkScreenSurfaceCreateInfoQNX": {
-      "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-context-04741",
-          "text": " <code>context</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_context"
+          "text": "<code>context</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_context",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-window-04742",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_window"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_window",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroySurfaceKHR": {
-      "(VK_KHR_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroySurfaceKHR-surface-01266",
-          "text": " All <code>VkSwapchainKHR</code> objects created for <code>surface</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>surface</code>"
+          "text": "All <code>VkSwapchainKHR</code> objects created for <code>surface</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>surface</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-surface-01267",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-surface-01268",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySurfaceKHR-surface-parent",
-          "text": " If <code>surface</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
+          "text": "If <code>surface</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceDisplayPropertiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPropertiesKHR\">VkDisplayPropertiesKHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPropertiesKHR\">VkDisplayPropertiesKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceDisplayProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayProperties2KHR\">VkDisplayProperties2KHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayProperties2KHR\">VkDisplayProperties2KHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayProperties2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireXlibDisplayEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter",
-          "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
+          "text": "<code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetRandROutputDisplayEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter",
-          "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
+          "text": "<code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter",
-          "text": " <code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireWinrtDisplayNV": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetWinrtDisplayNV": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetWinrtDisplayNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetWinrtDisplayNV-pDisplay-parameter",
-          "text": " <code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireDrmDisplayEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDrmDisplayEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDrmDisplayEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDrmDisplayEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkReleaseDisplayEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)": [
+      "core": [
         {
           "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleaseDisplayEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleaseDisplayEXT-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlanePropertiesKHR\">VkDisplayPlanePropertiesKHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlanePropertiesKHR\">VkDisplayPlanePropertiesKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlaneProperties2KHR\">VkDisplayPlaneProperties2KHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlaneProperties2KHR\">VkDisplayPlaneProperties2KHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayPlaneProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDisplayPlaneSupportedDisplaysKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249",
-          "text": " <code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>"
+          "text": "<code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter",
-          "text": " <code>pDisplayCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pDisplayCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter",
-          "text": " If the value referenced by <code>pDisplayCount</code> is not <code>0</code>, and <code>pDisplays</code> is not <code>NULL</code>, <code>pDisplays</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDisplayCount</code> <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handles"
+          "text": "If the value referenced by <code>pDisplayCount</code> is not <code>0</code>, and <code>pDisplays</code> is not <code>NULL</code>, <code>pDisplays</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDisplayCount</code> <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handles",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDisplayModePropertiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModePropertiesKHR\">VkDisplayModePropertiesKHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModePropertiesKHR\">VkDisplayModePropertiesKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDisplayModeProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModeProperties2KHR\">VkDisplayModeProperties2KHR</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModeProperties2KHR\">VkDisplayModeProperties2KHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayModeProperties2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayModeParametersKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayModeParametersKHR-width-01990",
-          "text": " The <code>width</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "The <code>width</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeParametersKHR-height-01991",
-          "text": " The <code>height</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "The <code>height</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992",
-          "text": " <code>refreshRate</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>refreshRate</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDisplayModeKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayModeCreateInfoKHR\">VkDisplayModeCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayModeCreateInfoKHR\">VkDisplayModeCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter",
-          "text": " <code>pMode</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
+          "text": "<code>pMode</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayModeKHR-display-parent",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayModeCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter",
-          "text": " <code>parameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeParametersKHR\">VkDisplayModeParametersKHR</a> structure"
+          "text": "<code>parameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeParametersKHR\">VkDisplayModeParametersKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDisplayPlaneCapabilitiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter",
-          "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilitiesKHR\">VkDisplayPlaneCapabilitiesKHR</a> structure"
+          "text": "<code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilitiesKHR\">VkDisplayPlaneCapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parent",
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDisplayPlaneCapabilities2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter",
-          "text": " <code>pDisplayPlaneInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPlaneInfo2KHR\">VkDisplayPlaneInfo2KHR</a> structure"
+          "text": "<code>pDisplayPlaneInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPlaneInfo2KHR\">VkDisplayPlaneInfo2KHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter",
-          "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilities2KHR\">VkDisplayPlaneCapabilities2KHR</a> structure"
+          "text": "<code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilities2KHR\">VkDisplayPlaneCapabilities2KHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayPlaneInfo2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayPlaneCapabilities2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDisplayPowerControlEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter",
-          "text": " <code>pDisplayPowerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPowerInfoEXT\">VkDisplayPowerInfoEXT</a> structure"
+          "text": "<code>pDisplayPowerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPowerInfoEXT\">VkDisplayPowerInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDisplayPowerControlEXT-commonparent",
-          "text": " Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>"
+          "text": "Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayPowerInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter",
-          "text": " <code>powerState</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPowerStateEXT\">VkDisplayPowerStateEXT</a> value"
+          "text": "<code>powerState</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPowerStateEXT\">VkDisplayPowerStateEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDisplayPlaneSurfaceKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplaySurfaceCreateInfoKHR\">VkDisplaySurfaceCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplaySurfaceCreateInfoKHR\">VkDisplaySurfaceCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplaySurfaceCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_display)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252",
-          "text": " <code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>"
+          "text": "<code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253",
-          "text": " If the <code>planeReorderPossible</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display corresponding to <code>displayMode</code> is <code>VK_TRUE</code> then <code>planeStackIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>; otherwise <code>planeStackIndex</code> <strong class=\"purple\">must</strong> equal the <code>currentStackIndex</code> member of <code>VkDisplayPlanePropertiesKHR</code> returned by <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code> for the display plane corresponding to <code>displayMode</code>"
+          "text": "If the <code>planeReorderPossible</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display corresponding to <code>displayMode</code> is <code>VK_TRUE</code> then <code>planeStackIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>; otherwise <code>planeStackIndex</code> <strong class=\"purple\">must</strong> equal the <code>currentStackIndex</code> member of <code>VkDisplayPlanePropertiesKHR</code> returned by <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code> for the display plane corresponding to <code>displayMode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254",
-          "text": " If <code>alphaMode</code> is <code>VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR</code> then <code>globalAlpha</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
+          "text": "If <code>alphaMode</code> is <code>VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR</code> then <code>globalAlpha</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255",
-          "text": " <code>alphaMode</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedAlpha</code> member of <code>VkDisplayPlaneCapabilitiesKHR</code> for the display plane corresponding to <code>displayMode</code>"
+          "text": "<code>alphaMode</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedAlpha</code> member of <code>VkDisplayPlaneCapabilitiesKHR</code> for the display plane corresponding to <code>displayMode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740",
-          "text": " <code>transform</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedTransforms</code> member of <code>VkDisplayPropertiesKHR</code> for the display corresponding to <code>displayMode</code>"
+          "text": "<code>transform</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedTransforms</code> member of <code>VkDisplayPropertiesKHR</code> for the display corresponding to <code>displayMode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256",
-          "text": " The <code>width</code> and <code>height</code> members of <code>imageExtent</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageDimension2D</code>"
+          "text": "The <code>width</code> and <code>height</code> members of <code>imageExtent</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageDimension2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter",
-          "text": " <code>displayMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
+          "text": "<code>displayMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter",
-          "text": " <code>transform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value"
+          "text": "<code>transform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter",
-          "text": " <code>alphaMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPlaneAlphaFlagBitsKHR\">VkDisplayPlaneAlphaFlagBitsKHR</a> value"
+          "text": "<code>alphaMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPlaneAlphaFlagBitsKHR\">VkDisplayPlaneAlphaFlagBitsKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateHeadlessSurfaceEXT": {
-      "(VK_KHR_surface)+(VK_EXT_headless_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkHeadlessSurfaceCreateInfoEXT\">VkHeadlessSurfaceCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkHeadlessSurfaceCreateInfoEXT\">VkHeadlessSurfaceCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter",
-          "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkHeadlessSurfaceCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_EXT_headless_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceSupportKHR": {
-      "(VK_KHR_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter",
-          "text": " <code>pSupported</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBool32\">VkBool32</a> value"
+          "text": "<code>pSupported</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBool32\">VkBool32</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceWaylandPresentationSupportKHR": {
-      "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter",
-          "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>wl_display</code> value"
+          "text": "<code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>wl_display</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceWin32PresentationSupportKHR": {
-      "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceXcbPresentationSupportKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter",
-          "text": " <code>connection</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>xcb_connection_t</code> value"
+          "text": "<code>connection</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>xcb_connection_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceXlibPresentationSupportKHR": {
-      "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter",
-          "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
+          "text": "<code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceDirectFBPresentationSupportEXT": {
-      "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter",
-          "text": " <code>dfb</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>IDirectFB</code> value"
+          "text": "<code>dfb</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>IDirectFB</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceScreenPresentationSupportQNX": {
-      "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743",
-          "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
+          "text": "<code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter",
-          "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>_screen_window</code> value"
+          "text": "<code>window</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>_screen_window</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": {
-      "(VK_KHR_surface)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter",
-          "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure"
+          "text": "<code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceCapabilities2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521",
-          "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522",
-          "text": " If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06520",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06210",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [
-        {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671",
-          "text": " If a <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_surface_maintenance1)": [
+          "text": "If a <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07776",
-          "text": " If a <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>"
+          "text": "If a <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07777",
-          "text": " If a <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_surface_maintenance1)+(VK_GOOGLE_surfaceless_query)": [
+          "text": "If a <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07778",
-          "text": " If a <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If a <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779",
-          "text": " If a <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
+          "text": "If a <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter",
-          "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
+          "text": "<code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter",
-          "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2KHR\">VkSurfaceCapabilities2KHR</a> structure"
+          "text": "<code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2KHR\">VkSurfaceCapabilities2KHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSurfaceInfo2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06526",
-          "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled and the <code>pNext</code> chain of the <code>pSurfaceCapabilities</code> parameter includes <code>VkSurfaceProtectedCapabilitiesKHR</code>, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06527",
-          "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceFormats2KHR\">vkGetPhysicalDeviceSurfaceFormats2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919",
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06528",
-          "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfacePresentModes2EXT\">vkGetPhysicalDeviceSurfacePresentModes2EXT</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-06529",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
-        {
           "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, or <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, or <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceFullScreenExclusiveInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameter",
-          "text": " <code>fullScreenExclusive</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFullScreenExclusiveEXT\">VkFullScreenExclusiveEXT</a> value"
+          "text": "<code>fullScreenExclusive</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFullScreenExclusiveEXT\">VkFullScreenExclusiveEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceFullScreenExclusiveWin32InfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673",
-          "text": " <code>hmonitor</code> <strong class=\"purple\">must</strong> be a valid <code>HMONITOR</code>"
+          "text": "<code>hmonitor</code> <strong class=\"purple\">must</strong> be a valid <code>HMONITOR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceCapabilities2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>, <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a>, <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a>, <a href=\"#VkSurfaceCapabilitiesPresentBarrierNV\">VkSurfaceCapabilitiesPresentBarrierNV</a>, <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>, <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>, or <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>, <a href=\"#VkLatencySurfaceCapabilitiesNV\">VkLatencySurfaceCapabilitiesNV</a>, <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a>, <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a>, <a href=\"#VkSurfaceCapabilitiesPresentBarrierNV\">VkSurfaceCapabilitiesPresentBarrierNV</a>, <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>, <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>, or <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceProtectedCapabilitiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_surface_protected_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfacePresentScalingCapabilitiesEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_surface_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter",
-          "text": " <code>supportedPresentScaling</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentScalingFlagBitsEXT\">VkPresentScalingFlagBitsEXT</a> values"
+          "text": "<code>supportedPresentScaling</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentScalingFlagBitsEXT\">VkPresentScalingFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter",
-          "text": " <code>supportedPresentGravityX</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values"
+          "text": "<code>supportedPresentGravityX</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter",
-          "text": " <code>supportedPresentGravityY</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values"
+          "text": "<code>supportedPresentGravityY</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfacePresentModeEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_surface_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfacePresentModeEXT-presentMode-07780",
-          "text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be a value reported by <a href=\"#vkGetPhysicalDeviceSurfacePresentModesKHR\">vkGetPhysicalDeviceSurfacePresentModesKHR</a> for the specified surface."
+          "text": "<code>presentMode</code> <strong class=\"purple\">must</strong> be a value reported by <a href=\"#vkGetPhysicalDeviceSurfacePresentModesKHR\">vkGetPhysicalDeviceSurfacePresentModesKHR</a> for the specified surface.",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentModeEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentModeEXT-presentMode-parameter",
-          "text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> value"
+          "text": "<code>presentMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfacePresentModeCompatibilityEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_surface_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfacePresentModeCompatibilityEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameter",
-          "text": " If <code>presentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
+          "text": "If <code>presentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkSharedPresentSurfaceCapabilitiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)": [
+      "core": [
         {
           "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayNativeHdrSurfaceCapabilitiesAMD": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_AMD_display_native_hdr)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceCapabilitiesFullScreenExclusiveEXT": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceCapabilitiesPresentBarrierNV": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_NV_present_barrier)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceCapabilities2EXT": {
-      "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter",
-          "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2EXT\">VkSurfaceCapabilities2EXT</a> structure"
+          "text": "<code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2EXT\">VkSurfaceCapabilities2EXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceCapabilities2EXT": {
-      "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246",
-          "text": " <code>supportedSurfaceCounters</code> <strong class=\"purple\">must</strong> not include <code>VK_SURFACE_COUNTER_VBLANK_BIT_EXT</code> unless the surface queried is a <a href=\"#wsi-display-surfaces\">display surface</a>"
+          "text": "<code>supportedSurfaceCounters</code> <strong class=\"purple\">must</strong> not include <code>VK_SURFACE_COUNTER_VBLANK_BIT_EXT</code> unless the surface queried is a <a href=\"#wsi-display-surfaces\">display surface</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceFormatsKHR": {
-      "(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524",
-          "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06523",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06211",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)": [
-        {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter",
-          "text": " <code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter",
-          "text": " If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormatKHR\">VkSurfaceFormatKHR</a> structures"
+          "text": "If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormatKHR\">VkSurfaceFormatKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfaceFormats2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521",
-          "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522",
-          "text": " If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06520",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06210",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
-        {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter",
-          "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
+          "text": "<code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter",
-          "text": " <code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter",
-          "text": " If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormat2KHR\">VkSurfaceFormat2KHR</a> structures"
+          "text": "If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormat2KHR\">VkSurfaceFormat2KHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkSurfaceFormat2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_image_compression_control)+!(VK_EXT_image_compression_control_swapchain)": [
-        {
-          "vuid": "VUID-VkSurfaceFormat2KHR-pNext-06749",
-          "text": " The <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a> structure"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkSurfaceFormat2KHR-pNext-06750",
-          "text": " If the <a href=\"#features-imageCompressionControlSwapchain\"><code>imageCompressionControlSwapchain</code></a> feature is not enabled, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a> structure"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
+          "text": "If the <a href=\"#features-imageCompressionControlSwapchain\"><code>imageCompressionControlSwapchain</code></a> feature is not enabled, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a> structure",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSurfaceFormat2KHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfacePresentModesKHR": {
-      "(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524",
-          "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06523",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)": [
-        {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter",
-          "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter",
-          "text": " <code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter",
-          "text": " If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
+          "text": "If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceSurfacePresentModes2EXT": {
-      "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521",
-          "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522",
-          "text": " If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06520",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06210",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
-        {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter",
-          "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
+          "text": "<code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter",
-          "text": " <code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter",
-          "text": " If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
+          "text": "If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireFullScreenExclusiveModeEXT": {
-      "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not currently have exclusive full-screen access"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not currently have exclusive full-screen access",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkReleaseFullScreenExclusiveModeEXT": {
-      "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceGroupPresentCapabilitiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter",
-          "text": " <code>pDeviceGroupPresentCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a> structure"
+          "text": "<code>pDeviceGroupPresentCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupPresentCapabilitiesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceGroupSurfacePresentModesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter",
-          "text": " <code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value"
+          "text": "<code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent",
-          "text": " Both of <code>device</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>device</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceGroupSurfacePresentModes2EXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213",
-          "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
+          "text": "<code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter",
-          "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
+          "text": "<code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameter",
-          "text": " <code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value"
+          "text": "<code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDevicePresentRectanglesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter",
-          "text": " <code>pRectCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pRectCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter",
-          "text": " If the value referenced by <code>pRectCount</code> is not <code>0</code>, and <code>pRects</code> is not <code>NULL</code>, <code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pRectCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "If the value referenced by <code>pRectCount</code> is not <code>0</code>, and <code>pRects</code> is not <code>NULL</code>, <code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pRectCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent",
-          "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
+          "text": "Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetRefreshCycleDurationGOOGLE": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
+      "core": [
         {
           "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter",
-          "text": " <code>pDisplayTimingProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRefreshCycleDurationGOOGLE\">VkRefreshCycleDurationGOOGLE</a> structure"
+          "text": "<code>pDisplayTimingProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRefreshCycleDurationGOOGLE\">VkRefreshCycleDurationGOOGLE</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPastPresentationTimingGOOGLE": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter",
-          "text": " <code>pPresentationTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPresentationTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter",
-          "text": " If the value referenced by <code>pPresentationTimingCount</code> is not <code>0</code>, and <code>pPresentationTimings</code> is not <code>NULL</code>, <code>pPresentationTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentationTimingCount</code> <a href=\"#VkPastPresentationTimingGOOGLE\">VkPastPresentationTimingGOOGLE</a> structures"
+          "text": "If the value referenced by <code>pPresentationTimingCount</code> is not <code>0</code>, and <code>pPresentationTimings</code> is not <code>NULL</code>, <code>pPresentationTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentationTimingCount</code> <a href=\"#VkPastPresentationTimingGOOGLE\">VkPastPresentationTimingGOOGLE</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSwapchainStatusKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateSwapchainKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateSwapchainKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSwapchainKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter",
-          "text": " <code>pSwapchain</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>pSwapchain</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a surface that is supported by the device as determined using <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a>"
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a surface that is supported by the device as determined using <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272",
-          "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value returned in the <code>maxImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface if the returned <code>maxImageCount</code> is not zero"
+          "text": "<code>minImageCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value returned in the <code>maxImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface if the returned <code>maxImageCount</code> is not zero",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273",
-          "text": " <code>imageFormat</code> and <code>imageColorSpace</code> <strong class=\"purple\">must</strong> match the <code>format</code> and <code>colorSpace</code> members, respectively, of one of the <code>VkSurfaceFormatKHR</code> structures returned by <code>vkGetPhysicalDeviceSurfaceFormatsKHR</code> for the surface"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689",
-          "text": " <code>imageExtent</code> members <code>width</code> and <code>height</code> <strong class=\"purple\">must</strong> both be non-zero"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275",
-          "text": " <code>imageArrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to the <code>maxImageArrayLayers</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427",
-          "text": " If <code>presentMode</code> is <code>VK_PRESENT_MODE_IMMEDIATE_KHR</code>, <code>VK_PRESENT_MODE_MAILBOX_KHR</code>, <code>VK_PRESENT_MODE_FIFO_KHR</code> or <code>VK_PRESENT_MODE_FIFO_RELAXED_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>supportedUsageFlags</code> member of the <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for <code>surface</code>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277",
-          "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278",
-          "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279",
-          "text": " <code>preTransform</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedTransforms</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280",
-          "text": " <code>compositeAlpha</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedCompositeAlpha</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281",
-          "text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values returned by <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code> for the surface"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933",
-          "text": " If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a non-retired swapchain associated with native window referred to by <code>surface</code>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778",
-          "text": " The <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain <strong class=\"purple\">must</strong> be supported as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties\">vkGetPhysicalDeviceImageFormatProperties</a>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, <a href=\"#VkSwapchainCounterCreateInfoEXT\">VkSwapchainCounterCreateInfoEXT</a>, <a href=\"#VkSwapchainDisplayNativeHdrCreateInfoAMD\">VkSwapchainDisplayNativeHdrCreateInfoAMD</a>, <a href=\"#VkSwapchainPresentBarrierCreateInfoNV\">VkSwapchainPresentBarrierCreateInfoNV</a>, <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, or <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSwapchainCreateFlagBitsKHR\">VkSwapchainCreateFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter",
-          "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter",
-          "text": " <code>imageFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter",
-          "text": " <code>imageColorSpace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkColorSpaceKHR\">VkColorSpaceKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter",
-          "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask",
-          "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter",
-          "text": " <code>imageSharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter",
-          "text": " <code>preTransform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter",
-          "text": " <code>compositeAlpha</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompositeAlphaFlagBitsKHR\">VkCompositeAlphaFlagBitsKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter",
-          "text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter",
-          "text": " If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent",
-          "text": " Both of <code>oldSwapchain</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01271",
-          "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
-        {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839",
-          "text": " If <code>presentMode</code> is not <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> nor <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, then <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface"
+          "text": "If <code>presentMode</code> is not <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> nor <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, then <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383",
-          "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be <code>1</code> if <code>presentMode</code> is either <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>"
+          "text": "<code>minImageCount</code> <strong class=\"purple\">must</strong> be <code>1</code> if <code>presentMode</code> is either <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384",
-          "text": " If <code>presentMode</code> is <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>sharedPresentSupportedUsageFlags</code> member of the <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_EXT_swapchain_maintenance1)": [
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01274",
-          "text": " <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minImageExtent</code> and <code>maxImageExtent</code>, inclusive, where <code>minImageExtent</code> and <code>maxImageExtent</code> are members of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273",
+          "text": "<code>imageFormat</code> and <code>imageColorSpace</code> <strong class=\"purple\">must</strong> match the <code>format</code> and <code>colorSpace</code> members, respectively, of one of the <code>VkSurfaceFormatKHR</code> structures returned by <code>vkGetPhysicalDeviceSurfaceFormatsKHR</code> for the surface",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-07781",
-          "text": " If a <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a> structure was not included in the <code>pNext</code> chain, or it is included and <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>::<code>scalingBehavior</code> is zero then <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minImageExtent</code> and <code>maxImageExtent</code>, inclusive, where <code>minImageExtent</code> and <code>maxImageExtent</code> are members of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
+          "text": "If a <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a> structure was not included in the <code>pNext</code> chain, or it is included and <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>::<code>scalingBehavior</code> is zero then <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minImageExtent</code> and <code>maxImageExtent</code>, inclusive, where <code>minImageExtent</code> and <code>maxImageExtent</code> are members of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-07782",
-          "text": " If a <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>::<code>scalingBehavior</code> is not zero then <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minScaledImageExtent</code> and <code>maxScaledImageExtent</code>, inclusive, where <code>minScaledImageExtent</code> and <code>maxScaledImageExtent</code> are members of the <code>VkSurfacePresentScalingCapabilitiesEXT</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilities2KHR</code> for the surface and <code>presentMode</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+          "text": "If a <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>::<code>scalingBehavior</code> is not zero then <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minScaledImageExtent</code> and <code>maxScaledImageExtent</code>, inclusive, where <code>minScaledImageExtent</code> and <code>maxScaledImageExtent</code> are members of the <code>VkSurfacePresentScalingCapabilitiesEXT</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilities2KHR</code> for the surface and <code>presentMode</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393",
-          "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689",
+          "text": "<code>imageExtent</code> members <code>width</code> and <code>height</code> <strong class=\"purple\">must</strong> both be non-zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275",
+          "text": "<code>imageArrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to the <code>maxImageArrayLayers</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427",
+          "text": "If <code>presentMode</code> is <code>VK_PRESENT_MODE_IMMEDIATE_KHR</code>, <code>VK_PRESENT_MODE_MAILBOX_KHR</code>, <code>VK_PRESENT_MODE_FIFO_KHR</code> or <code>VK_PRESENT_MODE_FIFO_RELAXED_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>supportedUsageFlags</code> member of the <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for <code>surface</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384",
+          "text": "If <code>presentMode</code> is <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>sharedPresentSupportedUsageFlags</code> member of the <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277",
+          "text": "If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278",
+          "text": "If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428",
-          "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+          "text": "If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279",
+          "text": "<code>preTransform</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedTransforms</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280",
+          "text": "<code>compositeAlpha</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedCompositeAlpha</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281",
+          "text": "<code>presentMode</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values returned by <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code> for the surface",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429",
-          "text": " If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)": [
+          "text": "If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933",
+          "text": "If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a non-retired swapchain associated with native window referred to by <code>surface</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778",
+          "text": "The <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain <strong class=\"purple\">must</strong> be supported as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties\">vkGetPhysicalDeviceImageFormatProperties</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168",
-          "text": " If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with a <code>viewFormatCount</code> greater than zero and <code>pViewFormats</code> <strong class=\"purple\">must</strong> have an element equal to <code>imageFormat</code>"
+          "text": "If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with a <code>viewFormatCount</code> greater than zero and <code>pViewFormats</code> <strong class=\"purple\">must</strong> have an element equal to <code>imageFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-04099",
-          "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>"
+          "text": "If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-04100",
-          "text": " If <code>flags</code> does not contain <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> and the <code>pNext</code> chain include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_surface_protected_capabilities)": [
+          "text": "If <code>flags</code> does not contain <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> and the <code>pNext</code> chain include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03187",
-          "text": " If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR</code>, then <code>VkSurfaceProtectedCapabilitiesKHR</code>::<code>supportsProtected</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code> in the <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [
+          "text": "If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR</code>, then <code>VkSurfaceProtectedCapabilitiesKHR</code>::<code>supportsProtected</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code> in the <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-02679",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_image_compression_control)+!(VK_EXT_image_compression_control_swapchain)": [
-        {
-          "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-06751",
-          "text": " The <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)": [
+          "text": "If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-06752",
-          "text": " If the <a href=\"#features-imageCompressionControlSwapchain\"><code>imageCompressionControlSwapchain</code></a> feature is not enabled, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure"
+          "text": "If the <a href=\"#features-imageCompressionControlSwapchain\"><code>imageCompressionControlSwapchain</code></a> feature is not enabled, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include an <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, <a href=\"#VkSwapchainCounterCreateInfoEXT\">VkSwapchainCounterCreateInfoEXT</a>, <a href=\"#VkSwapchainDisplayNativeHdrCreateInfoAMD\">VkSwapchainDisplayNativeHdrCreateInfoAMD</a>, <a href=\"#VkSwapchainLatencyCreateInfoNV\">VkSwapchainLatencyCreateInfoNV</a>, <a href=\"#VkSwapchainPresentBarrierCreateInfoNV\">VkSwapchainPresentBarrierCreateInfoNV</a>, <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, or <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSwapchainCreateFlagBitsKHR\">VkSwapchainCreateFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter",
+          "text": "<code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter",
+          "text": "<code>imageFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter",
+          "text": "<code>imageColorSpace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkColorSpaceKHR\">VkColorSpaceKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter",
+          "text": "<code>imageUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask",
+          "text": "<code>imageUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter",
+          "text": "<code>imageSharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter",
+          "text": "<code>preTransform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter",
+          "text": "<code>compositeAlpha</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompositeAlphaFlagBitsKHR\">VkCompositeAlphaFlagBitsKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter",
+          "text": "<code>presentMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter",
+          "text": "If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent",
+          "text": "Both of <code>oldSwapchain</code>, and <code>surface</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupSwapchainCreateInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter",
-          "text": " <code>modes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> values"
+          "text": "<code>modes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask",
-          "text": " <code>modes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>modes</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainDisplayNativeHdrCreateInfoAMD": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449",
-          "text": " It is only valid to set <code>localDimmingEnable</code> to <code>VK_TRUE</code> if <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> is supported"
+          "text": "It is only valid to set <code>localDimmingEnable</code> to <code>VK_TRUE</code> if <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> is supported",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetLocalDimmingAMD": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [
+      "core": [
         {
           "vuid": "VUID-vkSetLocalDimmingAMD-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parameter",
-          "text": " <code>swapChain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapChain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parent",
-          "text": " <code>swapChain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapChain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618",
-          "text": " <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> <strong class=\"purple\">must</strong> be supported"
+          "text": "<a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> <strong class=\"purple\">must</strong> be supported",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainCounterCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244",
-          "text": " The bits in <code>surfaceCounters</code> <strong class=\"purple\">must</strong> be supported by <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>surface</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2EXT\">vkGetPhysicalDeviceSurfaceCapabilities2EXT</a>"
+          "text": "The bits in <code>surfaceCounters</code> <strong class=\"purple\">must</strong> be supported by <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>surface</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2EXT\">vkGetPhysicalDeviceSurfaceCapabilities2EXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter",
-          "text": " <code>surfaceCounters</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> values"
+          "text": "<code>surfaceCounters</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSwapchainCounterEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245",
-          "text": " One or more present commands on <code>swapchain</code> <strong class=\"purple\">must</strong> have been processed by the presentation engine"
+          "text": "One or more present commands on <code>swapchain</code> <strong class=\"purple\">must</strong> have been processed by the presentation engine",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter",
-          "text": " <code>counter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> value"
+          "text": "<code>counter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter",
-          "text": " <code>pCounterValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
+          "text": "<code>pCounterValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainPresentModesCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762",
-          "text": " Each entry in pPresentModes <strong class=\"purple\">must</strong> be one of the <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values returned by <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code> for the surface"
+          "text": "Each entry in pPresentModes <strong class=\"purple\">must</strong> be one of the <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values returned by <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code> for the surface",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763",
-          "text": " The entries in pPresentModes <strong class=\"purple\">must</strong> be a subset of the present modes returned in <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>::<code>pPresentModes</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "The entries in pPresentModes <strong class=\"purple\">must</strong> be a subset of the present modes returned in <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>::<code>pPresentModes</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764",
-          "text": " <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> <strong class=\"purple\">must</strong> be included in <code>pPresentModes</code>"
+          "text": "<a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> <strong class=\"purple\">must</strong> be included in <code>pPresentModes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameter",
-          "text": " <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
+          "text": "<code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylength",
-          "text": " <code>presentModeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>presentModeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainPresentScalingCreateInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765",
-          "text": " If <code>presentGravityX</code> is <code>0</code>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "If <code>presentGravityX</code> is <code>0</code>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766",
-          "text": " If <code>presentGravityX</code> is not <code>0</code>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "If <code>presentGravityX</code> is not <code>0</code>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07767",
-          "text": " <code>presentScaling</code> <strong class=\"purple\">must</strong> not have more than one bit set"
+          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07767",
+          "text": "<code>scalingBehavior</code> <strong class=\"purple\">must</strong> not have more than one bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768",
-          "text": " <code>presentGravityX</code> <strong class=\"purple\">must</strong> not have more than one bit set"
+          "text": "<code>presentGravityX</code> <strong class=\"purple\">must</strong> not have more than one bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769",
-          "text": " <code>presentGravityY</code> <strong class=\"purple\">must</strong> not have more than one bit set"
+          "text": "<code>presentGravityY</code> <strong class=\"purple\">must</strong> not have more than one bit set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07770",
-          "text": " <code>presentScaling</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770",
+          "text": "<code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentScaling-07771",
-          "text": " If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentScaling</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771",
+          "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772",
-          "text": " <code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "<code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773",
-          "text": " If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774",
-          "text": " <code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "<code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775",
-          "text": " If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>"
+          "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameter",
-          "text": " <code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentScalingFlagBitsEXT\">VkPresentScalingFlagBitsEXT</a> values"
+          "text": "<code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentScalingFlagBitsEXT\">VkPresentScalingFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-parameter",
-          "text": " <code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values"
+          "text": "<code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-parameter",
-          "text": " <code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values"
+          "text": "<code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPresentGravityFlagBitsEXT\">VkPresentGravityFlagBitsEXT</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroySwapchainKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282",
-          "text": " All uses of presentable images acquired from <code>swapchain</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All uses of presentable images acquired from <code>swapchain</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter",
-          "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parent",
-          "text": " If <code>swapchain</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>swapchain</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateSharedSwapchainsKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter",
-          "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structures"
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter",
-          "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
+          "text": "<code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetSwapchainImagesKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter",
-          "text": " <code>pSwapchainImageCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pSwapchainImageCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter",
-          "text": " If the value referenced by <code>pSwapchainImageCount</code> is not <code>0</code>, and <code>pSwapchainImages</code> is not <code>NULL</code>, <code>pSwapchainImages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSwapchainImageCount</code> <a href=\"#VkImage\">VkImage</a> handles"
+          "text": "If the value referenced by <code>pSwapchainImageCount</code> is not <code>0</code>, and <code>pSwapchainImages</code> is not <code>NULL</code>, <code>pSwapchainImages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSwapchainImageCount</code> <a href=\"#VkImage\">VkImage</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireNextImageKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-fence-01287",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780",
-          "text": " <code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-surface-07783",
-          "text": " If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create the <code>swapchain</code> member of <code>pAcquireInfo</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>"
+          "text": "If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create the <code>swapchain</code> member of <code>pAcquireInfo</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter",
-          "text": " <code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent",
-          "text": " If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImageKHR-fence-parent",
-          "text": " If <code>fence</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
+          "text": "If <code>fence</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkAcquireNextImage2KHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-vkAcquireNextImage2KHR-surface-07784",
-          "text": " If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create <code>swapchain</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>"
+          "text": "If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create <code>swapchain</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter",
-          "text": " <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a> structure"
+          "text": "<code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter",
-          "text": " <code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAcquireNextImageInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782",
-          "text": " <code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291",
-          "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
+          "text": "<code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266",
+          "text": "<code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter",
-          "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
+          "text": "If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter",
-          "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
+          "text": "If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent",
-          "text": " Each of <code>fence</code>, <code>semaphore</code>, and <code>swapchain</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
-          "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266",
-          "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
+          "text": "Each of <code>fence</code>, <code>semaphore</code>, and <code>swapchain</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueuePresentKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292",
-          "text": " Each element of <code>pSwapchains</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a swapchain that is created for a surface for which presentation is supported from <code>queue</code> as determined using a call to <code>vkGetPhysicalDeviceSurfaceSupportKHR</code>"
+          "text": "Each element of <code>pSwapchains</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a swapchain that is created for a surface for which presentation is supported from <code>queue</code> as determined using a call to <code>vkGetPhysicalDeviceSurfaceSupportKHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293",
+          "text": "If more than one member of <code>pSwapchains</code> was created from a display surface, all display surfaces referenced that refer to the same display <strong class=\"purple\">must</strong> use the same display mode",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294",
-          "text": " When a semaphore wait operation referring to a binary semaphore defined by the elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
+          "text": "When a semaphore wait operation referring to a binary semaphore defined by the elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01295",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
-        },
-        {
-          "vuid": "VUID-vkQueuePresentKHR-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
-        },
-        {
-          "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter",
-          "text": " <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a> structure"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
-        {
-          "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293",
-          "text": " If more than one member of <code>pSwapchains</code> was created from a display surface, all display surfaces referenced that refer to the same display <strong class=\"purple\">must</strong> use the same display mode"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
-        {
           "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03267",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
+          "text": "All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03268",
-          "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
+          "text": "All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> on which it depends <strong class=\"purple\">must</strong> have also been submitted for execution",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueuePresentKHR-queue-parameter",
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter",
+          "text": "<code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [
+      "core": [
         {
-          "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01296",
-          "text": " Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by the corresponding element of the <code>pSwapchains</code> array, and the presented image subresource <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code> layout at the time the operation is executed on a <code>VkDevice</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
+          "vuid": "VUID-VkPresentInfoKHR-pSwapchain-09231",
+          "text": "Elements of <code>pSwapchain</code> <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430",
-          "text": " Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by the corresponding element of the <code>pSwapchains</code> array, and the presented image subresource <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code> layout at the time the operation is executed on a <code>VkDevice</code>"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)": [
+          "text": "Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by the corresponding element of the <code>pSwapchains</code> array, and the presented image subresource <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code> layout at the time the operation is executed on a <code>VkDevice</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPresentInfoKHR-pNext-06235",
-          "text": " If a <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a> structure is included in the <code>pNext</code> chain, and the <a href=\"#features-presentId\"><code>presentId</code></a> feature is not enabled, each <code>presentIds</code> entry in that structure <strong class=\"purple\">must</strong> be NULL"
-        }
-      ],
-      "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+          "text": "If a <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a> structure is included in the <code>pNext</code> chain, and the <a href=\"#features-presentId\"><code>presentId</code></a> feature is not enabled, each <code>presentIds</code> entry in that structure <strong class=\"purple\">must</strong> be NULL",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPresentInfoKHR-pSwapchains-09199",
+          "text": "If any element of the <code>pSwapchains</code> array has been created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, all of the elements of this array <strong class=\"purple\">must</strong> be created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPresentInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupPresentInfoKHR\">VkDeviceGroupPresentInfoKHR</a>, <a href=\"#VkDisplayPresentInfoKHR\">VkDisplayPresentInfoKHR</a>, <a href=\"#VkPresentFrameTokenGGP\">VkPresentFrameTokenGGP</a>, <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a>, <a href=\"#VkPresentRegionsKHR\">VkPresentRegionsKHR</a>, <a href=\"#VkPresentTimesInfoGOOGLE\">VkPresentTimesInfoGOOGLE</a>, <a href=\"#VkSwapchainPresentFenceInfoEXT\">VkSwapchainPresentFenceInfoEXT</a>, or <a href=\"#VkSwapchainPresentModeInfoEXT\">VkSwapchainPresentModeInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupPresentInfoKHR\">VkDeviceGroupPresentInfoKHR</a>, <a href=\"#VkDisplayPresentInfoKHR\">VkDisplayPresentInfoKHR</a>, <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkPresentFrameTokenGGP\">VkPresentFrameTokenGGP</a>, <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a>, <a href=\"#VkPresentRegionsKHR\">VkPresentRegionsKHR</a>, <a href=\"#VkPresentTimesInfoGOOGLE\">VkPresentTimesInfoGOOGLE</a>, <a href=\"#VkSwapchainPresentFenceInfoEXT\">VkSwapchainPresentFenceInfoEXT</a>, or <a href=\"#VkSwapchainPresentModeInfoEXT\">VkSwapchainPresentModeInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter",
-          "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
+          "text": "If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter",
-          "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
+          "text": "<code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter",
-          "text": " <code>pImageIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values"
+          "text": "<code>pImageIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-pResults-parameter",
-          "text": " If <code>pResults</code> is not <code>NULL</code>, <code>pResults</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkResult\">VkResult</a> values"
+          "text": "If <code>pResults</code> is not <code>NULL</code>, <code>pResults</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkResult\">VkResult</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentInfoKHR-commonparent",
-          "text": " Both of the elements of <code>pSwapchains</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of the elements of <code>pSwapchains</code>, and the elements of <code>pWaitSemaphores</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentRegionsKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
+      "core": [
         {
           "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentRegionsKHR</code> structure"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentRegionsKHR</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentRegionsKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter",
-          "text": " If <code>pRegions</code> is not <code>NULL</code>, <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkPresentRegionKHR\">VkPresentRegionKHR</a> structures"
+          "text": "If <code>pRegions</code> is not <code>NULL</code>, <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkPresentRegionKHR\">VkPresentRegionKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentRegionKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
+      "core": [
         {
           "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter",
-          "text": " If <code>rectangleCount</code> is not <code>0</code>, and <code>pRectangles</code> is not <code>NULL</code>, <code>pRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectangleCount</code> valid <a href=\"#VkRectLayerKHR\">VkRectLayerKHR</a> structures"
+          "text": "If <code>rectangleCount</code> is not <code>0</code>, and <code>pRectangles</code> is not <code>NULL</code>, <code>pRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectangleCount</code> valid <a href=\"#VkRectLayerKHR\">VkRectLayerKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkRectLayerKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
+      "core": [
         {
           "vuid": "VUID-VkRectLayerKHR-offset-04864",
-          "text": " The sum of <code>offset</code> and <code>extent</code>, after being transformed according to the <code>preTransform</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure, <strong class=\"purple\">must</strong> be no greater than the <code>imageExtent</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>"
+          "text": "The sum of <code>offset</code> and <code>extent</code>, after being transformed according to the <code>preTransform</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure, <strong class=\"purple\">must</strong> be no greater than the <code>imageExtent</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkRectLayerKHR-layer-01262",
-          "text": " <code>layer</code> <strong class=\"purple\">must</strong> be less than the <code>imageArrayLayers</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>"
+          "text": "<code>layer</code> <strong class=\"purple\">must</strong> be less than the <code>imageArrayLayers</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDisplayPresentInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257",
-          "text": " <code>srcRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the image being presented"
+          "text": "<code>srcRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the image being presented",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258",
-          "text": " <code>dstRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the <code>visibleRegion</code> parameter of the display mode the swapchain being presented uses"
+          "text": "<code>dstRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the <code>visibleRegion</code> parameter of the display mode the swapchain being presented uses",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259",
-          "text": " If the <code>persistentContent</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display the present operation targets is <code>VK_FALSE</code>, then <code>persistent</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
+          "text": "If the <code>persistentContent</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display the present operation targets is <code>VK_FALSE</code>, then <code>persistent</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceGroupPresentInfoKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> equal <code>0</code> or <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> equal <code>0</code> or <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298",
-          "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero"
+          "text": "If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299",
-          "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and some physical device in the logical device <strong class=\"purple\">must</strong> include that bit in its <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>"
+          "text": "If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and some physical device in the logical device <strong class=\"purple\">must</strong> include that bit in its <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300",
-          "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have a value for which all set bits are set in one of the elements of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>"
+          "text": "If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have a value for which all set bits are set in one of the elements of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301",
-          "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR</code>, then for each bit set in each element of <code>pDeviceMasks</code>, the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero"
+          "text": "If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR</code>, then for each bit set in each element of <code>pDeviceMasks</code>, the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302",
-          "text": " The value of each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be equal to the device mask passed in <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a>::<code>deviceMask</code> when the image index was last acquired"
+          "text": "The value of each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be equal to the device mask passed in <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a>::<code>deviceMask</code> when the image index was last acquired",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> have exactly one bit set, and that bit <strong class=\"purple\">must</strong> have been included in <a href=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>::<code>modes</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> have exactly one bit set, and that bit <strong class=\"purple\">must</strong> have been included in <a href=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>::<code>modes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter",
-          "text": " If <code>swapchainCount</code> is not <code>0</code>, <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values"
+          "text": "If <code>swapchainCount</code> is not <code>0</code>, <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentTimesInfoGOOGLE": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
+      "core": [
         {
           "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentTimesInfoGOOGLE</code> structure"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentTimesInfoGOOGLE</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter",
-          "text": " If <code>pTimes</code> is not <code>NULL</code>, <code>pTimes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkPresentTimeGOOGLE\">VkPresentTimeGOOGLE</a> structures"
+          "text": "If <code>pTimes</code> is not <code>NULL</code>, <code>pTimes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkPresentTimeGOOGLE\">VkPresentTimeGOOGLE</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentIdKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)": [
+      "core": [
         {
           "vuid": "VUID-VkPresentIdKHR-swapchainCount-04998",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where this <code>VkPresentIdKHR</code> is in the <code>pNext</code> chain of the <code>VkPresentInfoKHR</code> structure"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where this <code>VkPresentIdKHR</code> is in the <code>pNext</code> chain of the <code>VkPresentInfoKHR</code> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentIdKHR-presentIds-04999",
-          "text": " Each <code>presentIds</code> entry <strong class=\"purple\">must</strong> be greater than any previous <code>presentIds</code> entry passed for the associated <code>pSwapchains</code> entry"
+          "text": "Each <code>presentIds</code> entry <strong class=\"purple\">must</strong> be greater than any previous <code>presentIds</code> entry passed for the associated <code>pSwapchains</code> entry",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentIdKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_ID_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_ID_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentIdKHR-pPresentIds-parameter",
-          "text": " If <code>pPresentIds</code> is not <code>NULL</code>, <code>pPresentIds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint64_t</code> values"
+          "text": "If <code>pPresentIds</code> is not <code>NULL</code>, <code>pPresentIds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint64_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentIdKHR-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkWaitForPresentKHR": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)": [
+      "core": [
         {
           "vuid": "VUID-vkWaitForPresentKHR-swapchain-04997",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForPresentKHR-presentWait-06234",
-          "text": " The <a href=\"#features-presentWait\"><code>presentWait</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-presentWait\"><code>presentWait</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForPresentKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForPresentKHR-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWaitForPresentKHR-swapchain-parent",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPresentFrameTokenGGP": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)": [
+      "core": [
         {
           "vuid": "VUID-VkPresentFrameTokenGGP-frameToken-02680",
-          "text": " <code>frameToken</code> <strong class=\"purple\">must</strong> be a valid <code>GgpFrameToken</code>"
+          "text": "<code>frameToken</code> <strong class=\"purple\">must</strong> be a valid <code>GgpFrameToken</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPresentFrameTokenGGP-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainPresentModeInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761",
-          "text": " Each entry in <code>pPresentModes</code> must be a presentation mode specified in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::pPresentModes when creating the entry&#8217;s corresponding swapchain"
+          "text": "Each entry in <code>pPresentModes</code> must be a presentation mode specified in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> when creating the entry&#8217;s corresponding swapchain",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModeInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameter",
-          "text": " <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
+          "text": "<code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainPresentFenceInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758",
-          "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> be unsignaled"
+          "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> be unsignaled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759",
-          "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
+          "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameter",
-          "text": " <code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkFence\">VkFence</a> handles"
+          "text": "<code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkFence\">VkFence</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkReleaseSwapchainImagesEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-vkReleaseSwapchainImagesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameter",
-          "text": " <code>pReleaseInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkReleaseSwapchainImagesInfoEXT\">VkReleaseSwapchainImagesInfoEXT</a> structure"
+          "text": "<code>pReleaseInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkReleaseSwapchainImagesInfoEXT\">VkReleaseSwapchainImagesInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkReleaseSwapchainImagesInfoEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785",
-          "text": " Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by <code>swapchain</code>"
+          "text": "Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by <code>swapchain</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786",
-          "text": " All uses of presentable images identified by elements of <code>pImageIndices</code> <strong class=\"purple\">must</strong> have completed execution"
+          "text": "All uses of presentable images identified by elements of <code>pImageIndices</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameter",
-          "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-parameter",
-          "text": " <code>pImageIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageIndexCount</code> <code>uint32_t</code> values"
+          "text": "<code>pImageIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkReleaseSwapchainImagesInfoEXT-imageIndexCount-arraylength",
-          "text": " <code>imageIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>imageIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetHdrMetadataEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [
+      "core": [
         {
           "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter",
-          "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
+          "text": "<code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter",
-          "text": " <code>pMetadata</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkHdrMetadataEXT\">VkHdrMetadataEXT</a> structures"
+          "text": "<code>pMetadata</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkHdrMetadataEXT\">VkHdrMetadataEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength",
-          "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parent",
-          "text": " Each element of <code>pSwapchains</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "Each element of <code>pSwapchains</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkHdrMetadataEXT": {
-      "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [
+      "core": [
         {
           "vuid": "VUID-VkHdrMetadataEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HDR_METADATA_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HDR_METADATA_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSwapchainPresentBarrierCreateInfoNV": {
-      "(VK_KHR_surface)+(VK_NV_present_barrier)": [
+      "core": [
         {
           "vuid": "VUID-VkSwapchainPresentBarrierCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDeferredOperationKHR": {
-      "(VK_KHR_deferred_host_operations)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDeferredOperationKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDeferredOperationKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter",
-          "text": " <code>pDeferredOperation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "<code>pDeferredOperation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkDeferredOperationJoinKHR": {
-      "(VK_KHR_deferred_host_operations)": [
+      "core": [
         {
           "vuid": "VUID-vkDeferredOperationJoinKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parameter",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parent",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyDeferredOperationKHR": {
-      "(VK_KHR_deferred_host_operations)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03434",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03435",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> be completed"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> be completed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parameter",
-          "text": " If <code>operation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>operation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parent",
-          "text": " If <code>operation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>operation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeferredOperationMaxConcurrencyKHR": {
-      "(VK_KHR_deferred_host_operations)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeferredOperationResultKHR": {
-      "(VK_KHR_deferred_host_operations)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeferredOperationResultKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parameter",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parent",
-          "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreatePrivateDataSlot": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-vkCreatePrivateDataSlot-privateData-04564",
-          "text": " The <a href=\"#features-privateData\"><code>privateData</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-privateData\"><code>privateData</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePrivateDataSlot-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPrivateDataSlotCreateInfo\">VkPrivateDataSlotCreateInfo</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPrivateDataSlotCreateInfo\">VkPrivateDataSlotCreateInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePrivateDataSlot-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter",
-          "text": " <code>pPrivateDataSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
+          "text": "<code>pPrivateDataSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkPrivateDataSlotCreateInfo": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-VkPrivateDataSlotCreateInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPrivateDataSlotCreateInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyPrivateDataSlot": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter",
-          "text": " If <code>privateDataSlot</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
+          "text": "If <code>privateDataSlot</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent",
-          "text": " If <code>privateDataSlot</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>privateDataSlot</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetPrivateData": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-vkSetPrivateData-objectHandle-04016",
-          "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be <code>device</code> or a child of <code>device</code>"
+          "text": "<code>objectHandle</code> <strong class=\"purple\">must</strong> be <code>device</code> or a child of <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetPrivateData-objectHandle-04017",
-          "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid handle to an object of type <code>objectType</code>"
+          "text": "<code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid handle to an object of type <code>objectType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetPrivateData-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetPrivateData-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetPrivateData-privateDataSlot-parameter",
-          "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
+          "text": "<code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetPrivateData-privateDataSlot-parent",
-          "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPrivateData": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPrivateData-objectType-04018",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be <code>VK_OBJECT_TYPE_DEVICE</code>, or an object type whose parent is <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "<code>objectHandle</code> <strong class=\"purple\">must</strong> be <code>device</code> or a child of <code>device</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPrivateData-objectHandle-09498",
+          "text": "<code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid handle to an object of type <code>objectType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPrivateData-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPrivateData-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPrivateData-privateDataSlot-parameter",
-          "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
+          "text": "<code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPrivateData-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPrivateData-privateDataSlot-parent",
-          "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBuildAccelerationStructureNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241",
-          "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>"
+          "text": "<code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with compatible <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> where <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>type</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> are identical, <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>instanceCount</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>geometryCount</code> for <code>dst</code> are greater than or equal to the build size and each geometry in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>pGeometries</code> for <code>dst</code> has greater than or equal to the number of vertices, indices, and AABBs"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> have been created with compatible <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> where <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>type</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> are identical, <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>instanceCount</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>geometryCount</code> for <code>dst</code> are greater than or equal to the build size and each geometry in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>pGeometries</code> for <code>dst</code> has greater than or equal to the number of vertices, indices, and AABBs",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV</code> set in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> in the original build"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV</code> set in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> in the original build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491",
-          "text": " If <code>update</code> is <code>VK_FALSE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>"
+          "text": "If <code>update</code> is <code>VK_FALSE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522",
-          "text": " <code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523",
-          "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
+          "text": "If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786",
-          "text": " Each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureHandleNV\">vkGetAccelerationStructureHandleNV</a>"
+          "text": "Each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureHandleNV\">vkGetAccelerationStructureHandleNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously active <strong class=\"purple\">must</strong> not be made inactive as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously active <strong class=\"purple\">must</strong> not be made inactive as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously inactive <strong class=\"purple\">must</strong> not be made active as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously inactive <strong class=\"purple\">must</strong> not be made active as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526",
-          "text": " If <code>update</code> is <code>VK_TRUE</code>, the <code>src</code> and <code>dst</code> objects <strong class=\"purple\">must</strong> either be the same object or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
+          "text": "If <code>update</code> is <code>VK_TRUE</code>, the <code>src</code> and <code>dst</code> objects <strong class=\"purple\">must</strong> either be the same object or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-07787",
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter",
-          "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter",
-          "text": " If <code>src</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "If <code>src</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter",
-          "text": " <code>scratch</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dst</code>, <code>instanceData</code>, <code>scratch</code>, and <code>src</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>dst</code>, <code>instanceData</code>, <code>scratch</code>, and <code>src</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBuildAccelerationStructuresKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628",
-          "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
+          "text": "The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629",
-          "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403",
-          "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03800",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03700",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03663",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03664",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-None-03407",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03701",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03702",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03703",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03706",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03668",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03758",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, the <code>primitiveCount</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if the geometry uses indices, the <code>firstVertex</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801",
-          "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
+          "text": "For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03707",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03709",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> +  N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> +  N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673",
-          "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag"
+          "text": "The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674",
-          "text": " The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag"
+          "text": "The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803",
-          "text": " For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03712",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03810",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03714",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03715",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03716",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03717",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-06707",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a> or <code>0</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a> or <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675",
-          "text": " For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>"
+          "text": "For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676",
-          "text": " Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures"
+          "text": "Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameter",
-          "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
+          "text": "<code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter",
-          "text": " <code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures"
+          "text": "<code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength",
-          "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBuildAccelerationStructuresIndirectKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650",
+          "text": "The <a href=\"#features-accelerationStructureIndirectBuild\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureIndirectBuild</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628",
-          "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
+          "text": "The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629",
-          "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403",
-          "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, the <code>primitiveCount</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if the geometry uses indices, the <code>firstVertex</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801",
-          "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding pname:ppMaxPrimitiveCounts[i][j] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
+          "text": "For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding <code>ppMaxPrimitiveCounts</code>[i][j] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> +  N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> +  N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673",
-          "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag"
+          "text": "The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674",
-          "text": " The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag"
+          "text": "The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803",
-          "text": " For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-06707",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a> or <code>0</code>"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a> or <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645",
-          "text": " For any element of <code>pIndirectDeviceAddresses</code>, if the buffer from which it was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For any element of <code>pIndirectDeviceAddresses</code>, if the buffer from which it was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646",
-          "text": " For any element of <code>pIndirectDeviceAddresses</code>[i], all device addresses between <code>pIndirectDeviceAddresses</code>[i] and <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] &#43; (<code>pInfos</code>[i].<code>geometryCount</code> {times} <code>pIndirectStrides</code>[i]) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
+          "text": "For any element of <code>pIndirectDeviceAddresses</code>[i], all device addresses between <code>pIndirectDeviceAddresses</code>[i] and <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] +  (<code>pInfos</code>[i].<code>geometryCount</code> × <code>pIndirectStrides</code>[i]) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647",
-          "text": " For any element of <code>pIndirectDeviceAddresses</code>, the buffer from which it was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "For any element of <code>pIndirectDeviceAddresses</code>, the buffer from which it was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648",
-          "text": " Each element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "Each element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787",
-          "text": " Each element of <code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "Each element of <code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650",
-          "text": " The <a href=\"#features-accelerationStructureIndirectBuild\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureIndirectBuild</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651",
-          "text": " Each <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure referenced by any element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure"
+          "text": "Each <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure referenced by any element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652",
-          "text": " <code>pInfos</code>[i].<code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and <span class=\"eq\"><code>pMaxPrimitiveCounts</code> = <code>ppMaxPrimitiveCounts</code>[i]</span>"
+          "text": "<code>pInfos</code>[i].<code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and <span class=\"eq\"><code>pMaxPrimitiveCounts</code> = <code>ppMaxPrimitiveCounts</code>[i]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653",
-          "text": " Each <code>ppMaxPrimitiveCounts</code>[i][j] <strong class=\"purple\">must</strong> be greater than or equal to the the <code>primitiveCount</code> value specified by the <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure located at <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] &#43; (<code>j</code> {times} <code>pIndirectStrides</code>[i])</span>"
+          "text": "Each <code>ppMaxPrimitiveCounts</code>[i][j] <strong class=\"purple\">must</strong> be greater than or equal to the <code>primitiveCount</code> value specified by the <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure located at <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] +  (<code>j</code> × <code>pIndirectStrides</code>[i])</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameter",
-          "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
+          "text": "<code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameter",
-          "text": " <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkDeviceAddress\">VkDeviceAddress</a> values"
+          "text": "<code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkDeviceAddress\">VkDeviceAddress</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameter",
-          "text": " <code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values"
+          "text": "<code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameter",
-          "text": " <code>ppMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values"
+          "text": "<code>ppMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylength",
-          "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureBuildGeometryInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788",
-          "text": " Only one of <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "Only one of <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> not be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> not be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then the <code>geometryType</code> member of each geometry in either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be the same"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then the <code>geometryType</code> member of each geometry in either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be the same",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxGeometryCount</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxGeometryCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the total number of AABBs in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the total number of AABBs in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-03796",
-          "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR</code> bit set"
+          "text": "If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR</code> bit set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsKHR\">VkBuildAccelerationStructureFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter",
-          "text": " If <code>geometryCount</code> is not <code>0</code>, and <code>pGeometries</code> is not <code>NULL</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter",
-          "text": " If <code>geometryCount</code> is not <code>0</code>, and <code>ppGeometries</code> is not <code>NULL</code>, <code>ppGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid pointers to valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent",
-          "text": " Both of <code>dstAccelerationStructure</code>, and <code>srcAccelerationStructure</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
-        {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-04927",
-          "text": " If <code>dstAccelerationStructure</code> was created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>, <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> <strong class=\"purple\">must</strong> be set in <code>flags</code>"
+          "text": "If <code>dstAccelerationStructure</code> was created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>, <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> <strong class=\"purple\">must</strong> be set in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04928",
-          "text": " If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>"
+          "text": "If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04929",
-          "text": " If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)": [
+          "text": "If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334",
-          "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT</code> bit set then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT</code> bit set"
+          "text": "If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT</code> bit set then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter",
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsKHR\">VkBuildAccelerationStructureFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter",
+          "text": "If <code>geometryCount</code> is not <code>0</code>, and <code>pGeometries</code> is not <code>NULL</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter",
+          "text": "If <code>geometryCount</code> is not <code>0</code>, and <code>ppGeometries</code> is not <code>NULL</code>, <code>ppGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid pointers to valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent",
+          "text": "Both of <code>dstAccelerationStructure</code>, and <code>srcAccelerationStructure</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureGeometryKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter",
-          "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value"
+          "text": "<code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter",
-          "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the <code>triangles</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure"
+          "text": "If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the <code>triangles</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter",
-          "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the <code>aabbs</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure"
+          "text": "If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the <code>aabbs</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter",
-          "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the <code>instances</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure"
+          "text": "If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the <code>instances</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureGeometryTrianglesDataKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735",
-          "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be a multiple of the size in bytes of the smallest component of <code>vertexFormat</code>"
+          "text": "<code>vertexStride</code> <strong class=\"purple\">must</strong> be a multiple of the size in bytes of the smallest component of <code>vertexFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819",
-          "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
+          "text": "<code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797",
-          "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> support the <code>VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR</code> in <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>bufferFeatures</code> as returned by <a href=\"#vkGetPhysicalDeviceFormatProperties2\">vkGetPhysicalDeviceFormatProperties2</a>"
+          "text": "The <a href=\"#resources-buffer-view-format-features\">format features</a> of <code>vertexFormat</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_KHR</code>"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAccelerationStructureGeometryMotionTrianglesDataNV\">VkAccelerationStructureGeometryMotionTrianglesDataNV</a> or <a href=\"#VkAccelerationStructureTrianglesOpacityMicromapEXT\">VkAccelerationStructureTrianglesOpacityMicromapEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAccelerationStructureGeometryMotionTrianglesDataNV\">VkAccelerationStructureGeometryMotionTrianglesDataNV</a>, <a href=\"#VkAccelerationStructureTrianglesDisplacementMicromapNV\">VkAccelerationStructureTrianglesDisplacementMicromapNV</a>, or <a href=\"#VkAccelerationStructureTrianglesOpacityMicromapEXT\">VkAccelerationStructureTrianglesOpacityMicromapEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter",
-          "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureGeometryMotionTrianglesDataNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureTrianglesOpacityMicromapEXT": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335",
-          "text": " Only one of <code>pUsageCounts</code> or <code>ppUsageCounts</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "Only one of <code>pUsageCounts</code> or <code>ppUsageCounts</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameter",
-          "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameter",
-          "text": " If <code>usageCountsCount</code> is not <code>0</code>, and <code>pUsageCounts</code> is not <code>NULL</code>, <code>pUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures"
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>pUsageCounts</code> is not <code>NULL</code>, <code>pUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-ppUsageCounts-parameter",
-          "text": " If <code>usageCountsCount</code> is not <code>0</code>, and <code>ppUsageCounts</code> is not <code>NULL</code>, <code>ppUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> valid pointers to <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures"
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>ppUsageCounts</code> is not <code>NULL</code>, <code>ppUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> valid pointers to <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter",
-          "text": " <code>micromap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "If <code>micromap</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>micromap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkAccelerationStructureTrianglesDisplacementMicromapNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-07992",
+          "text": "Only one of <code>pUsageCounts</code> or <code>ppUsageCounts</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-parameter",
+          "text": "<code>displacementBiasAndScaleFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-parameter",
+          "text": "<code>displacementVectorFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-indexType-parameter",
+          "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-parameter",
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>pUsageCounts</code> is not <code>NULL</code>, <code>pUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-ppUsageCounts-parameter",
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>ppUsageCounts</code> is not <code>NULL</code>, <code>ppUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> valid pointers to <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameter",
+          "text": "If <code>micromap</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>micromap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkTransformMatrixKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkTransformMatrixKHR-matrix-03799",
-          "text": " The first three columns of <code>matrix</code> <strong class=\"purple\">must</strong> define an invertible 3x3 matrix"
+          "text": "The first three columns of <code>matrix</code> <strong class=\"purple\">must</strong> define an invertible 3x3 matrix",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureGeometryAabbsDataKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAabbPositionsKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAabbPositionsKHR-minX-03546",
-          "text": " <code>minX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxX</code>"
+          "text": "<code>minX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAabbPositionsKHR-minY-03547",
-          "text": " <code>minY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxY</code>"
+          "text": "<code>minY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxY</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAabbPositionsKHR-minZ-03548",
-          "text": " <code>minZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxZ</code>"
+          "text": "<code>minZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxZ</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureGeometryInstancesDataKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureInstanceKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureInstanceKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureMotionInstanceNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMotionInstanceTypeNV\">VkAccelerationStructureMotionInstanceTypeNV</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMotionInstanceTypeNV\">VkAccelerationStructureMotionInstanceTypeNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-staticInstance-parameter",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV</code>, the <code>staticInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a> structure"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV</code>, the <code>staticInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameter",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV</code>, the <code>matrixMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMatrixMotionInstanceNV\">VkAccelerationStructureMatrixMotionInstanceNV</a> structure"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV</code>, the <code>matrixMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMatrixMotionInstanceNV\">VkAccelerationStructureMatrixMotionInstanceNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-srtMotionInstance-parameter",
-          "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV</code>, the <code>srtMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureSRTMotionInstanceNV\">VkAccelerationStructureSRTMotionInstanceNV</a> structure"
+          "text": "If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV</code>, the <code>srtMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureSRTMotionInstanceNV\">VkAccelerationStructureSRTMotionInstanceNV</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureMatrixMotionInstanceNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureSRTMotionInstanceNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureBuildRangeInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656",
-          "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry uses indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexData</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexType</code>"
+          "text": "For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry uses indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexData</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657",
-          "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry does not use indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexData</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexFormat</code>"
+          "text": "For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry does not use indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexData</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexFormat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658",
-          "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the offset <code>transformOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>transformData</code> <strong class=\"purple\">must</strong> be a multiple of 16"
+          "text": "For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the offset <code>transformOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>transformData</code> <strong class=\"purple\">must</strong> be a multiple of 16",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659",
-          "text": " For geometries of type <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 8"
+          "text": "For geometries of type <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 8",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660",
-          "text": " For geometries of type <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 16"
+          "text": "For geometries of type <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 16",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteAccelerationStructuresPropertiesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494",
-          "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
+          "text": "The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-buffer-03736",
-          "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880",
-          "text": " The sum of <code>query</code> plus <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "The sum of <code>query</code> plus <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742",
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter",
-          "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
+          "text": "<code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+!(VK_KHR_ray_tracing_maintenance1)": [
-        {
-          "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
+          "text": "Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteAccelerationStructuresPropertiesNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756",
-          "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
+          "text": "The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757",
-          "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>"
+          "text": "<code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter",
-          "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles"
+          "text": "<code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyAccelerationStructureNV": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-04963",
-          "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411",
-          "text": " If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build"
+          "text": "If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718",
-          "text": " The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719",
-          "text": " The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07791",
+          "text": "The range of memory backing <code>dst</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing <code>src</code> that is accessed by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07792",
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter",
-          "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
+          "text": "<code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyAccelerationStructureInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-03410",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-04963",
-          "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-03411",
-          "text": " If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build"
+          "text": "If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718",
-          "text": " The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719",
-          "text": " The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-07791",
+          "text": "The range of memory backing <code>dst</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing <code>src</code> that is accessed by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-07792",
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-parameter",
-          "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-commonparent",
-          "text": " Both of <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyAccelerationStructureToMemoryKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739",
-          "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
+          "text": "<code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740",
-          "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
+          "text": "<code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741",
-          "text": " If the buffer pointed to by <code>pInfo-&gt;dst.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "If the buffer pointed to by <code>pInfo-&gt;dst.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyAccelerationStructureToMemoryInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959",
-          "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561",
-          "text": " The memory pointed to by <code>dst</code> <strong class=\"purple\">must</strong> be at least as large as the serialization size of <code>src</code>, as reported by <a href=\"#vkWriteAccelerationStructuresPropertiesKHR\">vkWriteAccelerationStructuresPropertiesKHR</a> or <a href=\"#vkCmdWriteAccelerationStructuresPropertiesKHR\">vkCmdWriteAccelerationStructuresPropertiesKHR</a> with a query type of <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
+          "text": "The memory pointed to by <code>dst</code> <strong class=\"purple\">must</strong> be at least as large as the serialization size of <code>src</code>, as reported by <a href=\"#vkWriteAccelerationStructuresPropertiesKHR\">vkWriteAccelerationStructuresPropertiesKHR</a> or <a href=\"#vkCmdWriteAccelerationStructuresPropertiesKHR\">vkCmdWriteAccelerationStructuresPropertiesKHR</a> with a query type of <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter",
-          "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMemoryToAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742",
-          "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
+          "text": "<code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743",
-          "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
+          "text": "<code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744",
-          "text": " If the buffer pointed to by <code>pInfo-&gt;src.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "If the buffer pointed to by <code>pInfo-&gt;src.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMemoryToAccelerationStructureInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960",
-          "text": " The source memory pointed to by <code>src</code> <strong class=\"purple\">must</strong> contain data previously serialized using <a href=\"#vkCmdCopyAccelerationStructureToMemoryKHR\">vkCmdCopyAccelerationStructureToMemoryKHR</a>, potentially modified to relocate acceleration structure references as described in that command"
+          "text": "The source memory pointed to by <code>src</code> <strong class=\"purple\">must</strong> contain data previously serialized using <a href=\"#vkCmdCopyAccelerationStructureToMemoryKHR\">vkCmdCopyAccelerationStructureToMemoryKHR</a>, potentially modified to relocate acceleration structure references as described in that command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414",
-          "text": " The data in <code>src</code> <strong class=\"purple\">must</strong> have a format compatible with the destination physical device as returned by <a href=\"#vkGetDeviceAccelerationStructureCompatibilityKHR\">vkGetDeviceAccelerationStructureCompatibilityKHR</a>"
+          "text": "The data in <code>src</code> <strong class=\"purple\">must</strong> have a format compatible with the destination physical device as returned by <a href=\"#vkGetDeviceAccelerationStructureCompatibilityKHR\">vkGetDeviceAccelerationStructureCompatibilityKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with a <code>size</code> greater than or equal to that used to serialize the data in <code>src</code>"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> have been created with a <code>size</code> greater than or equal to that used to serialize the data in <code>src</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceAccelerationStructureCompatibilityKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
-          "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661",
-          "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> or <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928",
+          "text": "The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameter",
-          "text": " <code>pVersionInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureVersionInfoKHR\">VkAccelerationStructureVersionInfoKHR</a> structure"
+          "text": "<code>pVersionInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureVersionInfoKHR\">VkAccelerationStructureVersionInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameter",
-          "text": " <code>pCompatibility</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureCompatibilityKHR\">VkAccelerationStructureCompatibilityKHR</a> value"
+          "text": "<code>pCompatibility</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureCompatibilityKHR\">VkAccelerationStructureCompatibilityKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkAccelerationStructureVersionInfoKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameter",
-          "text": " <code>pVersionData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) <code>uint8_t</code> values"
+          "text": "<code>pVersionData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) <code>uint8_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkBuildAccelerationStructuresKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581",
+          "text": "The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-mode-04628",
-          "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
+          "text": "The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629",
-          "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04630",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03403",
-          "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03800",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03699",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03700",
-          "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03663",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03664",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-None-03407",
-          "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
+          "text": "The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03701",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03702",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03703",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03704",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03705",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03706",
-          "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03667",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03668",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03758",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03759",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03760",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03761",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03762",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03763",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03764",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03765",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03766",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03767",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, the <code>primitiveCount</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770",
-          "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if the geometry uses indices, the <code>firstVertex</code> member of its corresponding <code>VkAccelerationStructureBuildRangeInfoKHR</code> structure <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03801",
-          "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
+          "text": "For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03675",
-          "text": " For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>"
+          "text": "For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676",
-          "text": " Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures"
+          "text": "Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03722",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03723",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03724",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581",
-          "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03725",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03726",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03771",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03772",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03773",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.hostAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid host address"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.hostAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid host address",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03774",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03778",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03779",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.hostAddress</code> must be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-parameter",
-          "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter",
-          "text": " <code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylength",
-          "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03775",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03776",
-          "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03777",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03778",
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03779",
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04930",
-          "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> set, each <code>accelerationStructureReference</code> in any structure in <a href=\"#VkAccelerationStructureMotionInstanceNV\">VkAccelerationStructureMotionInstanceNV</a> value in <code>geometry.instances.data.hostAddress</code> must be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object"
+          "text": "For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> set, each <code>accelerationStructureReference</code> in any structure in <a href=\"#VkAccelerationStructureMotionInstanceNV\">VkAccelerationStructureMotionInstanceNV</a> value in <code>geometry.instances.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameter",
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-parameter",
+          "text": "<code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter",
+          "text": "<code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylength",
+          "text": "<code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent",
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582",
+          "text": "The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03727",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03728",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582",
-          "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03780",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03781",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter",
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter",
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent",
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyMemoryToAccelerationStructureKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583",
+          "text": "The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729",
-          "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
+          "text": "<code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750",
-          "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
+          "text": "<code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583",
-          "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782",
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyAccelerationStructureToMemoryKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584",
+          "text": "The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732",
-          "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
+          "text": "<code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751",
-          "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
+          "text": "<code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584",
-          "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783",
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkWriteAccelerationStructuresPropertiesKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
+      "core": [
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585",
+          "text": "The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431",
-          "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>"
+          "text": "All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742",
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>accelerationStructureCount</code>*<code>stride</code></span>"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733",
-          "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585",
-          "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter",
-          "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength",
-          "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent",
-          "text": " Each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)": [
-        {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06734",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+!(VK_KHR_ray_tracing_maintenance1)": [
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>accelerationStructureCount</code>*<code>stride</code></span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733",
+          "text": "The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784",
-          "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter",
+          "text": "<code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter",
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter",
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength",
+          "text": "<code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength",
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent",
+          "text": "Each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBuildMicromapsEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07461",
-          "text": " For each <code>pInfos</code>[i], <code>dstMicromap</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span>"
+          "text": "For each <code>pInfos</code>[i], <code>dstMicromap</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-mode-07462",
-          "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildMicromapModeEXT\">VkBuildMicromapModeEXT</a> value"
+          "text": "The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildMicromapModeEXT\">VkBuildMicromapModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07463",
-          "text": " The <code>dstMicromap</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "The <code>dstMicromap</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07464",
-          "text": " For each element of <code>pInfos</code> its <code>type</code> member <strong class=\"purple\">must</strong> match the value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>type</code> when its <code>dstMicromap</code> was created"
+          "text": "For each element of <code>pInfos</code> its <code>type</code> member <strong class=\"purple\">must</strong> match the value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>type</code> when its <code>dstMicromap</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465",
-          "text": " The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstMicromap</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstMicromap</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-dstMicromap-07466",
-          "text": " The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-scratchData-07467",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07508",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07509",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_MICROMAP_MODE_BUILD_EXT</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure returned from a call to <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with an identical <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_MICROMAP_MODE_BUILD_EXT</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> +  N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure returned from a call to <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with an identical <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure and primitive count",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-data-07510",
-          "text": " The buffers from which the buffer device addresses for all of the <code>data</code> and <code>triangleArray</code> members of all <code>pInfos</code>[i] are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT</code> usage flag"
+          "text": "The buffers from which the buffer device addresses for all of the <code>data</code> and <code>triangleArray</code> members of all <code>pInfos</code>[i] are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07511",
-          "text": " For each element of <code>pInfos</code>[i] the buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag"
+          "text": "For each element of <code>pInfos</code>[i] the buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07512",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code>, <code>data.deviceAddress</code>, and <code>triangleArray.deviceAddress</code> members <strong class=\"purple\">must</strong> be valid device addresses obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code>, <code>data.deviceAddress</code>, and <code>triangleArray.deviceAddress</code> members <strong class=\"purple\">must</strong> be valid device addresses obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07513",
-          "text": " For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code>, <code>data.deviceAddress</code>, or <code>triangleArray.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code>, <code>data.deviceAddress</code>, or <code>triangleArray.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07514",
-          "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>"
+          "text": "For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07515",
-          "text": " For each element of <code>pInfos</code>, its <code>triangleArray.deviceAddress</code> and <code>data.deviceAddress</code> members <strong class=\"purple\">must</strong> be a multiple of <code>256</code>"
+          "text": "For each element of <code>pInfos</code>, its <code>triangleArray.deviceAddress</code> and <code>data.deviceAddress</code> members <strong class=\"purple\">must</strong> be a multiple of <code>256</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-parameter",
-          "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structures"
+          "text": "<code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBuildMicromapsEXT-infoCount-arraylength",
-          "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapBuildInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516",
-          "text": " Only one of <code>pUsageCounts</code> or <code>ppUsageCounts</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "Only one of <code>pUsageCounts</code> or <code>ppUsageCounts</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-type-07517",
-          "text": " If <code>type</code> is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> the <code>format</code> member of <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkOpacityMicromapFormatEXT</code>"
+          "text": "If <code>type</code> is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> the <code>format</code> member of <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkOpacityMicromapFormatEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-type-07518",
-          "text": " If <code>type</code> is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> the <code>format</code> member of <a href=\"#VkMicromapTriangleEXT\">VkMicromapTriangleEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkOpacityMicromapFormatEXT</code>"
+          "text": "If <code>type</code> is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> the <code>format</code> member of <a href=\"#VkMicromapTriangleEXT\">VkMicromapTriangleEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkOpacityMicromapFormatEXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapBuildInfoEXT-type-08704",
+          "text": "If <code>type</code> is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> the <code>format</code> member of <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkDisplacementMicromapFormatNV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapBuildInfoEXT-type-08705",
+          "text": "If <code>type</code> is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> the <code>format</code> member of <a href=\"#VkMicromapTriangleEXT\">VkMicromapTriangleEXT</a> <strong class=\"purple\">must</strong> be a valid value from <code>VkDisplacementMicromapFormatNV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildMicromapFlagBitsEXT\">VkBuildMicromapFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildMicromapFlagBitsEXT\">VkBuildMicromapFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameter",
-          "text": " If <code>usageCountsCount</code> is not <code>0</code>, and <code>pUsageCounts</code> is not <code>NULL</code>, <code>pUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures"
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>pUsageCounts</code> is not <code>NULL</code>, <code>pUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapBuildInfoEXT-ppUsageCounts-parameter",
-          "text": " If <code>usageCountsCount</code> is not <code>0</code>, and <code>ppUsageCounts</code> is not <code>NULL</code>, <code>ppUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> valid pointers to <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures"
+          "text": "If <code>usageCountsCount</code> is not <code>0</code>, and <code>ppUsageCounts</code> is not <code>NULL</code>, <code>ppUsageCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>usageCountsCount</code> valid pointers to <a href=\"#VkMicromapUsageEXT\">VkMicromapUsageEXT</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapUsageEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapUsageEXT-format-07519",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> or <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> or <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapUsageEXT-format-07520",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxOpacity2StateSubdivisionLevel</code> of <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>::<code>maxOpacity2StateSubdivisionLevel</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapUsageEXT-format-07521",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxOpacity4StateSubdivisionLevel</code> of <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>::<code>maxOpacity4StateSubdivisionLevel</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapUsageEXT-format-08706",
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV</code>, <code>VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV</code> or <code>VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapUsageEXT-subdivisionLevel-08707",
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>::<code>maxDisplacementMicromapSubdivisionLevel</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapTriangleEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapTriangleEXT-format-07522",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> or <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> or <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapTriangleEXT-format-07523",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxOpacity2StateSubdivisionLevel</code> of <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>::<code>maxOpacity2StateSubdivisionLevel</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapTriangleEXT-format-07524",
-          "text": " If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxOpacity4StateSubdivisionLevel</code> of <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>"
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT</code> and <code>format</code> is <code>VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>::<code>maxOpacity4StateSubdivisionLevel</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapTriangleEXT-format-08708",
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> then <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV</code>, <code>VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV</code> or <code>VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkMicromapTriangleEXT-subdivisionLevel-08709",
+          "text": "If the <a href=\"#VkMicromapTypeEXT\">VkMicromapTypeEXT</a> of the micromap is <code>VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV</code> then <code>subdivisionLevel</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>::<code>maxDisplacementMicromapSubdivisionLevel</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdWriteMicromapsPropertiesEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526",
-          "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
+          "text": "The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527",
-          "text": " The <code>buffer</code> used to create each micromap in <code>pMicrmaps</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create each micromap in <code>pMicrmaps</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528",
-          "text": " The sum of <code>query</code> plus <code>micromapCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
+          "text": "The sum of <code>query</code> plus <code>micromapCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501",
-          "text": " All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502",
-          "text": " All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code>"
+          "text": "All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code> or <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code> or <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-parameter",
-          "text": " <code>pMicromaps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>micromapCount</code> valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handles"
+          "text": "<code>pMicromaps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>micromapCount</code> valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameter",
-          "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
+          "text": "<code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylength",
-          "text": " <code>micromapCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>micromapCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdWriteMicromapsPropertiesEXT-commonparent",
-          "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-buffer-07529",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-buffer-07530",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapInfoEXT\">VkCopyMicromapInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapInfoEXT\">VkCopyMicromapInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMicromapInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-mode-07531",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_COMPACT_EXT</code> or <code>VK_COPY_MICROMAP_MODE_CLONE_EXT</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_COMPACT_EXT</code> or <code>VK_COPY_MICROMAP_MODE_CLONE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-src-07532",
-          "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-mode-07533",
-          "text": " If <code>mode</code> is <code>VK_COPY_MICROMAP_MODE_COMPACT_EXT</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> in the build"
+          "text": "If <code>mode</code> is <code>VK_COPY_MICROMAP_MODE_COMPACT_EXT</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> in the build",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-buffer-07534",
-          "text": " The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-buffer-07535",
-          "text": " The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-src-parameter",
-          "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "<code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapInfoEXT-commonparent",
-          "text": " Both of <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMicromapToMemoryEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536",
-          "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
+          "text": "<code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537",
-          "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
+          "text": "<code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538",
-          "text": " If the buffer pointed to by <code>pInfo-&gt;dst.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "If the buffer pointed to by <code>pInfo-&gt;dst.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapToMemoryInfoEXT\">VkCopyMicromapToMemoryInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapToMemoryInfoEXT\">VkCopyMicromapToMemoryInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMicromapToMemoryInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-src-07540",
-          "text": " The source micromap <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "The source micromap <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541",
-          "text": " The memory pointed to by <code>dst</code> <strong class=\"purple\">must</strong> be at least as large as the serialization size of <code>src</code>, as reported by <a href=\"#vkWriteMicromapsPropertiesEXT\">vkWriteMicromapsPropertiesEXT</a> or <a href=\"#vkCmdWriteMicromapsPropertiesEXT\">vkCmdWriteMicromapsPropertiesEXT</a> with a query type of <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>"
+          "text": "The memory pointed to by <code>dst</code> <strong class=\"purple\">must</strong> be at least as large as the serialization size of <code>src</code>, as reported by <a href=\"#vkWriteMicromapsPropertiesEXT\">vkWriteMicromapsPropertiesEXT</a> or <a href=\"#vkCmdWriteMicromapsPropertiesEXT\">vkCmdWriteMicromapsPropertiesEXT</a> with a query type of <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-mode-07542",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_SERIALIZE_EXT</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_SERIALIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-src-parameter",
-          "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "<code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCopyMemoryToMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543",
-          "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
+          "text": "<code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544",
-          "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
+          "text": "<code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545",
-          "text": " If the buffer pointed to by <code>pInfo-&gt;src.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
+          "text": "If the buffer pointed to by <code>pInfo-&gt;src.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToMicromapInfoEXT\">VkCopyMemoryToMicromapInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToMicromapInfoEXT\">VkCopyMemoryToMicromapInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCopyMemoryToMicromapInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-src-07547",
-          "text": " The source memory pointed to by <code>src</code> <strong class=\"purple\">must</strong> contain data previously serialized using <a href=\"#vkCmdCopyMicromapToMemoryEXT\">vkCmdCopyMicromapToMemoryEXT</a>"
+          "text": "The source memory pointed to by <code>src</code> <strong class=\"purple\">must</strong> contain data previously serialized using <a href=\"#vkCmdCopyMicromapToMemoryEXT\">vkCmdCopyMicromapToMemoryEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT</code>"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-src-07549",
-          "text": " The data in <code>src</code> <strong class=\"purple\">must</strong> have a format compatible with the destination physical device as returned by <a href=\"#vkGetDeviceMicromapCompatibilityEXT\">vkGetDeviceMicromapCompatibilityEXT</a>"
+          "text": "The data in <code>src</code> <strong class=\"purple\">must</strong> have a format compatible with the destination physical device as returned by <a href=\"#vkGetDeviceMicromapCompatibilityEXT\">vkGetDeviceMicromapCompatibilityEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with a <code>size</code> greater than or equal to that used to serialize the data in <code>src</code>"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> have been created with a <code>size</code> greater than or equal to that used to serialize the data in <code>src</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameter",
-          "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "<code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameter",
-          "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value"
+          "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyMicromapModeEXT\">VkCopyMicromapModeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceMicromapCompatibilityEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551",
-          "text": " The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromap\"><code>micromap</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameter",
-          "text": " <code>pVersionInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapVersionInfoEXT\">VkMicromapVersionInfoEXT</a> structure"
+          "text": "<code>pVersionInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMicromapVersionInfoEXT\">VkMicromapVersionInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameter",
-          "text": " <code>pCompatibility</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureCompatibilityKHR\">VkAccelerationStructureCompatibilityKHR</a> value"
+          "text": "<code>pCompatibility</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureCompatibilityKHR\">VkAccelerationStructureCompatibilityKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkMicromapVersionInfoEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkMicromapVersionInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapVersionInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMicromapVersionInfoEXT-pVersionData-parameter",
-          "text": " <code>pVersionData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) <code>uint8_t</code> values"
+          "text": "<code>pVersionData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) <code>uint8_t</code> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkBuildMicromapsEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07461",
-          "text": " For each <code>pInfos</code>[i], <code>dstMicromap</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span>"
+          "text": "For each <code>pInfos</code>[i], <code>dstMicromap</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-mode-07462",
-          "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildMicromapModeEXT\">VkBuildMicromapModeEXT</a> value"
+          "text": "The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildMicromapModeEXT\">VkBuildMicromapModeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07463",
-          "text": " The <code>dstMicromap</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle"
+          "text": "The <code>dstMicromap</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07464",
-          "text": " For each element of <code>pInfos</code> its <code>type</code> member <strong class=\"purple\">must</strong> match the value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>type</code> when its <code>dstMicromap</code> was created"
+          "text": "For each element of <code>pInfos</code> its <code>type</code> member <strong class=\"purple\">must</strong> match the value of <a href=\"#VkMicromapCreateInfoEXT\">VkMicromapCreateInfoEXT</a>::<code>type</code> when its <code>dstMicromap</code> was created",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07465",
-          "text": " The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstMicromap</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstMicromap</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-dstMicromap-07466",
-          "text": " The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
+          "text": "The range of memory backing the <code>dstMicromap</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-scratchData-07467",
-          "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
+          "text": "The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07552",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07553",
-          "text": " For each element of <code>pInfos</code>, all referenced addresses of <code>pInfos</code>[i].<code>data.hostAddress</code> <strong class=\"purple\">must</strong> be valid host memory"
+          "text": "For each element of <code>pInfos</code>, all referenced addresses of <code>pInfos</code>[i].<code>data.hostAddress</code> <strong class=\"purple\">must</strong> be valid host memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07554",
-          "text": " For each element of <code>pInfos</code>, all referenced addresses of <code>pInfos</code>[i].<code>triangleArray.hostAddress</code> <strong class=\"purple\">must</strong> be valid host memory"
+          "text": "For each element of <code>pInfos</code>, all referenced addresses of <code>pInfos</code>[i].<code>triangleArray.hostAddress</code> <strong class=\"purple\">must</strong> be valid host memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-micromapHostCommands-07555",
-          "text": " The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07556",
-          "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_MICROMAP_MODE_BUILD_EXT</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure returned from a call to <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with an identical <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure and primitive count"
+          "text": "If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_MICROMAP_MODE_BUILD_EXT</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkMicromapBuildSizesInfoEXT\">VkMicromapBuildSizesInfoEXT</a> structure returned from a call to <a href=\"#vkGetMicromapBuildSizesEXT\">vkGetMicromapBuildSizesEXT</a> with an identical <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structure and primitive count",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07557",
+          "text": "For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-pInfos-parameter",
-          "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structures"
+          "text": "<code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkMicromapBuildInfoEXT\">VkMicromapBuildInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-infoCount-arraylength",
-          "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBuildMicromapsEXT-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkBuildMicromapsEXT-pInfos-07557",
-          "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstMicromap</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapEXT-buffer-07558",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapEXT-buffer-07559",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapEXT-micromapHostCommands-07560",
-          "text": " The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCopyMicromapEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCopyMicromapEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapInfoEXT\">VkCopyMicromapInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
           "vuid": "VUID-vkCopyMicromapEXT-buffer-07561",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapEXT-buffer-07562",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMicromapEXT-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parameter",
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMicromapEXT-pInfo-parameter",
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapInfoEXT\">VkCopyMicromapInfoEXT</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMicromapEXT-deferredOperation-parent",
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyMemoryToMicromapEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-07563",
-          "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
+          "text": "<code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-07564",
-          "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
+          "text": "<code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-buffer-07565",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566",
-          "text": " The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMemoryToMicromapEXT-buffer-07567",
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToMicromapInfoEXT\">VkCopyMemoryToMicromapInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToMicromapInfoEXT\">VkCopyMemoryToMicromapInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCopyMemoryToMicromapEXT-buffer-07567",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCopyMicromapToMemoryEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03677",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678",
-          "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
+          "text": "Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-buffer-07568",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-07569",
-          "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
+          "text": "<code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-07570",
-          "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
+          "text": "<code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571",
-          "text": " The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCopyMicromapToMemoryEXT-buffer-07572",
+          "text": "The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameter",
-          "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
+          "text": "If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-pInfo-parameter",
-          "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapToMemoryInfoEXT\">VkCopyMicromapToMemoryInfoEXT</a> structure"
+          "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMicromapToMemoryInfoEXT\">VkCopyMicromapToMemoryInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parent",
-          "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkCopyMicromapToMemoryEXT-buffer-07572",
-          "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkWriteMicromapsPropertiesEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501",
-          "text": " All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
+          "text": "All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502",
-          "text": " All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code>"
+          "text": "All micromaps in <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07503",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code> or <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT</code> or <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07573",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07574",
-          "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>"
+          "text": "If <code>queryType</code> is <code>VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT</code>, then <code>pData</code> <strong class=\"purple\">must</strong> point to a <a href=\"#VkDeviceSize\">VkDeviceSize</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-07575",
-          "text": " If <code>queryType</code> is"
+          "text": "If <code>queryType</code> is",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>micromapCount</code>*<code>stride</code></span>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>micromapCount</code>*<code>stride</code></span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-buffer-07577",
-          "text": " The <code>buffer</code> used to create each micromap in <code>pMicromaps</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
+          "text": "The <code>buffer</code> used to create each micromap in <code>pMicromaps</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578",
-          "text": " The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-micromapHostCommands\"><code>VkPhysicalDeviceOpacityMicromapFeaturesEXT</code>::<code>micromapHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkWriteMicromapsPropertiesEXT-buffer-07579",
+          "text": "The <code>buffer</code> used to create each micromap in <code>pMicromaps</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parameter",
-          "text": " <code>pMicromaps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>micromapCount</code> valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handles"
+          "text": "<code>pMicromaps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>micromapCount</code> valid <a href=\"#VkMicromapEXT\">VkMicromapEXT</a> handles",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-queryType-parameter",
-          "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
+          "text": "<code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
+          "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylength",
-          "text": " <code>micromapCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>micromapCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parent",
-          "text": " Each element of <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ],
-      "(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)": [
-        {
-          "vuid": "VUID-vkWriteMicromapsPropertiesEXT-buffer-07579",
-          "text": " The <code>buffer</code> used to create each micromap in <code>pMicromaps</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
+          "text": "Each element of <code>pMicromaps</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdTraceRaysNV": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdTraceRaysNV-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-03429",
-          "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625",
-          "text": " This command <strong class=\"purple\">must</strong> not cause a pipeline trace ray instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxRecursionDepth</code> used to create the bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042",
-          "text": " If <code>raygenShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
-          "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>raygenShaderBindingTableBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456",
-          "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043",
-          "text": " If <code>missShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
-          "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>missShaderBindingTableBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458",
-          "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044",
-          "text": " If <code>hitShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
-          "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>hitShaderBindingTableBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460",
-          "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045",
-          "text": " If <code>callableShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
-          "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>callableShaderBindingTableBuffer</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462",
-          "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463",
-          "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464",
-          "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465",
-          "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466",
-          "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467",
-          "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468",
-          "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-width-02469",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-height-02470",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-depth-02471",
-          "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter",
-          "text": " <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter",
-          "text": " If <code>missShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter",
-          "text": " If <code>hitShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter",
-          "text": " If <code>callableShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callableShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-commonparent",
-          "text": " Each of <code>callableShaderBindingTableBuffer</code>, <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdTraceRaysNV-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysNV-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-03429",
+          "text": "Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-None-09458",
+          "text": "If the bound ray tracing pipeline state was created with the <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code> dynamic state enabled then <a href=\"#vkCmdSetRayTracingPipelineStackSizeKHR\">vkCmdSetRayTracingPipelineStackSizeKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this trace command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625",
+          "text": "This command <strong class=\"purple\">must</strong> not cause a pipeline trace ray instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxRecursionDepth</code> used to create the bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042",
+          "text": "If <code>raygenShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
+          "text": "<code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>raygenShaderBindingTableBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456",
+          "text": "<code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043",
+          "text": "If <code>missShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
+          "text": "<code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>missShaderBindingTableBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458",
+          "text": "<code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044",
+          "text": "If <code>hitShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
+          "text": "<code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>hitShaderBindingTableBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460",
+          "text": "<code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045",
+          "text": "If <code>callableShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
+          "text": "<code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>callableShaderBindingTableBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462",
+          "text": "<code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463",
+          "text": "<code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464",
+          "text": "<code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465",
+          "text": "<code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466",
+          "text": "<code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467",
+          "text": "<code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468",
+          "text": "<code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-width-02469",
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-height-02470",
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-depth-02471",
+          "text": "<code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter",
+          "text": "<code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter",
+          "text": "If <code>missShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter",
+          "text": "If <code>hitShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter",
+          "text": "If <code>callableShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callableShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysNV-commonparent",
+          "text": "Each of <code>callableShaderBindingTableBuffer</code>, <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdTraceRaysKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-03429",
-          "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679",
-          "text": " This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-03635",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-size-04023",
-          "text": " The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680",
-          "text": " If the buffer from which pname:pRayGenShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681",
-          "text": " The buffer from which the pname:pRayGenShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682",
-          "text": " pname:pRayGenShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683",
-          "text": " If the buffer from which pname:pMissShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684",
-          "text": " The buffer from which the pname:pMissShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685",
-          "text": " pname:pMissShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03686",
-          "text": " pname:pMissShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029",
-          "text": " pname:pMissShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687",
-          "text": " If the buffer from which pname:pHitShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688",
-          "text": " The buffer from which the pname:pHitShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689",
-          "text": " pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03690",
-          "text": " pname:pHitShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035",
-          "text": " pname:pHitShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691",
-          "text": " If the buffer from which pname:pCallableShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692",
-          "text": " The buffer from which the pname:pCallableShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693",
-          "text": " pname:pCallableShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03694",
-          "text": " pname:pCallableShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041",
-          "text": " pname:pCallableShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03696",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03697",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by pname:pMissShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-width-03638",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-height-03639",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-depth-03640",
-          "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-width-03641",
-          "text": " <span class=\"eq\"><code>width</code> {times} <code>height</code> {times} <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter",
-          "text": " <code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter",
-          "text": " <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter",
-          "text": " <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter",
-          "text": " <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysKHR-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-03429",
+          "text": "Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-None-09458",
+          "text": "If the bound ray tracing pipeline state was created with the <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code> dynamic state enabled then <a href=\"#vkCmdSetRayTracingPipelineStackSizeKHR\">vkCmdSetRayTracingPipelineStackSizeKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this trace command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679",
+          "text": "This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-03635",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-size-04023",
+          "text": "The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680",
+          "text": "If the buffer from which <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681",
+          "text": "The buffer from which the <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682",
+          "text": "<code>pRayGenShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683",
+          "text": "If the buffer from which <code>pMissShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684",
+          "text": "The buffer from which the <code>pMissShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685",
+          "text": "<code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03686",
+          "text": "<code>pMissShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029",
+          "text": "<code>pMissShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687",
+          "text": "If the buffer from which <code>pHitShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688",
+          "text": "The buffer from which the <code>pHitShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689",
+          "text": "<code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03690",
+          "text": "<code>pHitShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035",
+          "text": "<code>pHitShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691",
+          "text": "If the buffer from which <code>pCallableShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692",
+          "text": "The buffer from which the <code>pCallableShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693",
+          "text": "<code>pCallableShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-03694",
+          "text": "<code>pCallableShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041",
+          "text": "<code>pCallableShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03696",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03697",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by <code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735",
+          "text": "Any non-zero hit shader group entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736",
+          "text": "Any non-zero hit shader group entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-width-03638",
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-height-03639",
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-depth-03640",
+          "text": "<code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-width-03641",
+          "text": "<span class=\"eq\"><code>width</code> × <code>height</code> × <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter",
+          "text": "<code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter",
+          "text": "<code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter",
+          "text": "<code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter",
+          "text": "<code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysKHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkStridedDeviceAddressRegionKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04631",
-          "text": " If <code>size</code> is not zero, all addresses between <code>deviceAddress</code> and <span class=\"eq\"><code>deviceAddress</code> &#43; <code>size</code> - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
+          "text": "If <code>size</code> is not zero, all addresses between <code>deviceAddress</code> and <span class=\"eq\"><code>deviceAddress</code> +  <code>size</code> - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632",
-          "text": " If <code>size</code> is not zero, <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer from which <code>deviceAddress</code> was queried"
+          "text": "If <code>size</code> is not zero, <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer from which <code>deviceAddress</code> was queried",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBindInvocationMaskHUAWEI": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04976",
-          "text": " The <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code> set"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-width-04981",
-          "text": " Thread mask image resolution must match the <code>width</code> and <code>height</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a>"
+          "text": "Thread mask image resolution <strong class=\"purple\">must</strong> match the <code>width</code> and <code>height</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04982",
-          "text": " Each element in the invocation mask image <strong class=\"purple\">must</strong> have the value <code>0</code> or <code>1</code>. The value 1 means the invocation is active"
+          "text": "Each element in the invocation mask image <strong class=\"purple\">must</strong> have the value <code>0</code> or <code>1</code>. The value 1 means the invocation is active",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-width-04983",
-          "text": " <code>width</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a> should be 1"
+          "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983",
+          "text": "<code>depth</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a> <strong class=\"purple\">must</strong> be 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter",
-          "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter",
-          "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>imageView</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdTraceRaysIndirectKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429",
-          "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679",
-          "text": " This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023",
-          "text": " The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680",
-          "text": " If the buffer from which pname:pRayGenShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681",
-          "text": " The buffer from which the pname:pRayGenShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682",
-          "text": " pname:pRayGenShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683",
-          "text": " If the buffer from which pname:pMissShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684",
-          "text": " The buffer from which the pname:pMissShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685",
-          "text": " pname:pMissShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03686",
-          "text": " pname:pMissShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029",
-          "text": " pname:pMissShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687",
-          "text": " If the buffer from which pname:pHitShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688",
-          "text": " The buffer from which the pname:pHitShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689",
-          "text": " pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03690",
-          "text": " pname:pHitShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035",
-          "text": " pname:pHitShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691",
-          "text": " If the buffer from which pname:pCallableShaderBindingTable-&gt;deviceAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692",
-          "text": " The buffer from which the pname:pCallableShaderBindingTable-&gt;deviceAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693",
-          "text": " pname:pCallableShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03694",
-          "text": " pname:pCallableShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041",
-          "text": " pname:pCallableShaderBindingTable-&gt;stride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, pname:pHitShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by pname:pMissShaderBindingTable-&gt;deviceAddress <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:pHitShaderBindingTable-&gt;deviceAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632",
-          "text": " If the buffer from which <code>indirectDeviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633",
-          "text": " The buffer from which <code>indirectDeviceAddress</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634",
-          "text": " <code>indirectDeviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636",
-          "text": " All device addresses between <code>indirectDeviceAddress</code> and <span class=\"eq\"><code>indirectDeviceAddress</code> &#43; <code>sizeof</code>(sname:VkTraceRaysIndirectCommandKHR) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637",
-          "text": " The <a href=\"#features-rayTracingPipelineTraceRaysIndirect\">pname:rayTracingPipelineTraceRaysIndirect</a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter",
-          "text": " <code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter",
-          "text": " <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter",
-          "text": " <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter",
-          "text": " <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing_motion_blur)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429",
+          "text": "Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-09458",
+          "text": "If the bound ray tracing pipeline state was created with the <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code> dynamic state enabled then <a href=\"#vkCmdSetRayTracingPipelineStackSizeKHR\">vkCmdSetRayTracingPipelineStackSizeKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this trace command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679",
+          "text": "This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023",
+          "text": "The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680",
+          "text": "If the buffer from which <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681",
+          "text": "The buffer from which the <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682",
+          "text": "<code>pRayGenShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683",
+          "text": "If the buffer from which <code>pMissShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684",
+          "text": "The buffer from which the <code>pMissShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685",
+          "text": "<code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03686",
+          "text": "<code>pMissShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029",
+          "text": "<code>pMissShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687",
+          "text": "If the buffer from which <code>pHitShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688",
+          "text": "The buffer from which the <code>pHitShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689",
+          "text": "<code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03690",
+          "text": "<code>pHitShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035",
+          "text": "<code>pHitShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691",
+          "text": "If the buffer from which <code>pCallableShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692",
+          "text": "The buffer from which the <code>pCallableShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693",
+          "text": "<code>pCallableShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03694",
+          "text": "<code>pCallableShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041",
+          "text": "<code>pCallableShaderBindingTable-&gt;stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by <code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735",
+          "text": "Any non-zero hit shader group entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736",
+          "text": "Any non-zero hit shader group entries in the table identified by <code>pHitShaderBindingTable-&gt;deviceAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632",
+          "text": "If the buffer from which <code>indirectDeviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633",
+          "text": "The buffer from which <code>indirectDeviceAddress</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634",
+          "text": "<code>indirectDeviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636",
+          "text": "All device addresses between <code>indirectDeviceAddress</code> and <span class=\"eq\"><code>indirectDeviceAddress</code> +  <code>sizeof</code>(<code>VkTraceRaysIndirectCommandKHR</code>) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637",
+          "text": "The <a href=\"#features-rayTracingPipelineTraceRaysIndirect\"><code>rayTracingPipelineTraceRaysIndirect</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951",
-          "text": " If the bound ray tracing pipeline was created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> <code>VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</code>::<code>rayTracingMotionBlurPipelineTraceRaysIndirect</code> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If the bound ray tracing pipeline was created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> <code>VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</code>::<code>rayTracingMotionBlurPipelineTraceRaysIndirect</code> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter",
+          "text": "<code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter",
+          "text": "<code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter",
+          "text": "<code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter",
+          "text": "<code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirectKHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkTraceRaysIndirectCommandKHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03638",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>"
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommandKHR-height-03639",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>"
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommandKHR-depth-03640",
-          "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>"
+          "text": "<code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03641",
-          "text": " <span class=\"eq\"><code>width</code> {times} <code>height</code> {times} <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>"
+          "text": "<span class=\"eq\"><code>width</code> × <code>height</code> × <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdTraceRaysIndirect2KHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770",
-          "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02691",
-          "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02697",
-          "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02700",
-          "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02859",
-          "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02702",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02703",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02704",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-format-07753",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>format</code> <strong class=\"purple\">must</strong> match the numeric format from the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> as described in the SPIR-V Sampled Type column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-04115",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07288",
-          "text": " Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-03429",
-          "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679",
-          "text": " This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632",
-          "text": " If the buffer from which <code>indirectDeviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633",
-          "text": " The buffer from which <code>indirectDeviceAddress</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634",
-          "text": " <code>indirectDeviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636",
-          "text": " All device addresses between <code>indirectDeviceAddress</code> and <span class=\"eq\"><code>indirectDeviceAddress</code> &#43; <code>sizeof</code>(sname:VkTraceRaysIndirectCommand2KHR) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637",
-          "text": " The <a href=\"#features-rayTracingPipelineTraceRaysIndirect2\">pname:rayTracingPipelineTraceRaysIndirect2</a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-aspectMask-06478",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06479",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028",
-          "text": " For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029",
-          "text": " For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
-        },
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030",
-          "text": " Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
-        {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02692",
-          "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02693",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695",
-          "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_NV_corner_sampled_image)": [
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696",
-          "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02698",
-          "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425",
-          "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02699",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08114",
-          "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08115",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08116",
-          "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08117",
-          "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08119",
-          "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_pipeline_robustness)": [
-        {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02705",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02706",
-          "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_pipeline_robustness)": [
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936",
-          "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)": [
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707",
-          "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06550",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551",
-          "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)": [
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04470",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04471",
-          "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04472",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04473",
-          "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04475",
-          "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)": [
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06971",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06972",
-          "text": " If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBoxFilterQCOM-06973",
-          "text": " If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>"
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974",
-          "text": " If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976",
-          "text": " If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>"
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977",
-          "text": " If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978",
-          "text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
-        }
-      ],
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_NV_ray_tracing_motion_blur)": [
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-03429",
+          "text": "Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-09458",
+          "text": "If the bound ray tracing pipeline state was created with the <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code> dynamic state enabled then <a href=\"#vkCmdSetRayTracingPipelineStackSizeKHR\">vkCmdSetRayTracingPipelineStackSizeKHR</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this trace command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679",
+          "text": "This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632",
+          "text": "If the buffer from which <code>indirectDeviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633",
+          "text": "The buffer from which <code>indirectDeviceAddress</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634",
+          "text": "<code>indirectDeviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636",
+          "text": "All device addresses between <code>indirectDeviceAddress</code> and <span class=\"eq\"><code>indirectDeviceAddress</code> +  <code>sizeof</code>(<code>VkTraceRaysIndirectCommand2KHR</code>) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637",
+          "text": "The <a href=\"#features-rayTracingPipelineTraceRaysIndirect2\"><code>rayTracingPipelineTraceRaysIndirect2</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951",
-          "text": " If the bound ray tracing pipeline was created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> <code>VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</code>::<code>rayTracingMotionBlurPipelineTraceRaysIndirect</code> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "If the bound ray tracing pipeline was created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> <code>VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</code>::<code>rayTracingMotionBlurPipelineTraceRaysIndirect</code> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkTraceRaysIndirectCommand2KHR": {
-      "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680",
-          "text": " If the buffer from which pname:raygenShaderRecordAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If the buffer from which <code>raygenShaderRecordAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681",
-          "text": " The buffer from which the pname:raygenShaderRecordAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
+          "text": "The buffer from which the <code>raygenShaderRecordAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682",
-          "text": " pname:raygenShaderRecordAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
+          "text": "<code>raygenShaderRecordAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683",
-          "text": " If the buffer from which pname:missShaderBindingTableAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If the buffer from which <code>missShaderBindingTableAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684",
-          "text": " The buffer from which the pname:missShaderBindingTableAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
+          "text": "The buffer from which the <code>missShaderBindingTableAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685",
-          "text": " pname:missShaderBindingTableAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
+          "text": "<code>missShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03686",
-          "text": " pname:missShaderBindingTableStride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
+          "text": "<code>missShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04029",
-          "text": " pname:missShaderBindingTableStride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
+          "text": "<code>missShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687",
-          "text": " If the buffer from which pname:hitShaderBindingTableAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If the buffer from which <code>hitShaderBindingTableAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688",
-          "text": " The buffer from which the pname:hitShaderBindingTableAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
+          "text": "The buffer from which the <code>hitShaderBindingTableAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689",
-          "text": " pname:hitShaderBindingTableAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
+          "text": "<code>hitShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03690",
-          "text": " pname:hitShaderBindingTableStride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
+          "text": "<code>hitShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04035",
-          "text": " pname:hitShaderBindingTableStride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
+          "text": "<code>hitShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691",
-          "text": " If the buffer from which pname:callableShaderBindingTableAddress was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If the buffer from which <code>callableShaderBindingTableAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692",
-          "text": " The buffer from which the pname:callableShaderBindingTableAddress is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
+          "text": "The buffer from which the <code>callableShaderBindingTableAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693",
-          "text": " pname:callableShaderBindingTableAddress <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
+          "text": "<code>callableShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-03694",
-          "text": " pname:callableShaderBindingTableStride <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
+          "text": "<code>callableShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-stride-04041",
-          "text": " pname:callableShaderBindingTableStride <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
+          "text": "<code>callableShaderBindingTableStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03696",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, pname:hitShaderBindingTableAddress <strong class=\"purple\">must</strong> not be zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, <code>hitShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03697",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, pname:hitShaderBindingTableAddress <strong class=\"purple\">must</strong> not be zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, <code>hitShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> not be zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03511",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by pname:missShaderBindingTableAddress <strong class=\"purple\">must</strong> not be set to zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by <code>missShaderBindingTableAddress</code> <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03512",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>hitShaderBindingTableAddress</code> accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03513",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in the table identified by <code>hitShaderBindingTableAddress</code> accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-flags-03514",
-          "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero"
+          "text": "If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in the table identified by <code>hitShaderBindingTableAddress</code> accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:hitShaderBindingTableAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>"
+          "text": "Any non-zero hit shader group entries in the table identified by <code>hitShaderBindingTableAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04736",
-          "text": " Any non-zero hit shader group entries in the table identified by pname:hitShaderBindingTableAddress accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>"
+          "text": "Any non-zero hit shader group entries in the table identified by <code>hitShaderBindingTableAddress</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-width-03638",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>"
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-height-03639",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>"
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-depth-03640",
-          "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>"
+          "text": "<code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] × <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-width-03641",
-          "text": " <span class=\"eq\"><code>width</code> {times} <code>height</code> {times} <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>"
+          "text": "<span class=\"eq\"><code>width</code> × <code>height</code> × <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDecompressMemoryNV": {
-      "(VK_NV_memory_decompression)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-None-07684",
-          "text": " The <a href=\"#features-memoryDecompression\"><code>memoryDecompression</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-memoryDecompression\"><code>memoryDecompression</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameter",
-          "text": " <code>pDecompressMemoryRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>decompressRegionCount</code> valid <a href=\"#VkDecompressMemoryRegionNV\">VkDecompressMemoryRegionNV</a> structures"
+          "text": "<code>pDecompressMemoryRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>decompressRegionCount</code> valid <a href=\"#VkDecompressMemoryRegionNV\">VkDecompressMemoryRegionNV</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylength",
-          "text": " <code>decompressRegionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>decompressRegionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDecompressMemoryRegionNV": {
-      "(VK_NV_memory_decompression)": [
+      "core": [
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07685",
-          "text": " The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>srcAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07686",
-          "text": " The memory in range <code>srcAddress</code> and <code>srcAddress</code> &#43; <code>compressedSize</code> <strong class=\"purple\">must</strong> be valid and bound to a <code>VkDeviceMemory</code> object"
+          "text": "The memory in range <code>srcAddress</code> and <code>srcAddress</code> +  <code>compressedSize</code> <strong class=\"purple\">must</strong> be valid and bound to a <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-dstAddress-07687",
-          "text": " The <code>dstAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned"
+          "text": "The <code>dstAddress</code> <strong class=\"purple\">must</strong> be 4 byte aligned",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395",
+          "text": "If <code>decompressionMethod</code> is <code>VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV</code>, then <code>decompressedSize</code> <strong class=\"purple\">must</strong> be less than or equal to 65536 bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-dstAddress-07688",
-          "text": " The memory in range <code>dstAddress</code> and <code>dstAddress</code> &#43; <code>decompressedSize</code> <strong class=\"purple\">must</strong> be valid and bound to a <code>VkDeviceMemory</code> object"
+          "text": "The memory in range <code>dstAddress</code> and <code>dstAddress</code> +  <code>decompressedSize</code> <strong class=\"purple\">must</strong> be valid and bound to a <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-decompressedSize-07689",
-          "text": " The <code>decompressedSize</code> <strong class=\"purple\">must</strong> be large enough to hold the decompressed data based on the <code>decompressionMethod</code>"
+          "text": "The <code>decompressedSize</code> <strong class=\"purple\">must</strong> be large enough to hold the decompressed data based on the <code>decompressionMethod</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690",
-          "text": " The <code>decompressionMethod</code> <strong class=\"purple\">must</strong> have a single bit set"
+          "text": "The <code>decompressionMethod</code> <strong class=\"purple\">must</strong> have a single bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-07691",
-          "text": " The <code>srcAddress</code> to <code>srcAddress</code> &#43; <code>compressedSize</code> region <strong class=\"purple\">must</strong> not overlap with the <code>dstAddress</code> and <code>dstAddress</code> &#43; <code>decompressedSize</code> region"
+          "text": "The <code>srcAddress</code> to <code>srcAddress</code> +  <code>compressedSize</code> region <strong class=\"purple\">must</strong> not overlap with the <code>dstAddress</code> and <code>dstAddress</code> +  <code>decompressedSize</code> region",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameter",
-          "text": " <code>decompressionMethod</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMemoryDecompressionMethodFlagBitsNV\">VkMemoryDecompressionMethodFlagBitsNV</a> values"
+          "text": "<code>decompressionMethod</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMemoryDecompressionMethodFlagBitsNV\">VkMemoryDecompressionMethodFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmask",
-          "text": " <code>decompressionMethod</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>decompressionMethod</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDecompressMemoryIndirectCountNV": {
-      "(VK_NV_memory_decompression)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692",
-          "text": " The <a href=\"#features-memoryDecompression\"><code>memoryDecompression</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+          "text": "The <a href=\"#features-memoryDecompression\"><code>memoryDecompression</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693",
-          "text": " If <code>indirectCommandsAddress</code> comes from a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>indirectCommandsAddress</code> comes from a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694",
-          "text": " The <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> comes from <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "The <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> comes from <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-offset-07695",
-          "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696",
-          "text": " If <code>indirectCommandsCountAddress</code> comes from a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+          "text": "If <code>indirectCommandsCountAddress</code> comes from a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697",
-          "text": " The <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsCountAddress</code> comes from <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
+          "text": "The <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsCountAddress</code> comes from <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698",
-          "text": " <code>indirectCommandsCountAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
+          "text": "<code>indirectCommandsCountAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699",
-          "text": " The count stored in <code>indirectCommandsCountAddress</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMemoryDecompressionPropertiesNV</code>::<code>maxDecompressionIndirectCount</code>"
+          "text": "The count stored in <code>indirectCommandsCountAddress</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMemoryDecompressionPropertiesNV</code>::<code>maxDecompressionIndirectCount</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700",
-          "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDecompressMemoryRegionNV</code>)"
+          "text": "<code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDecompressMemoryRegionNV</code>)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701",
-          "text": " If the count stored in <code>indirectCommandsCountAddress</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; sizeof(<code>VkDecompressMemoryRegionNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> comes from"
+          "text": "If the count stored in <code>indirectCommandsCountAddress</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> +  sizeof(<code>VkDecompressMemoryRegionNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> comes from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07702",
-          "text": " If the count stored in <code>indirectCommandsCountAddress</code> is greater than <code>1</code>, <code>indirectCommandsAddress</code> &#43; sizeof(<code>VkDecompressMemoryRegionNV</code>) &#43; <span class=\"eq\">(<code>stride</code> {times} (count stored in <code>countBuffer</code> - 1))</span> <strong class=\"purple\">must</strong> be less than or equal to the last valid address in the <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> was created from"
+          "text": "If the count stored in <code>indirectCommandsCountAddress</code> is greater than <code>1</code>, <code>indirectCommandsAddress</code> +  sizeof(<code>VkDecompressMemoryRegionNV</code>) +  <span class=\"eq\">(<code>stride</code> × (count stored in <code>countBuffer</code> - 1))</span> <strong class=\"purple\">must</strong> be less than or equal to the last valid address in the <a href=\"#VkBuffer\">VkBuffer</a> that <code>indirectCommandsAddress</code> was created from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        }
-      ]
-    },
-    "VkQueueFamilyVideoPropertiesKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkQueueFamilyVideoPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR</code>"
-        }
-      ]
-    },
-    "VkVideoProfileInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013",
-          "text": " <code>chromaSubsampling</code> <strong class=\"purple\">must</strong> have a single bit set"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014",
-          "text": " <code>lumaBitDepth</code> <strong class=\"purple\">must</strong> have a single bit set"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015",
-          "text": " If <code>chromaSubsampling</code> is not <code>VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR</code>, then <code>chromaBitDepth</code> <strong class=\"purple\">must</strong> have a single bit set"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameter",
-          "text": " <code>videoCodecOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoCodecOperationFlagBitsKHR\">VkVideoCodecOperationFlagBitsKHR</a> value"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameter",
-          "text": " <code>chromaSubsampling</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoChromaSubsamplingFlagBitsKHR\">VkVideoChromaSubsamplingFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmask",
-          "text": " <code>chromaSubsampling</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameter",
-          "text": " <code>lumaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmask",
-          "text": " <code>lumaBitDepth</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameter",
-          "text": " <code>chromaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values"
-        }
-      ]
-    },
-    "VkVideoDecodeUsageInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)": [
-        {
-          "vuid": "VUID-VkVideoDecodeUsageInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameter",
-          "text": " <code>videoUsageHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoDecodeUsageFlagBitsKHR\">VkVideoDecodeUsageFlagBitsKHR</a> values"
-        }
-      ]
-    },
-    "VkVideoEncodeUsageInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
-        {
-          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameter",
-          "text": " <code>videoUsageHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeUsageFlagBitsKHR\">VkVideoEncodeUsageFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameter",
-          "text": " <code>videoContentHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeContentFlagBitsKHR\">VkVideoEncodeContentFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameter",
-          "text": " If <code>tuningMode</code> is not <code>0</code>, <code>tuningMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeTuningModeKHR\">VkVideoEncodeTuningModeKHR</a> value"
-        }
-      ]
-    },
-    "vkGetPhysicalDeviceVideoCapabilitiesKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameter",
-          "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameter",
-          "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a> structure"
-        }
-      ]
-    },
-    "VkVideoCapabilitiesKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoCapabilitiesKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeCapabilitiesKHR\">VkVideoDecodeCapabilitiesKHR</a>, <a href=\"#VkVideoDecodeH264CapabilitiesEXT\">VkVideoDecodeH264CapabilitiesEXT</a>, <a href=\"#VkVideoDecodeH265CapabilitiesEXT\">VkVideoDecodeH265CapabilitiesEXT</a>, <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>, <a href=\"#VkVideoEncodeH264CapabilitiesEXT\">VkVideoEncodeH264CapabilitiesEXT</a>, or <a href=\"#VkVideoEncodeH265CapabilitiesEXT\">VkVideoEncodeH265CapabilitiesEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkVideoCapabilitiesKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        }
-      ]
-    },
-    "vkGetPhysicalDeviceVideoFormatPropertiesKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812",
-          "text": " The <code>pNext</code> chain of <code>pVideoFormatInfo</code> <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameter",
-          "text": " <code>pVideoFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatPropertyCount-parameter",
-          "text": " <code>pVideoFormatPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
-        },
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameter",
-          "text": " If the value referenced by <code>pVideoFormatPropertyCount</code> is not <code>0</code>, and <code>pVideoFormatProperties</code> is not <code>NULL</code>, <code>pVideoFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pVideoFormatPropertyCount</code> <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> structures"
-        }
-      ]
-    },
-    "VkPhysicalDeviceVideoFormatInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameter",
-          "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmask",
-          "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        }
-      ]
-    },
-    "VkVideoProfileListInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-06813",
-          "text": " If the <code>pProfiles</code> list contains more than one <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> entry, then it <strong class=\"purple\">must</strong> not contain more than one entry whose <code>videoCodecOperation</code> member specifies a decode operation"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileListInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-parameter",
-          "text": " If <code>profileCount</code> is not <code>0</code>, <code>pProfiles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>profileCount</code> valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structures"
-        }
-      ]
-    },
-    "VkVideoFormatPropertiesKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoFormatPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoFormatPropertiesKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        }
-      ]
-    },
-    "vkCreateVideoSessionKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkCreateVideoSessionKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionKHR-pVideoSession-parameter",
-          "text": " <code>pVideoSession</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        }
-      ]
-    },
-    "VkVideoSessionCreateInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845",
-          "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure whose <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid codec-specific profile structure"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04846",
-          "text": " If <a href=\"#reference-picture\">Reference Pictures</a> are required for use with the created video session, the <code>maxDpbSlots</code> <strong class=\"purple\">must</strong> be set to a value bigger than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847",
-          "text": " <code>maxDpbSlots</code> <strong class=\"purple\">cannot</strong> exceed the implementation reported <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxDpbSlots</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04848",
-          "text": " If <a href=\"#reference-picture\">Reference Pictures</a> are required for use with the created video session, the <code>maxActiveReferencePictures</code> <strong class=\"purple\">must</strong> be set to a value bigger than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849",
-          "text": " <code>maxActiveReferencePictures</code> <strong class=\"purple\">cannot</strong> exceed the implementation reported <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxActiveReferencePictures</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04850",
-          "text": " <code>maxActiveReferencePictures</code> <strong class=\"purple\">cannot</strong> exceed the <code>maxDpbSlots</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851",
-          "text": " <code>maxCodedExtent</code> <strong class=\"purple\">cannot</strong> be smaller than <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minExtent</code> and bigger than <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxExtent</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePicturesFormat-04852",
-          "text": " If the <code>videoCodecOperation</code> member of <code>pVideoProfile</code> specifies a decode operation then <code>referencePicturesFormat</code> <strong class=\"purple\">must</strong> be one of the supported decode DPB formats as reported by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in the <code>format</code> member of <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure chained to its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an entry matching <code>pVideoProfile</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-videoCodecOperation-06814",
-          "text": " If the <code>videoCodecOperation</code> member of <code>pVideoProfile</code> specifies an encode operation then <code>referencePicturesFormat</code> <strong class=\"purple\">must</strong> be one of the supported encode DPB formats as reported by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in the <code>format</code> member of <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure chained to its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an entry matching <code>pVideoProfile</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853",
-          "text": " If the <code>videoCodecOperation</code> member of <code>pVideoProfile</code> specifies a decode operation then <code>pictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported decode output formats as reported by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in the <code>format</code> member of <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure chained to its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an entry matching <code>pVideoProfile</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854",
-          "text": " If the <code>videoCodecOperation</code> member of <code>pVideoProfile</code> specifies an encode operation then <code>pictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported encode input formats as reported by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in the <code>format</code> member of <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure chained to its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an entry matching <code>pVideoProfile</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoSessionCreateFlagBitsKHR\">VkVideoSessionCreateFlagBitsKHR</a> values"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameter",
-          "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameter",
-          "text": " <code>pictureFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-parameter",
-          "text": " <code>referencePictureFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-parameter",
-          "text": " <code>pStdHeaderVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
-        }
-      ]
-    },
-    "vkDestroyVideoSessionKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkDestroyVideoSessionKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parameter",
-          "text": " If <code>videoSession</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroyVideoSessionKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
-        },
-        {
-          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parent",
-          "text": " If <code>videoSession</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ]
-    },
-    "vkGetVideoSessionMemoryRequirementsKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameter",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirementsCount-parameter",
-          "text": " <code>pMemoryRequirementsCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
-        },
-        {
-          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameter",
-          "text": " If the value referenced by <code>pMemoryRequirementsCount</code> is not <code>0</code>, and <code>pMemoryRequirements</code> is not <code>NULL</code>, <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pMemoryRequirementsCount</code> <a href=\"#VkVideoSessionMemoryRequirementsKHR\">VkVideoSessionMemoryRequirementsKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parent",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ]
-    },
-    "VkVideoSessionMemoryRequirementsKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        }
-      ]
-    },
-    "vkBindVideoSessionMemoryKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkBindVideoSessionMemoryKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parameter",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-parameter",
-          "text": " <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindSessionMemoryInfoCount</code> valid <a href=\"#VkBindVideoSessionMemoryInfoKHR\">VkBindVideoSessionMemoryInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylength",
-          "text": " <code>bindSessionMemoryInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parent",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
-        }
-      ]
-    },
-    "VkBindVideoSessionMemoryInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memory-parameter",
-          "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
-        }
-      ]
-    },
-    "vkCreateVideoSessionParametersKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkCreateVideoSessionParametersKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersCreateInfoKHR\">VkVideoSessionParametersCreateInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameter",
-          "text": " <code>pVideoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
-        }
-      ]
-    },
-    "VkVideoSessionParametersCreateInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855",
-          "text": " If <code>videoSessionParametersTemplate</code> represents a valid handle, it <strong class=\"purple\">must</strong> have been created against <code>videoSession</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoEXT\">VkVideoDecodeH264SessionParametersCreateInfoEXT</a>, <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoEXT\">VkVideoDecodeH265SessionParametersCreateInfoEXT</a>, <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoEXT\">VkVideoEncodeH264SessionParametersCreateInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameter",
-          "text": " If <code>videoSessionParametersTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParametersTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameter",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parent",
-          "text": " If <code>videoSessionParametersTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-commonparent",
-          "text": " Both of <code>videoSession</code>, and <code>videoSessionParametersTemplate</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ]
-    },
-    "vkUpdateVideoSessionParametersKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameter",
-          "text": " <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameter",
-          "text": " <code>pUpdateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersUpdateInfoKHR\">VkVideoSessionParametersUpdateInfoKHR</a> structure"
-        }
-      ]
-    },
-    "VkVideoSessionParametersUpdateInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264SessionParametersAddInfoEXT\">VkVideoDecodeH264SessionParametersAddInfoEXT</a>, <a href=\"#VkVideoDecodeH265SessionParametersAddInfoEXT\">VkVideoDecodeH265SessionParametersAddInfoEXT</a>, <a href=\"#VkVideoEncodeH264SessionParametersAddInfoEXT\">VkVideoEncodeH264SessionParametersAddInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionParametersAddInfoEXT\">VkVideoEncodeH265SessionParametersAddInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        }
-      ]
-    },
-    "vkDestroyVideoSessionParametersKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameter",
-          "text": " If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
-        }
-      ]
-    },
-    "vkCmdBeginVideoCodingKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameter",
-          "text": " <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoBeginCodingInfoKHR\">VkVideoBeginCodingInfoKHR</a> structure"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
-        },
-        {
-          "vuid": "VUID-vkCmdBeginVideoCodingKHR-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
-        }
-      ]
-    },
-    "VkVideoBeginCodingInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-referenceSlotCount-04856",
-          "text": " <a href=\"#VkVideoBeginCodingInfoKHR\">VkVideoBeginCodingInfoKHR</a>::<code>referenceSlotCount</code> <strong class=\"purple\">must</strong> not exceed the value specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> when creating the video session object that is being provided in <code>videoSession</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857",
-          "text": " If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created using <code>videoSession</code> as a parent object"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-parameter",
-          "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameter",
-          "text": " If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameter",
-          "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parent",
-          "text": " If <code>videoSessionParameters</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoBeginCodingInfoKHR-commonparent",
-          "text": " Both of <code>videoSession</code>, and <code>videoSessionParameters</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
-        }
-      ]
-    },
-    "VkVideoReferenceSlotInfoKHR": {
-      "(VK_KHR_video_queue)": [
-        {
-          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264DpbSlotInfoEXT\">VkVideoDecodeH264DpbSlotInfoEXT</a> or <a href=\"#VkVideoDecodeH265DpbSlotInfoEXT\">VkVideoDecodeH265DpbSlotInfoEXT</a>"
-        },
-        {
-          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
-        },
-        {
-          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameter",
-          "text": " If <code>pPictureResource</code> is not <code>NULL</code>, <code>pPictureResource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoPictureResourceInfoKHR": {
-      "(VK_KHR_video_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-VkVideoPictureResourceInfoKHR-baseArrayLayer-07175",
+          "text": "<code>baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> specified when the image view <code>imageViewBinding</code> was created",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkVideoPictureResourceInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoPictureResourceInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoPictureResourceInfoKHR-imageViewBinding-parameter",
-          "text": " <code>imageViewBinding</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "<code>imageViewBinding</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoProfileInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013",
+          "text": "<code>chromaSubsampling</code> <strong class=\"purple\">must</strong> have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014",
+          "text": "<code>lumaBitDepth</code> <strong class=\"purple\">must</strong> have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015",
+          "text": "If <code>chromaSubsampling</code> is not <code>VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR</code>, then <code>chromaBitDepth</code> <strong class=\"purple\">must</strong> have a single bit set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07179",
+          "text": "If <code>videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264ProfileInfoKHR\">VkVideoDecodeH264ProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07180",
+          "text": "If <code>videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265ProfileInfoKHR\">VkVideoDecodeH265ProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07181",
+          "text": "If <code>videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264ProfileInfoKHR\">VkVideoEncodeH264ProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-07182",
+          "text": "If <code>videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265ProfileInfoKHR\">VkVideoEncodeH265ProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameter",
+          "text": "<code>videoCodecOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoCodecOperationFlagBitsKHR\">VkVideoCodecOperationFlagBitsKHR</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameter",
+          "text": "<code>chromaSubsampling</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoChromaSubsamplingFlagBitsKHR\">VkVideoChromaSubsamplingFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmask",
+          "text": "<code>chromaSubsampling</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameter",
+          "text": "<code>lumaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmask",
+          "text": "<code>lumaBitDepth</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameter",
+          "text": "<code>chromaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoDecodeUsageInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoDecodeUsageInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameter",
+          "text": "<code>videoUsageHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoDecodeUsageFlagBitsKHR\">VkVideoDecodeUsageFlagBitsKHR</a> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeUsageInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameter",
+          "text": "<code>videoUsageHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeUsageFlagBitsKHR\">VkVideoEncodeUsageFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameter",
+          "text": "<code>videoContentHints</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeContentFlagBitsKHR\">VkVideoEncodeContentFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameter",
+          "text": "If <code>tuningMode</code> is not <code>0</code>, <code>tuningMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeTuningModeKHR\">VkVideoEncodeTuningModeKHR</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoProfileListInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-06813",
+          "text": "<code>pProfiles</code> <strong class=\"purple\">must</strong> not contain more than one element whose <code>videoCodecOperation</code> member specifies a decode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileListInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoProfileListInfoKHR-pProfiles-parameter",
+          "text": "If <code>profileCount</code> is not <code>0</code>, <code>pProfiles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>profileCount</code> valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPhysicalDeviceVideoCapabilitiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07183",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies a decode operation, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeCapabilitiesKHR\">VkVideoDecodeCapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07184",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264CapabilitiesKHR\">VkVideoDecodeH264CapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07185",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265CapabilitiesKHR\">VkVideoDecodeH265CapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07186",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies an encode operation, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07187",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07188",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pCapabilities</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter",
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameter",
+          "text": "<code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameter",
+          "text": "<code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoCapabilitiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoCapabilitiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoCapabilitiesKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeCapabilitiesKHR\">VkVideoDecodeCapabilitiesKHR</a>, <a href=\"#VkVideoDecodeH264CapabilitiesKHR\">VkVideoDecodeH264CapabilitiesKHR</a>, <a href=\"#VkVideoDecodeH265CapabilitiesKHR\">VkVideoDecodeH265CapabilitiesKHR</a>, <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>, <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>, or <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoCapabilitiesKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPhysicalDeviceVideoFormatPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812",
+          "text": "The <code>pNext</code> chain of <code>pVideoFormatInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure with <code>profileCount</code> greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter",
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameter",
+          "text": "<code>pVideoFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatPropertyCount-parameter",
+          "text": "<code>pVideoFormatPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameter",
+          "text": "If the value referenced by <code>pVideoFormatPropertyCount</code> is not <code>0</code>, and <code>pVideoFormatProperties</code> is not <code>NULL</code>, <code>pVideoFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pVideoFormatPropertyCount</code> <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceVideoFormatInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameter",
+          "text": "<code>imageUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmask",
+          "text": "<code>imageUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoFormatPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoFormatPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoFormatPropertiesKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateVideoSessionKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateVideoSessionKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionKHR-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionKHR-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionKHR-pVideoSession-parameter",
+          "text": "<code>pVideoSession</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoSessionCreateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-protectedMemory-07189",
+          "text": "If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled or if <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-flags-08371",
+          "text": "If <code>flags</code> includes <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, then <a href=\"#features-videoMaintenance1\"><code>videoMaintenance1</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845",
+          "text": "<code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a <a href=\"#video-profile-support\">supported video profile</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847",
+          "text": "<code>maxDpbSlots</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxDpbSlots</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849",
+          "text": "<code>maxActiveReferencePictures</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxActiveReferencePictures</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04850",
+          "text": "If either <code>maxDpbSlots</code> or <code>maxActiveReferencePictures</code> is <code>0</code>, then both <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851",
+          "text": "<code>maxCodedExtent</code> <strong class=\"purple\">must</strong> be between <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minCodedExtent</code> and <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxCodedExtent</code>, inclusive, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-04852",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies a decode operation and <code>maxActiveReferencePictures</code> is greater than <code>0</code>, then <code>referencePictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported decode DPB formats, as returned by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a>::<code>format</code> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure specified in the <code>pNext</code> chain of its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an element matching <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-06814",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies an encode operation and <code>maxActiveReferencePictures</code> is greater than <code>0</code>, then <code>referencePictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported decode DPB formats, as returned by then <code>referencePictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported encode DPB formats, as returned by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a>::<code>format</code> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure specified in the <code>pNext</code> chain of its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an element matching <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies a decode operation, then <code>pictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported decode output formats, as returned by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a>::<code>format</code> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure specified in the <code>pNext</code> chain of its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an element matching <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> specifies an encode operation, then <code>pictureFormat</code> <strong class=\"purple\">must</strong> be one of the supported encode input formats, as returned by <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a>::<code>format</code> when called with the <code>imageUsage</code> member of its <code>pVideoFormatInfo</code> parameter containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, and with a <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a> structure specified in the <code>pNext</code> chain of its <code>pVideoFormatInfo</code> parameter whose <code>pProfiles</code> member contains an element matching <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07190",
+          "text": "<code>pStdHeaderVersion-&gt;extensionName</code> <strong class=\"purple\">must</strong> match <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>stdHeaderVersion.extensionName</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07191",
+          "text": "<code>pStdHeaderVersion-&gt;specVersion</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>stdHeaderVersion.specVersion</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified by <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08251",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and the <code>pNext</code> chain of this structure includes a <a href=\"#VkVideoEncodeH264SessionCreateInfoKHR\">VkVideoEncodeH264SessionCreateInfoKHR</a> structure, then its <code>maxLevelIdc</code> member <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxLevelIdc</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified in <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08252",
+          "text": "If <code>pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of this structure includes a <a href=\"#VkVideoEncodeH265SessionCreateInfoKHR\">VkVideoEncodeH265SessionCreateInfoKHR</a> structure, then its <code>maxLevelIdc</code> member <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxLevelIdc</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified in <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264SessionCreateInfoKHR\">VkVideoEncodeH264SessionCreateInfoKHR</a> or <a href=\"#VkVideoEncodeH265SessionCreateInfoKHR\">VkVideoEncodeH265SessionCreateInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoSessionCreateFlagBitsKHR\">VkVideoSessionCreateFlagBitsKHR</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameter",
+          "text": "<code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameter",
+          "text": "<code>pictureFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-parameter",
+          "text": "<code>referencePictureFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-parameter",
+          "text": "<code>pStdHeaderVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkDestroyVideoSessionKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07192",
+          "text": "All submitted commands that refer to <code>videoSession</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07193",
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>videoSession</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-07194",
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>videoSession</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parameter",
+          "text": "If <code>videoSession</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parent",
+          "text": "If <code>videoSession</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetVideoSessionMemoryRequirementsKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameter",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirementsCount-parameter",
+          "text": "<code>pMemoryRequirementsCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameter",
+          "text": "If the value referenced by <code>pMemoryRequirementsCount</code> is not <code>0</code>, and <code>pMemoryRequirements</code> is not <code>NULL</code>, <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pMemoryRequirementsCount</code> <a href=\"#VkVideoSessionMemoryRequirementsKHR\">VkVideoSessionMemoryRequirementsKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parent",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoSessionMemoryRequirementsKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkBindVideoSessionMemoryKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-07195",
+          "text": "The memory binding of <code>videoSession</code> identified by the <code>memoryBindIndex</code> member of any element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> not already be backed by a memory object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-memoryBindIndex-07196",
+          "text": "The <code>memoryBindIndex</code> member of each element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pBindSessionMemoryInfos</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07197",
+          "text": "Each element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> have a corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07198",
+          "text": "If an element of <code>pBindSessionMemoryInfos</code> has a corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure, then the <code>memory</code> member of that element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07199",
+          "text": "If an element of <code>pBindSessionMemoryInfos</code> has a corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure, then the <code>memoryOffset</code> member of that element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07200",
+          "text": "If an element of <code>pBindSessionMemoryInfos</code> has a corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure, then the <code>memorySize</code> member of that element of <code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> equal the <code>size</code> member of the corresponding <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parameter",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-parameter",
+          "text": "<code>pBindSessionMemoryInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindSessionMemoryInfoCount</code> valid <a href=\"#VkBindVideoSessionMemoryInfoKHR\">VkBindVideoSessionMemoryInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylength",
+          "text": "<code>bindSessionMemoryInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parent",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkBindVideoSessionMemoryInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memoryOffset-07201",
+          "text": "<code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memorySize-07202",
+          "text": "<code>memorySize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkBindVideoSessionMemoryInfoKHR-memory-parameter",
+          "text": "<code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateVideoSessionParametersKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateVideoSessionParametersKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameter",
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersCreateInfoKHR\">VkVideoSessionParametersCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameter",
+          "text": "<code>pVideoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoSessionParametersCreateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855",
+          "text": "If <code>videoSessionParametersTemplate</code> is not <code>VK_NULL_HANDLE</code>, it <strong class=\"purple\">must</strong> have been created against <code>videoSession</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-08310",
+          "text": "If <code>videoSessionParametersTemplate</code> is not <code>VK_NULL_HANDLE</code> and <code>videoSession</code> was created with an encode operation, then <code>qualityLevel</code> <strong class=\"purple\">must</strong> equal the <a href=\"#encode-quality-level\">video encode quality</a> level <code>videoSessionParametersTemplate</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07203",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07204",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the number of elements of <code>spsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdSPSCount</code> specified in the <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07205",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the number of elements of <code>ppsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdPPSCount</code> specified in the <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07206",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07207",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of elements of <code>vpsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdVPSCount</code> specified in the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07208",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of elements of <code>spsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdSPSCount</code> specified in the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07209",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of elements of <code>ppsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdPPSCount</code> specified in the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07210",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04839",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the number of elements of <code>spsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdSPSCount</code> specified in the <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04840",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the number of elements of <code>ppsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdPPSCount</code> specified in the <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07211",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04841",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of elements of <code>vpsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdVPSCount</code> specified in the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04842",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of elements of <code>spsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdSPSCount</code> specified in the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04843",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of elements of <code>ppsAddList</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>maxStdPPSCount</code> specified in the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a> structure included in the <code>pNext</code> chain",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08319",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then <code>num_tile_columns_minus1</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxTiles.width</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile <code>videoSession</code> was created with, for each element of <code>ppsAddList</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08320",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then <code>num_tile_rows_minus1</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxTiles.height</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile <code>videoSession</code> was created with, for each element of <code>ppsAddList</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a>, or <a href=\"#VkVideoEncodeQualityLevelInfoKHR\">VkVideoEncodeQualityLevelInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameter",
+          "text": "If <code>videoSessionParametersTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParametersTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameter",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parent",
+          "text": "If <code>videoSessionParametersTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-commonparent",
+          "text": "Both of <code>videoSession</code>, and <code>videoSessionParametersTemplate</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkDestroyVideoSessionParametersKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07212",
+          "text": "All submitted commands that refer to <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> have completed execution",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07213",
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>videoSessionParameters</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07214",
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>videoSessionParameters</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameter",
+          "text": "If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parent",
+          "text": "If <code>videoSessionParameters</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkUpdateVideoSessionParametersKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-07215",
+          "text": "<code>pUpdateInfo-&gt;updateSequenceCount</code> <strong class=\"purple\">must</strong> equal the current <a href=\"#video-session-parameters\">update sequence counter</a> of <code>videoSessionParameters</code> plus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07216",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH264SequenceParameterSet</code> entry with <code>seq_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a>::<code>pStdSPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07217",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the number of <code>StdVideoH264SequenceParameterSet</code> entries already stored in it plus the value of the <code>stdSPSCount</code> member of the <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a>::<code>maxStdSPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07218",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH264PictureParameterSet</code> entry with both <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07219",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the number of <code>StdVideoH264PictureParameterSet</code> entries already stored in it plus the value of the <code>stdPPSCount</code> member of the <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a>::<code>maxStdPPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07220",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265VideoParameterSet</code> entry with <code>vps_video_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a>::<code>pStdVPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07221",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265VideoParameterSet</code> entries already stored in it plus the value of the <code>stdVPSCount</code> member of the <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdVPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07222",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265SequenceParameterSet</code> entry with both <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a>::<code>pStdSPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07223",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265SequenceParameterSet</code> entries already stored in it plus the value of the <code>stdSPSCount</code> member of the <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdSPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07224",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265PictureParameterSet</code> entry with <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> all matching any of the elements of <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07225",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265PictureParameterSet</code> entries already stored in it plus the value of the <code>stdPPSCount</code> member of the <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdPPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07226",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH264SequenceParameterSet</code> entry with <code>seq_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a>::<code>pStdSPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06441",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the number of <code>StdVideoH264SequenceParameterSet</code> entries already stored in it plus the value of the <code>stdSPSCount</code> member of the <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a>::<code>maxStdSPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07227",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH264PictureParameterSet</code> entry with both <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06442",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the number of <code>StdVideoH264PictureParameterSet</code> entries already stored in it plus the value of the <code>stdPPSCount</code> member of the <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoKHR\">VkVideoEncodeH264SessionParametersCreateInfoKHR</a>::<code>maxStdPPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07228",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265VideoParameterSet</code> entry with <code>vps_video_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>::<code>pStdVPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06443",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265VideoParameterSet</code> entries already stored in it plus the value of the <code>stdVPSCount</code> member of the <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdVPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07229",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265SequenceParameterSet</code> entry with both <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> matching any of the elements of <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>::<code>pStdSPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06444",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265SequenceParameterSet</code> entries already stored in it plus the value of the <code>stdSPSCount</code> member of the <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdSPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07230",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not already contain a <code>StdVideoH265PictureParameterSet</code> entry with <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> all matching any of the elements of <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06445",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the number of <code>StdVideoH265PictureParameterSet</code> entries already stored in it plus the value of the <code>stdPPSCount</code> member of the <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure included in the <code>pUpdateInfo-&gt;pNext</code> chain <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoKHR\">VkVideoEncodeH265SessionParametersCreateInfoKHR</a>::<code>maxStdPPSCount</code> <code>videoSessionParameters</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-08321",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure, then <code>num_tile_columns_minus1</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxTiles.width</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile <code>videoSessionParameters</code> was created with, for each element of <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-08322",
+          "text": "If <code>videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the <code>pNext</code> chain of <code>pUpdateInfo</code> includes a <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure, then <code>num_tile_rows_minus1</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxTiles.height</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile <code>videoSessionParameters</code> was created with, for each element of <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>::<code>pStdPPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameter",
+          "text": "<code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameter",
+          "text": "<code>pUpdateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersUpdateInfoKHR\">VkVideoSessionParametersUpdateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parent",
+          "text": "<code>videoSessionParameters</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoSessionParametersUpdateInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a>, <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a>, <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a>, or <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdBeginVideoCodingKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07231",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support the video codec operation <code>pBeginInfo-&gt;videoSession</code> was created with, as returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> in <a href=\"#VkQueueFamilyVideoPropertiesKHR\">VkQueueFamilyVideoPropertiesKHR</a>::<code>videoCodecOperations</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-None-07232",
+          "text": "There <strong class=\"purple\">must</strong> be no <a href=\"#queries-operation-active\">active</a> queries",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07233",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pBeginInfo-&gt;videoSession</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07234",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pBeginInfo-&gt;videoSession</code> <strong class=\"purple\">must</strong> have been created with <code>VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07235",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer, <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, and the <code>pPictureResource</code> member of any element of <code>pBeginInfo-&gt;pReferenceSlots</code> is not <code>NULL</code>, then <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> not specify an image view created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07236",
+          "text": "If <code>commandBuffer</code> is a protected command buffer <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, and the <code>pPictureResource</code> member of any element of <code>pBeginInfo-&gt;pReferenceSlots</code> is not <code>NULL</code>, then <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> specify an image view created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239",
+          "text": "If the <code>slotIndex</code> member of any element of <code>pBeginInfo-&gt;pReferenceSlots</code> is not negative, then it <strong class=\"purple\">must</strong> specify the index of a DPB slot that is in the <a href=\"#dpb-slot-states\">active state</a> in <code>pBeginInfo-&gt;videoSession</code> at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pPictureResource-07265",
+          "text": "Each video picture resource specified by any non-<code>NULL</code> <code>pPictureResource</code> member specified in the elements of <code>pBeginInfo-&gt;pReferenceSlots</code> for which <code>slotIndex</code> is not negative <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a> one of the video picture resources currently associated with the DPB slot index of <code>pBeginInfo-&gt;videoSession</code> specified by <code>slotIndex</code> at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08253",
+          "text": "If <code>pBeginInfo-&gt;videoSession</code> was created with a video encode operation and the <code>pNext</code> chain of <code>pBeginInfo</code> does not include an instance of the <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> structure, then the <a href=\"#encode-rate-control-modes\">rate control mode</a> configured for <code>pBeginInfo-&gt;videoSession</code> at the time the command is executed on the device <strong class=\"purple\">must</strong> be <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08254",
+          "text": "If <code>pBeginInfo-&gt;videoSession</code> was created with a video encode operation and the <code>pNext</code> chain of <code>pBeginInfo</code> includes an instance of the <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> structure, then it <strong class=\"purple\">must</strong> <a href=\"#encode-rate-control-state-matching\">match</a> the rate control state configured for <code>pBeginInfo-&gt;videoSession</code> at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08255",
+          "text": "If <code>pBeginInfo-&gt;videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>requiresGopRemainingFrames</code> is <code>VK_TRUE</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the <code>pBeginInfo-&gt;videoSession</code> was created with, then the <code>pNext</code> chain of <code>pBeginInfo</code> <strong class=\"purple\">must</strong> include an instance of the <a href=\"#VkVideoEncodeH264GopRemainingFrameInfoKHR\">VkVideoEncodeH264GopRemainingFrameInfoKHR</a> with its <code>useGopRemainingFrames</code> member set to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08256",
+          "text": "If <code>pBeginInfo-&gt;videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>requiresGopRemainingFrames</code> is <code>VK_TRUE</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the <code>pBeginInfo-&gt;videoSession</code> was created with, then the <code>pNext</code> chain of <code>pBeginInfo</code> <strong class=\"purple\">must</strong> include an instance of the <a href=\"#VkVideoEncodeH265GopRemainingFrameInfoKHR\">VkVideoEncodeH265GopRemainingFrameInfoKHR</a> with its <code>useGopRemainingFrames</code> member set to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameter",
+          "text": "<code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoBeginCodingInfoKHR\">VkVideoBeginCodingInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdBeginVideoCodingKHR-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoBeginCodingInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07237",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> have memory bound to all of its memory bindings returned by <a href=\"#vkGetVideoSessionMemoryRequirementsKHR\">vkGetVideoSessionMemoryRequirementsKHR</a> for <code>videoSession</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-04856",
+          "text": "Each non-negative <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a>::<code>slotIndex</code> specified in the elements of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> specified when <code>videoSession</code> was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07238",
+          "text": "Each video picture resource corresponding to any non-<code>NULL</code> <code>pPictureResource</code> member specified in the elements of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be <a href=\"#video-picture-resource-uniqueness\">unique</a> within <code>pReferenceSlots</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07240",
+          "text": "If the <code>pPictureResource</code> member of any element of <code>pReferenceSlots</code> is not <code>NULL</code>, then the image view specified in <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> be <a href=\"#video-profile-compatibility\">compatible</a> with the video profile <code>videoSession</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07241",
+          "text": "If the <code>pPictureResource</code> member of any element of <code>pReferenceSlots</code> is not <code>NULL</code>, then the format of the image view specified in <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> match the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>referencePictureFormat</code> <code>videoSession</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07242",
+          "text": "If the <code>pPictureResource</code> member of any element of <code>pReferenceSlots</code> is not <code>NULL</code>, then its <code>codedOffset</code> member <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07243",
+          "text": "If the <code>pPictureResource</code> member of any element of <code>pReferenceSlots</code> is not <code>NULL</code>, then its <code>codedExtent</code> member <strong class=\"purple\">must</strong> be between <code>minCodedExtent</code> and <code>maxCodedExtent</code>, inclusive, <code>videoSession</code> was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-07244",
+          "text": "If <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile <code>videoSession</code> was created with, then <code>pPictureResource-&gt;imageViewBinding</code> of all elements of <code>pReferenceSlots</code> with a non-<code>NULL</code> <code>pPictureResource</code> member <strong class=\"purple\">must</strong> specify image views created from the same image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-07245",
+          "text": "If <code>videoSession</code> was created with a decode operation and the <code>slotIndex</code> member of any element of <code>pReferenceSlots</code> is not negative, then the image view specified in <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-slotIndex-07246",
+          "text": "If <code>videoSession</code> was created with an encode operation and the <code>slotIndex</code> member of any element of <code>pReferenceSlots</code> is not negative, then the image view specified in <code>pPictureResource-&gt;imageViewBinding</code> for that element <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07247",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not be <code>VK_NULL_HANDLE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07248",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not be <code>VK_NULL_HANDLE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07249",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not be <code>VK_NULL_HANDLE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-07250",
+          "text": "If <code>videoSession</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> not be <code>VK_NULL_HANDLE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857",
+          "text": "If <code>videoSessionParameters</code> is not <code>VK_NULL_HANDLE</code>, it <strong class=\"purple\">must</strong> have been created with <code>videoSession</code> specified in <a href=\"#VkVideoSessionParametersCreateInfoKHR\">VkVideoSessionParametersCreateInfoKHR</a>::<code>videoSession</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264GopRemainingFrameInfoKHR\">VkVideoEncodeH264GopRemainingFrameInfoKHR</a>, <a href=\"#VkVideoEncodeH264RateControlInfoKHR\">VkVideoEncodeH264RateControlInfoKHR</a>, <a href=\"#VkVideoEncodeH265GopRemainingFrameInfoKHR\">VkVideoEncodeH265GopRemainingFrameInfoKHR</a>, <a href=\"#VkVideoEncodeH265RateControlInfoKHR\">VkVideoEncodeH265RateControlInfoKHR</a>, or <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmask",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-parameter",
+          "text": "<code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameter",
+          "text": "If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameter",
+          "text": "If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parent",
+          "text": "If <code>videoSessionParameters</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoBeginCodingInfoKHR-commonparent",
+          "text": "Both of <code>videoSession</code>, and <code>videoSessionParameters</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoReferenceSlotInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264DpbSlotInfoKHR\">VkVideoDecodeH264DpbSlotInfoKHR</a>, <a href=\"#VkVideoDecodeH265DpbSlotInfoKHR\">VkVideoDecodeH265DpbSlotInfoKHR</a>, <a href=\"#VkVideoEncodeH264DpbSlotInfoKHR\">VkVideoEncodeH264DpbSlotInfoKHR</a>, or <a href=\"#VkVideoEncodeH265DpbSlotInfoKHR\">VkVideoEncodeH265DpbSlotInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameter",
+          "text": "If <code>pPictureResource</code> is not <code>NULL</code>, <code>pPictureResource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndVideoCodingKHR": {
-      "(VK_KHR_video_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdEndVideoCodingKHR-None-07251",
+          "text": "There <strong class=\"purple\">must</strong> be no <a href=\"#queries-operation-active\">active</a> queries",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameter",
-          "text": " <code>pEndCodingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEndCodingInfoKHR\">VkVideoEndCodingInfoKHR</a> structure"
+          "text": "<code>pEndCodingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEndCodingInfoKHR\">VkVideoEndCodingInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndVideoCodingKHR-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoEndCodingInfoKHR": {
-      "(VK_KHR_video_queue)": [
+      "core": [
         {
           "vuid": "VUID-VkVideoEndCodingInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEndCodingInfoKHR-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEndCodingInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdControlVideoCodingKHR": {
-      "(VK_KHR_video_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdControlVideoCodingKHR-flags-07017",
+          "text": "If <code>pCodingControlInfo-&gt;flags</code> does not include <code>VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR</code>, then the bound video session <strong class=\"purple\">must</strong> not be in <a href=\"#video-session-uninitialized\">uninitialized</a> state at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-08243",
+          "text": "If the bound video session was not created with an encode operation, then <code>pCodingControlInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> not include <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code> or <code>VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameter",
-          "text": " <code>pCodingControlInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoCodingControlInfoKHR\">VkVideoCodingControlInfoKHR</a> structure"
+          "text": "<code>pCodingControlInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoCodingControlInfoKHR\">VkVideoCodingControlInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdControlVideoCodingKHR-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoCodingControlInfoKHR": {
-      "(VK_KHR_video_queue)": [
+      "core": [
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07016",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> include at least one bit"
+          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07018",
+          "text": "If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07017",
-          "text": " If the bound video session object is in <em>uninitialized</em> state, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR</code>"
+          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-08349",
+          "text": "If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeQualityLevelInfoKHR\">VkVideoEncodeQualityLevelInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoCodingControlInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH264RateControlLayerInfoEXT\">VkVideoEncodeH264RateControlLayerInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlLayerInfoEXT\">VkVideoEncodeH265RateControlLayerInfoEXT</a>, <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, or <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264RateControlInfoKHR\">VkVideoEncodeH264RateControlInfoKHR</a>, <a href=\"#VkVideoEncodeH265RateControlInfoKHR\">VkVideoEncodeH265RateControlInfoKHR</a>, <a href=\"#VkVideoEncodeQualityLevelInfoKHR\">VkVideoEncodeQualityLevelInfoKHR</a>, or <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoCodingControlInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoCodingControlFlagBitsKHR\">VkVideoCodingControlFlagBitsKHR</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoCodingControlFlagBitsKHR\">VkVideoCodingControlFlagBitsKHR</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-requiredbitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
-      ],
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      ]
+    },
+    "VkVideoInlineQueryInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07018",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> structure"
+          "vuid": "VUID-VkVideoInlineQueryInfoKHR-queryPool-08372",
+          "text": "If <code>queryPool</code> is not <code>VK_NULL_HANDLE</code>, then <code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07019",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structure"
+          "vuid": "VUID-VkVideoInlineQueryInfoKHR-queryPool-08373",
+          "text": "If <code>queryPool</code> is not <code>VK_NULL_HANDLE</code>, then the sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07020",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not also include <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code>"
-        }
-      ],
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
-        {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07021",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, and the bound video session was created with <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoInlineQueryInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07022",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, and <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>layerCount</code> is greater than <code>1</code>, then <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>::<code>temporalLayerCount</code> <strong class=\"purple\">must</strong> be equal to <code>layerCount</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07023",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code> and the bound video session was created with <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264RateControlLayerInfoEXT\">VkVideoEncodeH264RateControlLayerInfoEXT</a> structure"
-        }
-      ],
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
-        {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07024",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, and the bound video session was created with <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07025",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, and <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>layerCount</code> is greater than <code>1</code>, then <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>::<code>subLayerCount</code> <strong class=\"purple\">must</strong> be equal to <code>layerCount</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07026",
-          "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code> and the bound video session was created with <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265RateControlLayerInfoEXT\">VkVideoEncodeH265RateControlLayerInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoInlineQueryInfoKHR-queryPool-parameter",
+          "text": "If <code>queryPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoDecodeCapabilitiesKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)": [
+      "core": [
         {
           "vuid": "VUID-VkVideoDecodeCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDecodeVideoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-None-08249",
+          "text": "The bound video session <strong class=\"purple\">must</strong> have been created with a decode operation",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-None-07011",
-          "text": " The bound video session object <strong class=\"purple\">must</strong> not be in <em>uninitialized</em> state"
+          "text": "The bound video session <strong class=\"purple\">must</strong> not be in <a href=\"#video-session-uninitialized\">uninitialized</a> state at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-opCount-07134",
+          "text": "For each <a href=\"#queries-operation-active\">active</a> query, the <a href=\"#queries-operation-active-query-index\">active query index</a> corresponding to the query type of that query plus <code>opCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#queries-operation-last-activatable-query-index\">last activatable query index</a> corresponding to the query type of that query plus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-08365",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>pNext</code> chain of <code>pDecodeInfo</code> includes a <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure with its <code>queryPool</code> member specifying a valid <code>VkQueryPool</code> handle, then <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a>::queryCount <strong class=\"purple\">must</strong> equal <code>opCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-08366",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>pNext</code> chain of <code>pDecodeInfo</code> includes a <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure with its <code>queryPool</code> member specifying a valid <code>VkQueryPool</code> handle, then all the queries used by the command, as specified by the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure, <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-queryType-08367",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, then the <code>queryType</code> used to create the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-queryPool-08368",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, then the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-queryType-08369",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>queryType</code> used to create the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code> is <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> have been created with a queue family index that supports <a href=\"#queries-result-status-only\">result status queries</a>, as indicated by <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>::<code>queryResultStatusSupport</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07135",
+          "text": "<code>pDecodeInfo-&gt;srcBuffer</code> <strong class=\"purple\">must</strong> be <a href=\"#video-profile-compatibility\">compatible</a> with the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07136",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pDecodeInfo-&gt;srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07137",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pDecodeInfo-&gt;srcBuffer</code> <strong class=\"purple\">must</strong> be a protected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07138",
+          "text": "<code>pDecodeInfo-&gt;srcBufferOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minBitstreamBufferOffsetAlignment</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07139",
+          "text": "<code>pDecodeInfo-&gt;srcBufferRange</code> <strong class=\"purple\">must</strong> be an integer multiple of <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minBitstreamBufferSizeAlignment</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07140",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code> and <a href=\"#VkVideoDecodeCapabilitiesKHR\">VkVideoDecodeCapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then the video picture resources specified by <code>pDecodeInfo-&gt;dstPictureResource</code> and <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> not <a href=\"#video-picture-resource-matching\">match</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07141",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code> and <a href=\"#VkVideoDecodeCapabilitiesKHR\">VkVideoDecodeCapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then the video picture resources specified by <code>pDecodeInfo-&gt;dstPictureResource</code> and <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07142",
+          "text": "<code>pDecodeInfo-&gt;dstPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> be <a href=\"#video-profile-compatibility\">compatible</a> with the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07143",
+          "text": "The format of <code>pDecodeInfo-&gt;dstPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pictureFormat</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07144",
+          "text": "<code>pDecodeInfo-&gt;dstPictureResource.codedOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07145",
+          "text": "<code>pDecodeInfo-&gt;dstPictureResource.codedExtent</code> <strong class=\"purple\">must</strong> be between <code>minCodedExtent</code> and <code>maxCodedExtent</code>, inclusive, the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07146",
+          "text": "<code>pDecodeInfo-&gt;dstPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07147",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pDecodeInfo-&gt;dstPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> not have been created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-07148",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pDecodeInfo-&gt;dstPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> have been created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-08376",
+          "text": "<code>pDecodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> unless the bound video session was created with <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> equal to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07170",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;slotIndex</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07173",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource-&gt;codedOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07149",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a> one of the <a href=\"#bound-reference-picture-resources\">bound reference picture resource</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-activeReferencePictureCount-07150",
+          "text": "<code>activeReferencePictureCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxActiveReferencePictures</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-slotIndex-07256",
+          "text": "The <code>slotIndex</code> member of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-codedOffset-07257",
+          "text": "The <code>codedOffset</code> member of the <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure pointed to by the <code>pPictureResource</code> member of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07151",
+          "text": "The <code>pPictureResource</code> member of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a> one of the <a href=\"#bound-reference-picture-resources\">bound reference picture resource</a> associated with the DPB slot index specified in the <code>slotIndex</code> member of that element",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07264",
+          "text": "Each video picture resource corresponding to the <code>pPictureResource</code> member specified in the elements of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be <a href=\"#video-picture-resource-uniqueness\">unique</a> within <code>pDecodeInfo-&gt;pReferenceSlots</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-dpbFrameUseCount-07176",
+          "text": "All elements of <code>dpbFrameUseCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-dpbTopFieldUseCount-07177",
+          "text": "All elements of <code>dpbTopFieldUseCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-dpbBottomFieldUseCount-07178",
+          "text": "All elements of <code>dpbBottomFieldUseCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07252",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is <code>NULL</code> or <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> does not <a href=\"#video-image-subresource-reference\">refer</a> to the same image subresource as <code>pDecodeInfo-&gt;dstPictureResource</code>, then the image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by <code>pDecodeInfo-&gt;dstPictureResource</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR</code> layout at the time the video decode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07253",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code> and <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <a href=\"#video-image-subresource-reference\">refers</a> to the same image subresource as <code>pDecodeInfo-&gt;dstPictureResource</code>, then the image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by <code>pDecodeInfo-&gt;dstPictureResource</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR</code> layout at the time the video decode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07254",
+          "text": "If <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by <code>pDecodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR</code> layout at the time the video decode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pPictureResource-07255",
+          "text": "The image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by the <code>pPictureResource</code> member of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR</code> layout at the time the video decode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07152",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264PictureInfoKHR\">VkVideoDecodeH264PictureInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-None-07258",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> but was not created with <a href=\"#decode-h264-interlaced-support\">interlaced frame support</a>, then the <a href=\"#decode-h264-output-picture-info\">decode output picture</a> <strong class=\"purple\">must</strong> represent a frame",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pSliceOffsets-07153",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then all elements of the <code>pSliceOffsets</code> member of the <a href=\"#VkVideoDecodeH264PictureInfoKHR\">VkVideoDecodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> be less than <code>pDecodeInfo-&gt;srcBufferRange</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH264SequenceParameterSet-07154",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH264SequenceParameterSet</code> entry with <code>seq_parameter_set_id</code> matching <code>StdVideoDecodeH264PictureInfo</code>::<code>seq_parameter_set_id</code> that is provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoDecodeH264PictureInfoKHR\">VkVideoDecodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH264PictureParameterSet-07155",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH264PictureParameterSet</code> entry with <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> matching <code>StdVideoDecodeH264PictureInfo</code>::<code>seq_parameter_set_id</code> and <code>StdVideoDecodeH264PictureInfo</code>::<code>pic_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoDecodeH264PictureInfoKHR\">VkVideoDecodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07156",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the <code>pNext</code> chain of <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264DpbSlotInfoKHR\">VkVideoDecodeH264DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07259",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> but was not created with <a href=\"#decode-h264-interlaced-support\">interlaced frame support</a>, and <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the <a href=\"#decode-h264-reconstructed-picture-info\">reconstructed picture</a> <strong class=\"purple\">must</strong> represent a frame",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07157",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH264DpbSlotInfoKHR\">VkVideoDecodeH264DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07260",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> but was not created with <a href=\"#decode-h264-interlaced-support\">interlaced frame support</a>, then each <a href=\"#decode-h264-active-reference-picture-info\">active reference picture</a> corresponding to the elements of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> represent a frame",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07261",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, and the <a href=\"#decode-h264-output-picture-info\">decode output picture</a> represents a frame, then the <a href=\"#decode-h264-reconstructed-picture-info\">reconstructed picture</a> <strong class=\"purple\">must</strong> also represent a frame",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07262",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, and the <a href=\"#decode-h264-output-picture-info\">decode output picture</a> represents a top field, then the <a href=\"#decode-h264-reconstructed-picture-info\">reconstructed picture</a> <strong class=\"purple\">must</strong> also represent a top field",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07263",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code>, <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, and the <a href=\"#decode-h264-output-picture-info\">decode output picture</a> represents a bottom field, then the <a href=\"#decode-h264-reconstructed-picture-info\">reconstructed picture</a> <strong class=\"purple\">must</strong> also represent a bottom field",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07266",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and an <a href=\"#decode-h264-active-reference-picture-info\">active reference picture</a> corresponding to any element of <code>pDecodeInfo-&gt;pReferenceSlots</code> represents a frame, then the DPB slot index of the bound video session specified by the <code>slotIndex</code> member of that element <strong class=\"purple\">must</strong> be currently associated with a frame picture <a href=\"#video-picture-resource-matching\">matching</a> the video picture resource specified by the <code>pPictureResource</code> member of the same element at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and an <a href=\"#decode-h264-active-reference-picture-info\">active reference picture</a> corresponding to any element of <code>pDecodeInfo-&gt;pReferenceSlots</code> represents a top field, then the DPB slot index of the bound video session specified by the <code>slotIndex</code> member of that element <strong class=\"purple\">must</strong> be currently associated with a top field picture <a href=\"#video-picture-resource-matching\">matching</a> the video picture resource specified by the <code>pPictureResource</code> member of the same element at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07268",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR</code> and an <a href=\"#decode-h264-active-reference-picture-info\">active reference picture</a> corresponding to any element of <code>pDecodeInfo-&gt;pReferenceSlots</code> represents a bottom field, then the DPB slot index of the bound video session specified by the <code>slotIndex</code> member of that element <strong class=\"purple\">must</strong> be currently associated with a bottom field picture <a href=\"#video-picture-resource-matching\">matching</a> the video picture resource specified by the <code>pPictureResource</code> member of the same element at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07158",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pSliceSegmentOffsets-07159",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then all elements of the <code>pSliceSegmentOffsets</code> member of the <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> be less than <code>pDecodeInfo-&gt;srcBufferRange</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265VideoParameterSet-07160",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265VideoParameterSet</code> entry with <code>vps_video_parameter_set_id</code> matching <code>StdVideoDecodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code> that is provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265SequenceParameterSet-07161",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265SequenceParameterSet</code> entry with <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> matching <code>StdVideoDecodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code> and <code>StdVideoDecodeH265PictureInfo</code>::<code>pps_seq_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-StdVideoH265PictureParameterSet-07162",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265PictureParameterSet</code> entry with <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> matching <code>StdVideoDecodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code>, <code>StdVideoDecodeH265PictureInfo</code>::<code>pps_seq_parameter_set_id</code>, and <code>StdVideoDecodeH265PictureInfo</code>::<code>pps_pic_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pDecodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code> and <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the <code>pNext</code> chain of <code>pDecodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265DpbSlotInfoKHR\">VkVideoDecodeH265DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-07164",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of each element of <code>pDecodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoDecodeH265DpbSlotInfoKHR\">VkVideoDecodeH265DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-parameter",
-          "text": " <code>pDecodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeInfoKHR\">VkVideoDecodeInfoKHR</a> structure"
+          "text": "<code>pDecodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeInfoKHR\">VkVideoDecodeInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDecodeVideoKHR-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoDecodeInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-srcBuffer-07165",
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-srcBufferOffset-07166",
+          "text": "<code>srcBufferOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-srcBufferRange-07167",
+          "text": "<code>srcBufferRange</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcBufferOffset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07168",
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, then its <code>slotIndex</code> member <strong class=\"purple\">must</strong> not be negative",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07169",
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, then its <code>pPictureResource</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-slotIndex-07171",
+          "text": "The <code>slotIndex</code> member of each element of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> not be negative",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoDecodeInfoKHR-pPictureResource-07172",
+          "text": "The <code>pPictureResource</code> member of each element of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264PictureInfoEXT\">VkVideoDecodeH264PictureInfoEXT</a> or <a href=\"#VkVideoDecodeH265PictureInfoEXT\">VkVideoDecodeH265PictureInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264PictureInfoKHR\">VkVideoDecodeH264PictureInfoKHR</a>, <a href=\"#VkVideoDecodeH265PictureInfoKHR\">VkVideoDecodeH265PictureInfoKHR</a>, or <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-srcBuffer-parameter",
-          "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "text": "<code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameter",
-          "text": " <code>dstPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure"
+          "text": "<code>dstPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameter",
-          "text": " If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structure"
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameter",
-          "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures"
+          "text": "If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264ProfileInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264ProfileInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264ProfileInfoEXT-pNext-06259",
-          "text": " If the <a href=\"#VkVideoDecodeH264ProfileInfoEXT\">VkVideoDecodeH264ProfileInfoEXT</a> structure is included in the <code>pNext</code> chain of the <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a> structure passed to <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a>, the value in <code>pictureLayout</code> is treated as a bitmask of requested picture layouts. It is always valid to use the value <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT</code> as the implementation is guaranteed to support decoding of progressive content"
+          "vuid": "VUID-VkVideoDecodeH264ProfileInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264ProfileInfoEXT-pNext-06260",
-          "text": " If the <a href=\"#VkVideoDecodeH264ProfileInfoEXT\">VkVideoDecodeH264ProfileInfoEXT</a> structure is included in the <code>pNext</code> chain of the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> structure passed to <a href=\"#vkCreateVideoSessionKHR\">vkCreateVideoSessionKHR</a>, the value in <code>pictureLayout</code> <strong class=\"purple\">must</strong> be exactly one of <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT</code>, <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT</code> or <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264ProfileInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264ProfileInfoEXT-pictureLayout-parameter",
-          "text": " If <code>pictureLayout</code> is not <code>0</code>, <code>pictureLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoDecodeH264PictureLayoutFlagBitsEXT\">VkVideoDecodeH264PictureLayoutFlagBitsEXT</a> value"
+          "vuid": "VUID-VkVideoDecodeH264ProfileInfoKHR-pictureLayout-parameter",
+          "text": "If <code>pictureLayout</code> is not <code>0</code>, <code>pictureLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoDecodeH264PictureLayoutFlagBitsKHR\">VkVideoDecodeH264PictureLayoutFlagBitsKHR</a> value",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264CapabilitiesEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264CapabilitiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264CapabilitiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH264CapabilitiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264SessionParametersCreateInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264SessionParametersCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
-          "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH264SessionParametersAddInfoEXT\">VkVideoDecodeH264SessionParametersAddInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameter",
+          "text": "If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH264SessionParametersAddInfoKHR\">VkVideoDecodeH264SessionParametersAddInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264SessionParametersAddInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264SessionParametersAddInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-stdSPSCount-04822",
-          "text": " The values of <code>stdSPSCount</code> and <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxStdSPSCount</code> and <code>maxStdPPSCount</code>, respectively"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04825",
+          "text": "The <code>seq_parameter_set_id</code> member of each <code>StdVideoH264SequenceParameterSet</code> structure specified in the elements of <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdSPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxStdSPSCount-04823",
-          "text": " When the <code>maxStdSPSCount</code> number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04826",
+          "text": "The pair constructed from the <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> members of each <code>StdVideoH264PictureParameterSet</code> structure specified in the elements of <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdPPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxStdPPSCount-04824",
-          "text": " When the <code>maxStdPPSCount</code> number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04825",
-          "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdSPSs-parameter",
+          "text": "If <code>stdSPSCount</code> is not <code>0</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH264SequenceParameterSet</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04826",
-          "text": " Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04827",
-          "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same SPS-PPS IDs as the ones from the template take precedence"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04828",
-          "text": " SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pStdSPSs-parameter",
-          "text": " If <code>stdSPSCount</code> is not <code>0</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH264SequenceParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pStdPPSs-parameter",
-          "text": " If <code>stdPPSCount</code> is not <code>0</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH264PictureParameterSet</code> values"
+          "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdPPSs-parameter",
+          "text": "If <code>stdPPSCount</code> is not <code>0</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH264PictureParameterSet</code> values",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264PictureInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264PictureInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-pStdPictureInfo-parameter",
-          "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264PictureInfo</code> value"
+          "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-pStdPictureInfo-parameter",
+          "text": "<code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264PictureInfo</code> value",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-pSliceOffsets-parameter",
-          "text": " <code>pSliceOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sliceCount</code> <code>uint32_t</code> values"
+          "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-pSliceOffsets-parameter",
+          "text": "<code>pSliceOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sliceCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-sliceCount-arraylength",
-          "text": " <code>sliceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoDecodeH264PictureInfoKHR-sliceCount-arraylength",
+          "text": "<code>sliceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH264DpbSlotInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)": [
+    "VkVideoDecodeH264DpbSlotInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter",
-          "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264ReferenceInfo</code> value"
+          "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameter",
+          "text": "<code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264ReferenceInfo</code> value",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265ProfileInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265ProfileInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265ProfileInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH265ProfileInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265CapabilitiesEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265CapabilitiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265CapabilitiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH265CapabilitiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265SessionParametersCreateInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265SessionParametersCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
-          "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH265SessionParametersAddInfoEXT\">VkVideoDecodeH265SessionParametersAddInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameter",
+          "text": "If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH265SessionParametersAddInfoKHR\">VkVideoDecodeH265SessionParametersAddInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265SessionParametersAddInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265SessionParametersAddInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-stdVPSCount-04829",
-          "text": " The values of <code>stdVPSCount</code>, <code>stdSPSCount</code> and <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxStdVPSCount</code>, <code>maxStdSPSCount</code> and <code>maxStdPPSCount</code>, respectively"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04833",
+          "text": "The <code>vps_video_parameter_set_id</code> member of each <code>StdVideoH265VideoParameterSet</code> structure specified in the elements of <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdVPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdVPSCount-04830",
-          "text": " When the <code>maxStdVPSCount</code> number of parameters of type StdVideoH265VideoParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04834",
+          "text": "The pair constructed from the <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> members of each <code>StdVideoH265SequenceParameterSet</code> structure specified in the elements of <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdSPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdSPSCount-04831",
-          "text": " When the <code>maxStdSPSCount</code> number of parameters of type StdVideoH265SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04835",
+          "text": "The triplet constructed from the <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> members of each <code>StdVideoH265PictureParameterSet</code> structure specified in the elements of <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdPPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdPPSCount-04832",
-          "text": " When the <code>maxStdPPSCount</code> number of parameters of type StdVideoH265PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04833",
-          "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdVPSs-parameter",
+          "text": "If <code>stdVPSCount</code> is not <code>0</code>, <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdVPSCount</code> <code>StdVideoH265VideoParameterSet</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04834",
-          "text": " Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdSPSs-parameter",
+          "text": "If <code>stdSPSCount</code> is not <code>0</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH265SequenceParameterSet</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04835",
-          "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04836",
-          "text": " VPS/SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdVPSs-parameter",
-          "text": " If <code>stdVPSCount</code> is not <code>0</code>, <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdVPSCount</code> <code>StdVideoH265VideoParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdSPSs-parameter",
-          "text": " If <code>stdSPSCount</code> is not <code>0</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH265SequenceParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdPPSs-parameter",
-          "text": " If <code>stdPPSCount</code> is not <code>0</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH265PictureParameterSet</code> values"
+          "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdPPSs-parameter",
+          "text": "If <code>stdPPSCount</code> is not <code>0</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH265PictureParameterSet</code> values",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265PictureInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265PictureInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-pStdPictureInfo-parameter",
-          "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>StdVideoDecodeH265PictureInfo</code> value"
+          "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-pStdPictureInfo-parameter",
+          "text": "<code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH265PictureInfo</code> value",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-pSliceSegmentOffsets-parameter",
-          "text": " <code>pSliceSegmentOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sliceSegmentCount</code> <code>uint32_t</code> values"
+          "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-pSliceSegmentOffsets-parameter",
+          "text": "<code>pSliceSegmentOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sliceSegmentCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-sliceSegmentCount-arraylength",
-          "text": " <code>sliceSegmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoDecodeH265PictureInfoKHR-sliceSegmentCount-arraylength",
+          "text": "<code>sliceSegmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoDecodeH265DpbSlotInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)": [
+    "VkVideoDecodeH265DpbSlotInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter",
-          "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH265ReferenceInfo</code> value"
+          "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameter",
+          "text": "<code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH265ReferenceInfo</code> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoEncodeCapabilitiesKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      "core": [
         {
           "vuid": "VUID-VkVideoEncodeCapabilitiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-08257",
+          "text": "If <code>pQualityLevelInfo-&gt;pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pQualityLevelProperties</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264QualityLevelPropertiesKHR\">VkVideoEncodeH264QualityLevelPropertiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-08258",
+          "text": "If <code>pQualityLevelInfo-&gt;pVideoProfile-&gt;videoCodecOperation</code> is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pQualityLevelProperties</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265QualityLevelPropertiesKHR\">VkVideoEncodeH265QualityLevelPropertiesKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter",
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-parameter",
+          "text": "<code>pQualityLevelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR\">VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelProperties-parameter",
+          "text": "<code>pQualityLevelProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoEncodeQualityLevelPropertiesKHR\">VkVideoEncodeQualityLevelPropertiesKHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08259",
+          "text": "<code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a <a href=\"#video-profile-support\">supported video profile</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08260",
+          "text": "<code>pVideoProfile-&gt;videoCodecOperation</code> <strong class=\"purple\">must</strong> specify an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-qualityLevel-08261",
+          "text": "<code>qualityLevel</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>maxQualityLevels</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile specified in <code>pVideoProfile</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameter",
+          "text": "<code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeQualityLevelPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264QualityLevelPropertiesKHR\">VkVideoEncodeH264QualityLevelPropertiesKHR</a> or <a href=\"#VkVideoEncodeH265QualityLevelPropertiesKHR\">VkVideoEncodeH265QualityLevelPropertiesKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeQualityLevelInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeQualityLevelInfoKHR-qualityLevel-08311",
+          "text": "<code>qualityLevel</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>maxQualityLevels</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeQualityLevelInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetEncodedVideoSessionParametersKHR": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08359",
+          "text": "<code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> have been created with an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08262",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08263",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then for the <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code>, if its <code>writeStdSPS</code> member is <code>VK_TRUE</code>, then <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> contain a <code>StdVideoH264SequenceParameterSet</code> entry with <code>seq_parameter_set_id</code> matching <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a>::<code>stdSPSId</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08264",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then for the <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code>, if its <code>writeStdPPS</code> member is <code>VK_TRUE</code>, then <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> contain a <code>StdVideoH264PictureParameterSet</code> entry with <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> matching <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a>::<code>stdSPSId</code> and <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a>::<code>stdPPSId</code>, respectively",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08265",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08266",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then for the <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code>, if its <code>writeStdVPS</code> member is <code>VK_TRUE</code>, then <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> contain a <code>StdVideoH265VideoParameterSet</code> entry with <code>vps_video_parameter_set_id</code> matching <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdVPSId</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08267",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then for the <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code>, if its <code>writeStdSPS</code> member is <code>VK_TRUE</code>, then <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> contain a <code>StdVideoH265SequenceParameterSet</code> entry with <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> matching <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdVPSId</code> and <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdSPSId</code>, respectively",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08268",
+          "text": "If <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then for the <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pVideoSessionParametersInfo</code>, if its <code>writeStdPPS</code> member is <code>VK_TRUE</code>, then <code>pVideoSessionParametersInfo-&gt;videoSessionParameters</code> <strong class=\"purple\">must</strong> contain a <code>StdVideoH265PictureParameterSet</code> entry with <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> matching <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdVPSId</code>, <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdSPSId</code>, and <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>::<code>stdPPSId</code>, respectively",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-parameter",
+          "text": "<code>pVideoSessionParametersInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeSessionParametersGetInfoKHR\">VkVideoEncodeSessionParametersGetInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pFeedbackInfo-parameter",
+          "text": "If <code>pFeedbackInfo</code> is not <code>NULL</code>, <code>pFeedbackInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoEncodeSessionParametersFeedbackInfoKHR\">VkVideoEncodeSessionParametersFeedbackInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pDataSize-parameter",
+          "text": "<code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pData-parameter",
+          "text": "If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeSessionParametersGetInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264SessionParametersGetInfoKHR\">VkVideoEncodeH264SessionParametersGetInfoKHR</a> or <a href=\"#VkVideoEncodeH265SessionParametersGetInfoKHR\">VkVideoEncodeH265SessionParametersGetInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-videoSessionParameters-parameter",
+          "text": "<code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeSessionParametersFeedbackInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264SessionParametersFeedbackInfoKHR\">VkVideoEncodeH264SessionParametersFeedbackInfoKHR</a> or <a href=\"#VkVideoEncodeH265SessionParametersFeedbackInfoKHR\">VkVideoEncodeH265SessionParametersFeedbackInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEncodeVideoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-None-08250",
+          "text": "The bound video session <strong class=\"purple\">must</strong> have been created with an encode operation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-None-07012",
+          "text": "The bound video session <strong class=\"purple\">must</strong> not be in <a href=\"#video-session-uninitialized\">uninitialized</a> state at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-None-08318",
+          "text": "The bound video session parameters object <strong class=\"purple\">must</strong> have been created with the currently set <a href=\"#encode-quality-level\">video encode quality level</a> for the bound video session at the time the command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-opCount-07174",
+          "text": "For each <a href=\"#queries-operation-active\">active</a> query, the <a href=\"#queries-operation-active-query-index\">active query index</a> corresponding to the query type of that query plus <code>opCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#queries-operation-last-activatable-query-index\">last activatable query index</a> corresponding to the query type of that query plus one",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08360",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure with its <code>queryPool</code> member specifying a valid <code>VkQueryPool</code> handle, then <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a>::queryCount <strong class=\"purple\">must</strong> equal <code>opCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08361",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure with its <code>queryPool</code> member specifying a valid <code>VkQueryPool</code> handle, then all the queries used by the command, as specified by the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure, <strong class=\"purple\">must</strong> be <em>unavailable</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-queryType-08362",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, then the <code>queryType</code> used to create the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-queryPool-08363",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, then the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-queryType-08364",
+          "text": "If the bound video session was created with <code>VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR</code>, and the <code>queryType</code> used to create the <code>queryPool</code> specified in the <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> is <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> have been created with a queue family index that supports <a href=\"#queries-result-status-only\">result status queries</a>, as indicated by <a href=\"#VkQueueFamilyQueryResultStatusPropertiesKHR\">VkQueueFamilyQueryResultStatusPropertiesKHR</a>::<code>queryResultStatusSupport</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08201",
+          "text": "<code>pEncodeInfo-&gt;dstBuffer</code> <strong class=\"purple\">must</strong> be <a href=\"#video-profile-compatibility\">compatible</a> with the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-08202",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pEncodeInfo-&gt;dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-08203",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pEncodeInfo-&gt;dstBuffer</code> <strong class=\"purple\">must</strong> be a protected buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08204",
+          "text": "<code>pEncodeInfo-&gt;dstBufferOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minBitstreamBufferOffsetAlignment</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08205",
+          "text": "<code>pEncodeInfo-&gt;dstBufferRange</code> <strong class=\"purple\">must</strong> be an integer multiple of <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minBitstreamBufferSizeAlignment</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08206",
+          "text": "<code>pEncodeInfo-&gt;srcPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> be <a href=\"#video-profile-compatibility\">compatible</a> with the video profile the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08207",
+          "text": "The format of <code>pEncodeInfo-&gt;srcPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pictureFormat</code> the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08208",
+          "text": "<code>pEncodeInfo-&gt;srcPictureResource.codedOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08209",
+          "text": "<code>pEncodeInfo-&gt;srcPictureResource.codedExtent</code> <strong class=\"purple\">must</strong> be between <code>minCodedExtent</code> and <code>maxCodedExtent</code>, inclusive, the bound video session was created with",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08210",
+          "text": "<code>pEncodeInfo-&gt;srcPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-08211",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pEncodeInfo-&gt;srcPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> not have been created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-08212",
+          "text": "If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, then <code>pEncodeInfo-&gt;srcPictureResource.imageViewBinding</code> <strong class=\"purple\">must</strong> have been created from a protected image",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08377",
+          "text": "<code>pEncodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> unless the bound video session was created with <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> equal to zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08213",
+          "text": "If <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pEncodeInfo-&gt;pSetupReferenceSlot-&gt;slotIndex</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08214",
+          "text": "If <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pEncodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource-&gt;codedOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08215",
+          "text": "If <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then <code>pEncodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a> one of the <a href=\"#bound-reference-picture-resources\">bound reference picture resource</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-activeReferencePictureCount-08216",
+          "text": "<code>activeReferencePictureCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxActiveReferencePictures</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-slotIndex-08217",
+          "text": "The <code>slotIndex</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxDpbSlots</code> specified when the bound video session was created",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-codedOffset-08218",
+          "text": "The <code>codedOffset</code> member of the <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure pointed to by the <code>pPictureResource</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>codedOffsetGranularity</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pPictureResource-08219",
+          "text": "The <code>pPictureResource</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> <a href=\"#video-picture-resource-matching\">match</a> one of the <a href=\"#bound-reference-picture-resources\">bound reference picture resource</a> associated with the DPB slot index specified in the <code>slotIndex</code> member of that element",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pPictureResource-08220",
+          "text": "Each video picture resource corresponding to the <code>pPictureResource</code> member specified in the elements of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be <a href=\"#video-picture-resource-uniqueness\">unique</a> within <code>pEncodeInfo-&gt;pReferenceSlots</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-dpbFrameUseCount-08221",
+          "text": "All elements of <code>dpbFrameUseCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08222",
+          "text": "The image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by <code>pEncodeInfo-&gt;srcPictureResource</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR</code> layout at the time the video encode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08223",
+          "text": "If <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by <code>pEncodeInfo-&gt;pSetupReferenceSlot-&gt;pPictureResource</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR</code> layout at the time the video encode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pPictureResource-08224",
+          "text": "The image subresource <a href=\"#video-image-subresource-reference\">referred</a> to by the <code>pPictureResource</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR</code> layout at the time the video encode operation is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08225",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-StdVideoH264SequenceParameterSet-08226",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH264SequenceParameterSet</code> entry with <code>seq_parameter_set_id</code> matching <code>StdVideoEncodeH264PictureInfo</code>::<code>seq_parameter_set_id</code> that is provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-StdVideoH264PictureParameterSet-08227",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH264PictureParameterSet</code> entry with <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> matching <code>StdVideoEncodeH264PictureInfo</code>::<code>seq_parameter_set_id</code> and <code>StdVideoEncodeH264PictureInfo</code>::<code>pic_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08228",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the <code>pNext</code> chain of <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264DpbSlotInfoKHR\">VkVideoEncodeH264DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08229",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>pNext</code> chain of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264DpbSlotInfoKHR\">VkVideoEncodeH264DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08269",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> be zero for each element of the <code>pNaluSliceEntries</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08270",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> be between <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, for each element of the <code>pNaluSliceEntries</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08271",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> have the same value for each element of the <code>pNaluSliceEntries</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-naluSliceEntryCount-08302",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, then the <code>naluSliceEntryCount</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be less than or equal to <code>minCodingBlockExtent.width</code> multiplied by <code>minCodingBlockExtent.height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-naluSliceEntryCount-08312",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then the <code>naluSliceEntryCount</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be less than or equal to <code>minCodingBlockExtent.height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08352",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure, and <code>pEncodeInfo-&gt;referenceSlotCount</code> is greater than zero, then <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08339",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure, and <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> is not <code>NULL</code>, then each element of the <code>RefPicList0</code> and <code>RefPicList1</code> array members of the <code>StdVideoEncodeH264ReferenceListsInfo</code> structure pointed to by <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> <strong class=\"purple\">must</strong> either be <code>STD_VIDEO_H264_NO_REFERENCE_PICTURE</code> or <strong class=\"purple\">must</strong> equal the <code>slotIndex</code> member of one of the elements of <code>pEncodeInfo-&gt;pReferenceSlots</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08353",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure, and <code>pEncodeInfo-&gt;referenceSlotCount</code> is greater than zero, then the <code>slotIndex</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> equal one of the elements of the <code>RefPicList0</code> or <code>RefPicList1</code> array members of the <code>StdVideoEncodeH264ReferenceListsInfo</code> structure pointed to by <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-maxPPictureL0ReferenceCount-08340",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxPPictureL0ReferenceCount</code> is zero, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <code>h264PictureType</code> and each element of <code>h264L0PictureTypes</code> and <code>h264L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H264_PICTURE_TYPE_P</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-maxBPictureL0ReferenceCount-08341",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxBPictureL0ReferenceCount</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxL1ReferenceCount</code> are both zero, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <code>h264PictureType</code> and each element of <code>h264L0PictureTypes</code> and <code>h264L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H264_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-flags-08342",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then each element of <code>h264L0PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H264_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-flags-08343",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then each element of <code>h264L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H264_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08230",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-StdVideoH265VideoParameterSet-08231",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265VideoParameterSet</code> entry with <code>vps_video_parameter_set_id</code> matching <code>StdVideoEncodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code> that is provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-StdVideoH265SequenceParameterSet-08232",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265SequenceParameterSet</code> entry with <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> matching <code>StdVideoEncodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code> and <code>StdVideoEncodeH265PictureInfo</code>::<code>pps_seq_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-StdVideoH265PictureParameterSet-08233",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the bound video session parameters object <strong class=\"purple\">must</strong> contain a <code>StdVideoH265PictureParameterSet</code> entry with <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> matching <code>StdVideoEncodeH265PictureInfo</code>::<code>sps_video_parameter_set_id</code>, <code>StdVideoEncodeH265PictureInfo</code>::<code>pps_seq_parameter_set_id</code>, and <code>StdVideoEncodeH265PictureInfo</code>::<code>pps_pic_parameter_set_id</code>, respectively, that are provided in the <code>pStdPictureInfo</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08234",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> is not <code>NULL</code>, then the <code>pNext</code> chain of <code>pEncodeInfo-&gt;pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265DpbSlotInfoKHR\">VkVideoEncodeH265DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08235",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>pNext</code> chain of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265DpbSlotInfoKHR\">VkVideoEncodeH265DpbSlotInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08272",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> be zero for each element of the <code>pNaluSliceSegmentEntries</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08273",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and the current <a href=\"#encode-rate-control-modes\">rate control mode</a> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> be between <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, for each element of the <code>pNaluSliceSegmentEntries</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-constantQp-08274",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a>::<code>constantQp</code> <strong class=\"purple\">must</strong> have the same value for each element of the <code>pNaluSliceSegmentEntries</code> member of the <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-naluSliceSegmentEntryCount-08307",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, then the <code>naluSliceSegmentEntryCount</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be less than or equal to <code>minCodingBlockExtent.width</code> multiplied by <code>minCodingBlockExtent.height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-naluSliceSegmentEntryCount-08313",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then the <code>naluSliceSegmentEntryCount</code> member of the <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure included in the <code>pNext</code> chain of <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be less than or equal to <code>minCodingBlockExtent.height</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08354",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure, and <code>pEncodeInfo-&gt;referenceSlotCount</code> is greater than zero, then <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08344",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure, and <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> is not <code>NULL</code>, then each element of the <code>RefPicList0</code> and <code>RefPicList1</code> array members of the <code>StdVideoEncodeH265ReferenceListsInfo</code> structure pointed to by <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code> <strong class=\"purple\">must</strong> either be <code>STD_VIDEO_H265_NO_REFERENCE_PICTURE</code> or <strong class=\"purple\">must</strong> equal the <code>slotIndex</code> member of one of the elements of <code>pEncodeInfo-&gt;pReferenceSlots</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-08355",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, the <code>pNext</code> chain of <code>pEncodeInfo</code> includes a <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a> structure, and <code>pEncodeInfo-&gt;referenceSlotCount</code> is greater than zero, then the <code>slotIndex</code> member of each element of <code>pEncodeInfo-&gt;pReferenceSlots</code> <strong class=\"purple\">must</strong> equal one of the elements of the <code>RefPicList0</code> or <code>RefPicList1</code> array members of the <code>StdVideoEncodeH265ReferenceListsInfo</code> structure pointed to by <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a>::<code>pStdPictureInfo-&gt;pRefLists</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-maxPPictureL0ReferenceCount-08345",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxPPictureL0ReferenceCount</code> is zero, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <code>h265PictureType</code> and each element of <code>h265L0PictureTypes</code> and <code>h265L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H265_PICTURE_TYPE_P</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-maxBPictureL0ReferenceCount-08346",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxBPictureL0ReferenceCount</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxL1ReferenceCount</code> are both zero, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then <code>h265PictureType</code> and each element of <code>h265L0PictureTypes</code> and <code>h265L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H265_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-flags-08347",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then each element of <code>h265L0PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H264_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdEncodeVideoKHR-flags-08348",
+          "text": "If the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code> does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the video profile the bound video session was created with, then each element of <code>h265L1PictureTypes</code> <strong class=\"purple\">must</strong> not be <code>STD_VIDEO_H265_PICTURE_TYPE_B</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameter",
-          "text": " <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeInfoKHR\">VkVideoEncodeInfoKHR</a> structure"
+          "text": "<code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeInfoKHR\">VkVideoEncodeInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support encode operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support encode operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called inside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEncodeVideoKHR-bufferlevel",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoEncodeInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeInfoKHR-None-07012",
-          "text": " The bound video session object <strong class=\"purple\">must</strong> not be in <em>uninitialized</em> state"
+          "vuid": "VUID-VkVideoEncodeInfoKHR-dstBuffer-08236",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code> set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-dstBufferOffset-08237",
+          "text": "<code>dstBufferOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-dstBufferRange-08238",
+          "text": "<code>dstBufferRange</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstBufferOffset</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08239",
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, then its <code>slotIndex</code> member <strong class=\"purple\">must</strong> not be negative",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08240",
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, then its <code>pPictureResource</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-slotIndex-08241",
+          "text": "The <code>slotIndex</code> member of each element of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> not be negative",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeInfoKHR-pPictureResource-08242",
+          "text": "The <code>pPictureResource</code> member of each element of <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264EmitPictureParametersInfoEXT\">VkVideoEncodeH264EmitPictureParametersInfoEXT</a>, <a href=\"#VkVideoEncodeH264VclFrameInfoEXT\">VkVideoEncodeH264VclFrameInfoEXT</a>, <a href=\"#VkVideoEncodeH265EmitPictureParametersInfoEXT\">VkVideoEncodeH265EmitPictureParametersInfoEXT</a>, or <a href=\"#VkVideoEncodeH265VclFrameInfoEXT\">VkVideoEncodeH265VclFrameInfoEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264PictureInfoKHR\">VkVideoEncodeH264PictureInfoKHR</a>, <a href=\"#VkVideoEncodeH265PictureInfoKHR\">VkVideoEncodeH265PictureInfoKHR</a>, or <a href=\"#VkVideoInlineQueryInfoKHR\">VkVideoInlineQueryInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeInfoKHR-dstBitstreamBuffer-parameter",
-          "text": " <code>dstBitstreamBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+          "vuid": "VUID-VkVideoEncodeInfoKHR-dstBuffer-parameter",
+          "text": "<code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameter",
-          "text": " <code>srcPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure"
+          "text": "<code>srcPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceInfoKHR\">VkVideoPictureResourceInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameter",
-          "text": " If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structure"
+          "text": "If <code>pSetupReferenceSlot</code> is not <code>NULL</code>, <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameter",
-          "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures"
+          "text": "If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotInfoKHR\">VkVideoReferenceSlotInfoKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoEncodeRateControlInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08248",
+          "text": "If <code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, then <code>layerCount</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08275",
+          "text": "If <code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR</code>, then <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08244",
+          "text": "If <code>rateControlMode</code> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code>, then it <strong class=\"purple\">must</strong> specify one of the bits included in <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>rateControlModes</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08245",
+          "text": "<code>layerCount</code> member <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>maxRateControlLayers</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayers-08276",
+          "text": "For each element of <code>pLayers</code>, its <code>averageBitrate</code> member <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>maxBitrate</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayers-08277",
+          "text": "For each element of <code>pLayers</code>, its <code>maxBitrate</code> member <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>maxBitrate</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08356",
+          "text": "If <code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR</code>, then for each element of <code>pLayers</code>, its <code>averageBitrate</code> member <strong class=\"purple\">must</strong> equal its <code>maxBitrate</code> member",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08278",
+          "text": "If <code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR</code>, then for each element of <code>pLayers</code>, its <code>averageBitrate</code> member <strong class=\"purple\">must</strong> be less than or equal to its <code>maxBitrate</code> member",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08357",
+          "text": "If <code>layerCount</code> is not zero, then <code>virtualBufferSizeInMs</code> <strong class=\"purple\">must</strong> be greater than zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08358",
+          "text": "If <code>layerCount</code> is not zero, then <code>initialVirtualBufferSizeInMs</code> <strong class=\"purple\">must</strong> be less than <code>virtualBufferSizeInMs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-videoCodecOperation-07022",
+          "text": "If the <code>videoCodecOperation</code> of the used video profile is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR</code>, the <code>pNext</code> chain this structure is included in also includes an instance of the <a href=\"#VkVideoEncodeH264RateControlInfoKHR\">VkVideoEncodeH264RateControlInfoKHR</a> structure, and <code>layerCount</code> is greater than <code>1</code>, then <code>layerCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkVideoEncodeH264RateControlInfoKHR\">VkVideoEncodeH264RateControlInfoKHR</a>::<code>temporalLayerCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-videoCodecOperation-07025",
+          "text": "If the <code>videoCodecOperation</code> of the used video profile is <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR</code>, the <code>pNext</code> chain this structure is included in also includes an instance of the <a href=\"#VkVideoEncodeH265RateControlInfoKHR\">VkVideoEncodeH265RateControlInfoKHR</a> structure, and <code>layerCount</code> is greater than <code>1</code>, then <code>layerCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkVideoEncodeH265RateControlInfoKHR\">VkVideoEncodeH265RateControlInfoKHR</a>::<code>subLayerCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter",
-          "text": " <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
+          "text": "If <code>rateControlMode</code> is not <code>0</code>, <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayerConfigs-parameter",
-          "text": " <code>pLayerConfigs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-arraylength",
-          "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayers-parameter",
+          "text": "If <code>layerCount</code> is not <code>0</code>, <code>pLayers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkVideoEncodeRateControlLayerInfoKHR": {
-      "(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-frameRateNumerator-08350",
+          "text": "<code>frameRateNumerator</code> <strong class=\"purple\">must</strong> be greater than zero",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-frameRateDenominator-08351",
+          "text": "<code>frameRateDenominator</code> <strong class=\"purple\">must</strong> be greater than zero",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264RateControlLayerInfoKHR\">VkVideoEncodeH264RateControlLayerInfoKHR</a> or <a href=\"#VkVideoEncodeH265RateControlLayerInfoKHR\">VkVideoEncodeH265RateControlLayerInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264ProfileInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264ProfileInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264ProfileInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264ProfileInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264CapabilitiesEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264CapabilitiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264CapabilitiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264SessionParametersCreateInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264QualityLevelPropertiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
-          "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264SessionParametersAddInfoEXT\">VkVideoEncodeH264SessionParametersAddInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH264QualityLevelPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264SessionParametersAddInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264SessionCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-04837",
-          "text": " The values of <code>stdSPSCount</code> and <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxStdSPSCount</code> and <code>maxStdPPSCount</code>, respectively"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdSPSCount-04838",
-          "text": " When the <code>maxStdSPSCount</code> number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdPPSCount-04839",
-          "text": " When the <code>maxStdPPSCount</code> number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04840",
-          "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04841",
-          "text": " Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04842",
-          "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same SPS-PPS IDs as the ones from the template take precedence"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04843",
-          "text": " SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdSPSs-parameter",
-          "text": " If <code>pStdSPSs</code> is not <code>NULL</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH264SequenceParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdPPSs-parameter",
-          "text": " If <code>pStdPPSs</code> is not <code>NULL</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH264PictureParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-arraylength",
-          "text": " <code>stdSPSCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdPPSCount-arraylength",
-          "text": " <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264VclFrameInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264SessionParametersCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pReferenceFinalLists-parameter",
-          "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsInfoEXT\">VkVideoEncodeH264ReferenceListsInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pNaluSliceEntries-parameter",
-          "text": " <code>pNaluSliceEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceEntryCount</code> valid <a href=\"#VkVideoEncodeH264NaluSliceInfoEXT\">VkVideoEncodeH264NaluSliceInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pCurrentPictureInfo-parameter",
-          "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-naluSliceEntryCount-arraylength",
-          "text": " <code>naluSliceEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameter",
+          "text": "If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264SessionParametersAddInfoKHR\">VkVideoEncodeH264SessionParametersAddInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264NaluSliceInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264SessionParametersAddInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04837",
+          "text": "The <code>seq_parameter_set_id</code> member of each <code>StdVideoH264SequenceParameterSet</code> structure specified in the elements of <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdSPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04838",
+          "text": "The pair constructed from the <code>seq_parameter_set_id</code> and <code>pic_parameter_set_id</code> members of each <code>StdVideoH264PictureParameterSet</code> structure specified in the elements of <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdPPSs</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pReferenceFinalLists-parameter",
-          "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsInfoEXT\">VkVideoEncodeH264ReferenceListsInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pSliceHeaderStd-parameter",
-          "text": " <code>pSliceHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-pStdSPSs-parameter",
+          "text": "If <code>stdSPSCount</code> is not <code>0</code>, and <code>pStdSPSs</code> is not <code>NULL</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH264SequenceParameterSet</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-pStdPPSs-parameter",
+          "text": "If <code>stdPPSCount</code> is not <code>0</code>, and <code>pStdPPSs</code> is not <code>NULL</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH264PictureParameterSet</code> values",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264DpbSlotInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264SessionParametersGetInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-writeStdSPS-08279",
+          "text": "At least one of <code>writeStdSPS</code> and <code>writeStdPPS</code> <strong class=\"purple\">must</strong> be set to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter",
-          "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceInfo</code> value"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264ReferenceListsInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264SessionParametersFeedbackInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList0Entries-parameter",
-          "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList1Entries-parameter",
-          "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pMemMgmtCtrlOperations-parameter",
-          "text": " <code>pMemMgmtCtrlOperations</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264RefMemMgmtCtrlOperations</code> value"
+          "vuid": "VUID-VkVideoEncodeH264SessionParametersFeedbackInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264EmitPictureParametersInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264PictureInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-naluSliceEntryCount-08301",
+          "text": "<code>naluSliceEntryCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxSliceCount</code>, inclusive, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntries-parameter",
-          "text": " <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-flags-08304",
+          "text": "If <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR</code>, then <code>generatePrefixNalu</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntryCount-arraylength",
-          "text": " <code>ppsIdEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-flags-08314",
+          "text": "If <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR</code> and the slice corresponding to any element of <code>pNaluSliceEntries</code> uses <a href=\"#encode-h264-weighted-pred\">explicit weighted sample prediction</a>, then <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a>::<code>pStdSliceHeader-&gt;pWeightTable</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> for that element of <code>pNaluSliceEntries</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-flags-08315",
+          "text": "If <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a>::<code>pStdSliceHeader-&gt;slice_type</code> <strong class=\"purple\">must</strong> be identical for all elements of <code>pNaluSliceEntries</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-pNaluSliceEntries-parameter",
+          "text": "<code>pNaluSliceEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceEntryCount</code> valid <a href=\"#VkVideoEncodeH264NaluSliceInfoKHR\">VkVideoEncodeH264NaluSliceInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-pStdPictureInfo-parameter",
+          "text": "<code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264PictureInfoKHR-naluSliceEntryCount-arraylength",
+          "text": "<code>naluSliceEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264RateControlInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264NaluSliceInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-rateControlStructure-parameter",
-          "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264RateControlStructureEXT\">VkVideoEncodeH264RateControlStructureEXT</a> value"
+          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoKHR-pStdSliceHeader-parameter",
+          "text": "<code>pStdSliceHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH264RateControlLayerInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
+    "VkVideoEncodeH264DpbSlotInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474",
-          "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
+          "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475",
-          "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-initialRcQp-parameter",
-          "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameter",
-          "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameter",
-          "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameter",
-          "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264FrameSizeEXT\">VkVideoEncodeH264FrameSizeEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameter",
+          "text": "<code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceInfo</code> value",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265ProfileInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH264RateControlInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265ProfileInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08280",
+          "text": "If <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08281",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR</code> or <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> also contain <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08282",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not also contain <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08283",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR</code>, then <code>gopFrameCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-idrPeriod-08284",
+          "text": "If <code>idrPeriod</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <code>gopFrameCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-consecutiveBFrameCount-08285",
+          "text": "If <code>consecutiveBFrameCount</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be less than <code>gopFrameCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH264RateControlFlagBitsKHR\">VkVideoEncodeH264RateControlFlagBitsKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265CapabilitiesEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH264RateControlLayerInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08286",
+          "text": "If <code>useMinQp</code> is <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all be between <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMaxQp-08287",
+          "text": "If <code>useMaxQp</code> is <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>maxQp</code> <strong class=\"purple\">must</strong> all be between <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08288",
+          "text": "If <code>useMinQp</code> is <code>VK_TRUE</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all specify the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMaxQp-08289",
+          "text": "If <code>useMaxQp</code> is <code>VK_TRUE</code> and <a href=\"#VkVideoEncodeH264CapabilitiesKHR\">VkVideoEncodeH264CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>maxQp</code> <strong class=\"purple\">must</strong> all specify the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08374",
+          "text": "If <code>useMinQp</code> and <code>useMaxQp</code> are both <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all be less than or equal to the respective members of <code>maxQp</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-minQp-parameter",
+          "text": "<code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpKHR\">VkVideoEncodeH264QpKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxQp-parameter",
+          "text": "<code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpKHR\">VkVideoEncodeH264QpKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxFrameSize-parameter",
+          "text": "<code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264FrameSizeKHR\">VkVideoEncodeH264FrameSizeKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265SessionParametersCreateInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH264GopRemainingFrameInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
-          "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265SessionParametersAddInfoEXT\">VkVideoEncodeH265SessionParametersAddInfoEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH264GopRemainingFrameInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265SessionParametersAddInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265ProfileInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-parameter",
-          "text": " If <code>pStdVPSs</code> is not <code>NULL</code>, <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdVPSCount</code> <code>StdVideoH265VideoParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-parameter",
-          "text": " If <code>pStdSPSs</code> is not <code>NULL</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH265SequenceParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-parameter",
-          "text": " If <code>pStdPPSs</code> is not <code>NULL</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH265PictureParameterSet</code> values"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-arraylength",
-          "text": " <code>stdVPSCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdSPSCount-arraylength",
-          "text": " <code>stdSPSCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdPPSCount-arraylength",
-          "text": " <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-06438",
-          "text": " The values of <code>stdVPSCount</code>, <code>stdSPSCount</code> and <code>stdPPSCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>::<code>maxStdVPSCount</code>, <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>:<code>maxStdSPSCount</code>, and <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>:<code>maxStdPPSCount</code>, respectively"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-06439",
-          "text": " Each <code>StdVideoH265VideoParameterSet</code> entry in <code>pStdVPSs</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS ID"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-06440",
-          "text": " Each <code>StdVideoH265SequenceParameterSet</code> entry in <code>pStdSPSs</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS-SPS ID pair"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-06441",
-          "text": " Each <code>StdVideoH265PictureParameterSet</code> entry in <code>pStdPPSs</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS-SPS-PPS ID tuple"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06442",
-          "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06443",
-          "text": " Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs <strong class=\"purple\">must</strong> not be replaced nor updated"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06444",
-          "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06445",
-          "text": " VPS/SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
+          "vuid": "VUID-VkVideoEncodeH265ProfileInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265VclFrameInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265CapabilitiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pReferenceFinalLists-parameter",
-          "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsInfoEXT\">VkVideoEncodeH265ReferenceListsInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pNaluSliceSegmentEntries-parameter",
-          "text": " <code>pNaluSliceSegmentEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceSegmentEntryCount</code> valid <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoEXT\">VkVideoEncodeH265NaluSliceSegmentInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pCurrentPictureInfo-parameter",
-          "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-naluSliceSegmentEntryCount-arraylength",
-          "text": " <code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "vuid": "VUID-VkVideoEncodeH265CapabilitiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265NaluSliceSegmentInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265QualityLevelPropertiesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pReferenceFinalLists-parameter",
-          "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsInfoEXT\">VkVideoEncodeH265ReferenceListsInfoEXT</a> structure"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pSliceSegmentHeaderStd-parameter",
-          "text": " <code>pSliceSegmentHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value"
+          "vuid": "VUID-VkVideoEncodeH265QualityLevelPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265DpbSlotInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265SessionCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter",
-          "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceInfo</code> value"
+          "vuid": "VUID-VkVideoEncodeH265SessionCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265ReferenceListsInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265SessionParametersCreateInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList0Entries-parameter",
-          "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList1Entries-parameter",
-          "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
-        },
-        {
-          "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceModifications-parameter",
-          "text": " <code>pReferenceModifications</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceModifications</code> value"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameter",
+          "text": "If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265SessionParametersAddInfoKHR\">VkVideoEncodeH265SessionParametersAddInfoKHR</a> structure",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265EmitPictureParametersInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265SessionParametersAddInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-ppsIdEntries-parameter",
-          "text": " If <code>ppsIdEntryCount</code> is not <code>0</code>, <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdVPSs-parameter",
+          "text": "If <code>stdVPSCount</code> is not <code>0</code>, and <code>pStdVPSs</code> is not <code>NULL</code>, <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdVPSCount</code> <code>StdVideoH265VideoParameterSet</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdSPSs-parameter",
+          "text": "If <code>stdSPSCount</code> is not <code>0</code>, and <code>pStdSPSs</code> is not <code>NULL</code>, <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdSPSCount</code> <code>StdVideoH265SequenceParameterSet</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdPPSs-parameter",
+          "text": "If <code>stdPPSCount</code> is not <code>0</code>, and <code>pStdPPSs</code> is not <code>NULL</code>, <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stdPPSCount</code> <code>StdVideoH265PictureParameterSet</code> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06438",
+          "text": "The <code>vps_video_parameter_set_id</code> member of each <code>StdVideoH265VideoParameterSet</code> structure specified in the elements of <code>pStdVPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdVPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06439",
+          "text": "The pair constructed from the <code>sps_video_parameter_set_id</code> and <code>sps_seq_parameter_set_id</code> members of each <code>StdVideoH265SequenceParameterSet</code> structure specified in the elements of <code>pStdSPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdSPSs</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06440",
+          "text": "The triplet constructed from the <code>sps_video_parameter_set_id</code>, <code>pps_seq_parameter_set_id</code>, and <code>pps_pic_parameter_set_id</code> members of each <code>StdVideoH265PictureParameterSet</code> structure specified in the elements of <code>pStdPPSs</code> <strong class=\"purple\">must</strong> be unique within <code>pStdPPSs</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265RateControlInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265SessionParametersGetInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-writeStdVPS-08290",
+          "text": "At least one of <code>writeStdVPS</code>, <code>writeStdSPS</code>, and <code>writeStdPPS</code> <strong class=\"purple\">must</strong> be set to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-rateControlStructure-parameter",
-          "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265RateControlStructureEXT\">VkVideoEncodeH265RateControlStructureEXT</a> value"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkVideoEncodeH265RateControlLayerInfoEXT": {
-      "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
+    "VkVideoEncodeH265SessionParametersFeedbackInfoKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06476",
-          "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
+          "vuid": "VUID-VkVideoEncodeH265SessionParametersFeedbackInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265PictureInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-08306",
+          "text": "<code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxSliceSegmentCount</code>, inclusive, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06477",
-          "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-flags-08323",
+          "text": "If <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR</code>, then <code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the <a href=\"#encode-h265-tile-count\">number of H.265 tiles in the picture</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT</code>"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-flags-08324",
+          "text": "If <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR</code>, then <code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <a href=\"#encode-h265-tile-count\">number of H.265 tiles in the picture</a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-initialRcQp-parameter",
-          "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-flags-08316",
+          "text": "If <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR</code> and the slice segment corresponding to any element of <code>pNaluSliceSegmentEntries</code> uses <a href=\"#encode-h265-weighted-pred\">explicit weighted sample prediction</a>, then <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a>::<code>pStdSliceSegmentHeader-&gt;pWeightTable</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> for that element of <code>pNaluSliceSegmentEntries</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-minQp-parameter",
-          "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-flags-08317",
+          "text": "If <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR</code>, then <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a>::<code>pStdSliceSegmentHeader-&gt;slice_type</code> <strong class=\"purple\">must</strong> be identical for all elements of <code>pNaluSliceSegmentEntries</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxQp-parameter",
-          "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxFrameSize-parameter",
-          "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265FrameSizeEXT\">VkVideoEncodeH265FrameSizeEXT</a> structure"
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-pNaluSliceSegmentEntries-parameter",
+          "text": "<code>pNaluSliceSegmentEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceSegmentEntryCount</code> valid <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoKHR\">VkVideoEncodeH265NaluSliceSegmentInfoKHR</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-pStdPictureInfo-parameter",
+          "text": "<code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-arraylength",
+          "text": "<code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265NaluSliceSegmentInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pNext-pNext",
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pStdSliceSegmentHeader-parameter",
+          "text": "<code>pStdSliceSegmentHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265DpbSlotInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameter",
+          "text": "<code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceInfo</code> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265RateControlInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08291",
+          "text": "If <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08292",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR</code> or <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> also contain <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08293",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not also contain <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08294",
+          "text": "If <code>flags</code> contains <code>VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR</code>, then <code>gopFrameCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-idrPeriod-08295",
+          "text": "If <code>idrPeriod</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <code>gopFrameCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-consecutiveBFrameCount-08296",
+          "text": "If <code>consecutiveBFrameCount</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be less than <code>gopFrameCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlInfoKHR-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265RateControlFlagBitsKHR\">VkVideoEncodeH265RateControlFlagBitsKHR</a> values",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265RateControlLayerInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08297",
+          "text": "If <code>useMinQp</code> is <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all be between <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMaxQp-08298",
+          "text": "If <code>useMaxQp</code> is <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>maxQp</code> <strong class=\"purple\">must</strong> all be between <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>minQp</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>maxQp</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08299",
+          "text": "If <code>useMinQp</code> is <code>VK_TRUE</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all specify the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMaxQp-08300",
+          "text": "If <code>useMaxQp</code> is <code>VK_TRUE</code> and <a href=\"#VkVideoEncodeH265CapabilitiesKHR\">VkVideoEncodeH265CapabilitiesKHR</a>::<code>flags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the used video profile, does not include <code>VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>maxQp</code> <strong class=\"purple\">must</strong> all specify the same value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08375",
+          "text": "If <code>useMinQp</code> and <code>useMaxQp</code> are both <code>VK_TRUE</code>, then the <code>qpI</code>, <code>qpP</code>, and <code>qpB</code> members of <code>minQp</code> <strong class=\"purple\">must</strong> all be less than or equal to the respective members of <code>maxQp</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-minQp-parameter",
+          "text": "<code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpKHR\">VkVideoEncodeH265QpKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxQp-parameter",
+          "text": "<code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpKHR\">VkVideoEncodeH265QpKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxFrameSize-parameter",
+          "text": "<code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265FrameSizeKHR\">VkVideoEncodeH265FrameSizeKHR</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkVideoEncodeH265GopRemainingFrameInfoKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkVideoEncodeH265GopRemainingFrameInfoKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceOpticalFlowImageFormatsNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pOpticalFlowImageFormatInfo-parameter",
-          "text": " <code>pOpticalFlowImageFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a> structure"
+          "text": "<code>pOpticalFlowImageFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameter",
-          "text": " <code>pFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameter",
-          "text": " If the value referenced by <code>pFormatCount</code> is not <code>0</code>, and <code>pImageFormatProperties</code> is not <code>NULL</code>, <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFormatCount</code> <a href=\"#VkOpticalFlowImageFormatPropertiesNV\">VkOpticalFlowImageFormatPropertiesNV</a> structures"
+          "text": "If the value referenced by <code>pFormatCount</code> is not <code>0</code>, and <code>pImageFormatProperties</code> is not <code>NULL</code>, <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFormatCount</code> <a href=\"#VkOpticalFlowImageFormatPropertiesNV\">VkOpticalFlowImageFormatPropertiesNV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpticalFlowImageFormatInfoNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowUsageFlagBitsNV\">VkOpticalFlowUsageFlagBitsNV</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowUsageFlagBitsNV\">VkOpticalFlowUsageFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpticalFlowImageFormatPropertiesNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkOpticalFlowImageFormatPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowImageFormatPropertiesNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateOpticalFlowSessionNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateOpticalFlowSessionNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowSessionCreateInfoNV\">VkOpticalFlowSessionCreateInfoNV</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowSessionCreateInfoNV\">VkOpticalFlowSessionCreateInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateOpticalFlowSessionNV-pSession-parameter",
-          "text": " <code>pSession</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle"
+          "text": "<code>pSession</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpticalFlowSessionCreateInfoNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-width-07581",
-          "text": " <code>width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>minWidth</code> and less than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxWidth</code>"
+          "text": "<code>width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>minWidth</code> and less than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxWidth</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-height-07582",
-          "text": " <code>height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>minHeight</code> and less than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxHeight</code>"
+          "text": "<code>height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>minHeight</code> and less than or equal to <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxHeight</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583",
-          "text": " <code>imageFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV</code>"
+          "text": "<code>imageFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584",
-          "text": " <code>flowVectorFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV</code>"
+          "text": "<code>flowVectorFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585",
-          "text": " <code>costFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_COST_BIT_NV</code> if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV</code> is set in <code>flags</code>"
+          "text": "<code>costFormat</code> <strong class=\"purple\">must</strong> be one of the formats returned by <a href=\"#vkGetPhysicalDeviceOpticalFlowImageFormatsNV\">vkGetPhysicalDeviceOpticalFlowImageFormatsNV</a> for <code>VK_OPTICAL_FLOW_USAGE_COST_BIT_NV</code> if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV</code> is set in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586",
-          "text": " <code>outputGridSize</code> <strong class=\"purple\">must</strong> be exactly one of the bits reported in <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>supportedOutputGridSizes</code>"
+          "text": "<code>outputGridSize</code> <strong class=\"purple\">must</strong> be exactly one of the bits reported in <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>supportedOutputGridSizes</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587",
-          "text": " <code>hintGridSize</code> <strong class=\"purple\">must</strong> be exactly one of the bits reported in <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>supportedHintGridSizes</code> if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV</code> is set in <code>flags</code>"
+          "text": "<code>hintGridSize</code> <strong class=\"purple\">must</strong> be exactly one of the bits reported in <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>supportedHintGridSizes</code> if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV</code> is set in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588",
-          "text": " <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>hintSupported</code> is <code>VK_FALSE</code>"
+          "text": "<code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>hintSupported</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589",
-          "text": " <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>costSupported</code> is <code>VK_FALSE</code>"
+          "text": "<code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>costSupported</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590",
-          "text": " <code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>globalFlowSupported</code> is <code>VK_FALSE</code>"
+          "text": "<code>VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>globalFlowSupported</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591",
-          "text": " <code>VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxNumRegionsOfInterest</code> is 0"
+          "text": "<code>VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>maxNumRegionsOfInterest</code> is 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592",
-          "text": " <code>VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>bidirectionalFlowSupported</code> is <code>VK_FALSE</code>"
+          "text": "<code>VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV</code> <strong class=\"purple\">must</strong> not be set in <code>flags</code> if <code>VkPhysicalDeviceOpticalFlowPropertiesNV</code>::<code>bidirectionalFlowSupported</code> is <code>VK_FALSE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpticalFlowSessionCreatePrivateDataInfoNV\">VkOpticalFlowSessionCreatePrivateDataInfoNV</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkOpticalFlowSessionCreatePrivateDataInfoNV\">VkOpticalFlowSessionCreatePrivateDataInfoNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameter",
-          "text": " <code>imageFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>imageFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameter",
-          "text": " <code>flowVectorFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>flowVectorFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-parameter",
-          "text": " If <code>costFormat</code> is not <code>0</code>, <code>costFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "If <code>costFormat</code> is not <code>0</code>, <code>costFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameter",
-          "text": " <code>outputGridSize</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowGridSizeFlagBitsNV\">VkOpticalFlowGridSizeFlagBitsNV</a> values"
+          "text": "<code>outputGridSize</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowGridSizeFlagBitsNV\">VkOpticalFlowGridSizeFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmask",
-          "text": " <code>outputGridSize</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>outputGridSize</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-parameter",
-          "text": " <code>hintGridSize</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowGridSizeFlagBitsNV\">VkOpticalFlowGridSizeFlagBitsNV</a> values"
+          "text": "<code>hintGridSize</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowGridSizeFlagBitsNV\">VkOpticalFlowGridSizeFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameter",
-          "text": " If <code>performanceLevel</code> is not <code>0</code>, <code>performanceLevel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowPerformanceLevelNV\">VkOpticalFlowPerformanceLevelNV</a> value"
+          "text": "If <code>performanceLevel</code> is not <code>0</code>, <code>performanceLevel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowPerformanceLevelNV\">VkOpticalFlowPerformanceLevelNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowSessionCreateFlagBitsNV\">VkOpticalFlowSessionCreateFlagBitsNV</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowSessionCreateFlagBitsNV\">VkOpticalFlowSessionCreateFlagBitsNV</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpticalFlowSessionCreatePrivateDataInfoNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameter",
-          "text": " <code>pPrivateData</code> <strong class=\"purple\">must</strong> be a pointer value"
+          "text": "<code>pPrivateData</code> <strong class=\"purple\">must</strong> be a pointer value",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyOpticalFlowSessionNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyOpticalFlowSessionNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyOpticalFlowSessionNV-session-parameter",
-          "text": " <code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle"
+          "text": "<code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyOpticalFlowSessionNV-session-parent",
-          "text": " <code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkBindOpticalFlowSessionImageNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-session-parameter",
-          "text": " <code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle"
+          "text": "<code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameter",
-          "text": " <code>bindingPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionBindingPointNV\">VkOpticalFlowSessionBindingPointNV</a> value"
+          "text": "<code>bindingPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionBindingPointNV\">VkOpticalFlowSessionBindingPointNV</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-view-parameter",
-          "text": " If <code>view</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>view</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
+          "text": "If <code>view</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>view</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-layout-parameter",
-          "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-session-parent",
-          "text": " <code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkBindOpticalFlowSessionImageNV-view-parent",
-          "text": " If <code>view</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "If <code>view</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdOpticalFlowExecuteNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-session-parameter",
-          "text": " <code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle"
+          "text": "<code>session</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOpticalFlowSessionNV\">VkOpticalFlowSessionNV</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter",
-          "text": " <code>pExecuteInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowExecuteInfoNV\">VkOpticalFlowExecuteInfoNV</a> structure"
+          "text": "<code>pExecuteInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOpticalFlowExecuteInfoNV\">VkOpticalFlowExecuteInfoNV</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support opticalflow operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support optical flow operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-renderpass",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdOpticalFlowExecuteNV-commonparent",
-          "text": " Both of <code>commandBuffer</code>, and <code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
+          "text": "Both of <code>commandBuffer</code>, and <code>session</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
     "VkOpticalFlowExecuteInfoNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593",
-          "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be 0 if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV</code> was not set for <code>VkOpticalFlowSessionNV</code> on which this command is operating"
+          "text": "<code>regionCount</code> <strong class=\"purple\">must</strong> be 0 if <code>VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV</code> was not set for <code>VkOpticalFlowSessionNV</code> on which this command is operating",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowExecuteInfoNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowExecuteInfoNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowExecuteInfoNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowExecuteFlagBitsNV\">VkOpticalFlowExecuteFlagBitsNV</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkOpticalFlowExecuteFlagBitsNV\">VkOpticalFlowExecuteFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameter",
-          "text": " If <code>regionCount</code> is not <code>0</code>, <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
+          "text": "If <code>regionCount</code> is not <code>0</code>, <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCreateExecutionGraphPipelinesAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124",
+          "text": "The <a href=\"#features-shaderEnqueue\"><code>shaderEnqueue</code> feature</a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125",
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126",
+          "text": "If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127",
+          "text": "If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameter",
+          "text": "If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameter",
+          "text": "<code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkExecutionGraphPipelineCreateInfoAMDX\">VkExecutionGraphPipelineCreateInfoAMDX</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameter",
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameter",
+          "text": "<code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylength",
+          "text": "<code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parent",
+          "text": "If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkExecutionGraphPipelineCreateInfoAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09497",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a> structure, <code>flags</code> must be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid execution graph <code>VkPipeline</code> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07985",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07986",
+          "text": "If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987",
+          "text": "If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader, and the descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor type",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07991",
+          "text": "If a <a href=\"#interfaces-resources\">resource variables</a> is declared in a shader as an array, a descriptor slot in <code>layout</code> <strong class=\"purple\">must</strong> match the descriptor count",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03365",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007",
+          "text": "If the <a href=\"#features-deviceGeneratedComputePipelines\"><code>VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</code>::<code>deviceGeneratedComputePipelines</code></a> is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a pointer to a valid instance of <a href=\"#VkComputePipelineIndirectBufferInfoNV\">VkComputePipelineIndirectBufferInfoNV</a> specifying the address where the pipeline&#8217;s metadata will be saved",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875",
+          "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128",
+          "text": "The <code>stage</code> member of any element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129",
+          "text": "The shader code for the entry point identified by each element of <code>pStages</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with the layout of the shaders specified in <code>pStages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131",
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with a <code>layout</code> that is compatible with the <code>layout</code> in this pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132",
+          "text": "The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133",
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of <code>pLibraryInfo-&gt;libraries</code> <strong class=\"purple\">must</strong> be either a compute pipeline or an execution graph pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134",
+          "text": "There <strong class=\"purple\">must</strong> be no two nodes in the pipeline that share both the same shader name and index, as specified by <a href=\"#VkPipelineShaderStageNodeCreateInfoAMDX\">VkPipelineShaderStageNodeCreateInfoAMDX</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135",
+          "text": "There <strong class=\"purple\">must</strong> be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136",
+          "text": "There <strong class=\"purple\">must</strong> be no two nodes in the pipeline that share the same name but have different execution models",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137",
+          "text": "There <strong class=\"purple\">must</strong> be no two nodes in the pipeline that share the same name where one includes <code>CoalescedInputCountAMDX</code> and the other does not",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138",
+          "text": "There <strong class=\"purple\">must</strong> be no two nodes in the pipeline that share the same name where one includes <code>StaticNumWorkgroupsAMDX</code> and the other does not",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139",
+          "text": "If an output payload declared in any shader in the pipeline has a <code>PayloadNodeNameAMDX</code> decoration with a <code>Node</code> <code>Name</code> that matches the shader name of any other node in the graph, the size of the output payload <strong class=\"purple\">must</strong> match the size of the input payload in the matching node",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNext",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a> or <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter",
+          "text": "If <code>stageCount</code> is not <code>0</code>, and <code>pStages</code> is not <code>NULL</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter",
+          "text": "If <code>pLibraryInfo</code> is not <code>NULL</code>, <code>pLibraryInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter",
+          "text": "<code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent",
+          "text": "Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPipelineShaderStageNodeCreateInfoAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameter",
+          "text": "If <code>pName</code> is not <code>NULL</code>, <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetExecutionGraphPipelineNodeIndexAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140",
+          "text": "<code>pNodeInfo-&gt;pName</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141",
+          "text": "<code>pNodeInfo-&gt;index</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_INDEX_UNUSED_AMDX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142",
+          "text": "There <strong class=\"purple\">must</strong> be a node in <code>executionGraph</code> with a shader name and index equal to <code>pNodeInfo-&gt;pName</code> and <code>pNodeInfo-&gt;index</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameter",
+          "text": "<code>executionGraph</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameter",
+          "text": "<code>pNodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineShaderStageNodeCreateInfoAMDX\">VkPipelineShaderStageNodeCreateInfoAMDX</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameter",
+          "text": "<code>pNodeIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parent",
+          "text": "<code>executionGraph</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetExecutionGraphPipelineScratchSizeAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameter",
+          "text": "<code>executionGraph</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-pSizeInfo-parameter",
+          "text": "<code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parent",
+          "text": "<code>executionGraph</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkExecutionGraphPipelineScratchSizeAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkExecutionGraphPipelineScratchSizeAMDX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdInitializeGraphScratchMemoryAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be the device address of an allocated memory range at least as large as the value of <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code> returned by <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a> for the currently bound execution graph pipeline.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be a multiple of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdDispatchGraphAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-magFilter-04553",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02691",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02692",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-02693",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-filterCubic-02694",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-filterCubicMinmax-02695",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-flags-02696",
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08114",
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08115",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08116",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08117",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08119",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-storageBuffers-06936",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-06550",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04470",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04471",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04472",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-SampledType-04473",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04474",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04475",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06971",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06972",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBoxFilterQCOM-06973",
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSSDQCOM-06974",
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06976",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977",
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978",
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09183",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be the device address of an allocated memory range at least as large as the value of <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code> returned by <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a> for the currently bound execution graph pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09184",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> or <code>VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-09185",
+          "text": "Device memory in the range [<code>scratch</code>,<code>scratch</code><br> <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code>) <strong class=\"purple\">must</strong> have been initialized with <a href=\"#vkCmdInitializeGraphScratchMemoryAMDX\">vkCmdInitializeGraphScratchMemoryAMDX</a> using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause a node to be dispatched with a larger number of workgroups than that specified by either a <code>MaxNumWorkgroupsAMDX</code> decoration in the dispatched node or <a href=\"#limits-maxComputeWorkGroupCount\"><code>maxComputeWorkGroupCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader to initialize more than <a href=\"#limits-maxExecutionGraphShaderPayloadCount\"><code>maxExecutionGraphShaderPayloadCount</code></a> output payloads",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader that declares <code>NodeMaxPayloadsAMDX</code> to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each <code>NodeMaxPayloadsAMDX</code> decoration separately",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145",
+          "text": "<code>pCountInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a host pointer to a memory allocation at least as large as the product of <code>count</code> and <code>stride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-infos-09146",
+          "text": "Host memory locations at indexes in the range [<code>infos</code>, <code>infos</code> + (<code>count</code>*<code>stride</code>)), at a granularity of <code>stride</code> <strong class=\"purple\">must</strong> contain valid <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structures in the first 24 bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a host pointer to a memory allocation at least as large as the product of <code>payloadCount</code> and <code>payloadStride</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>nodeIndex</code> <strong class=\"purple\">must</strong> be a valid node index in the currently bound execution graph pipeline, as returned by <a href=\"#vkGetExecutionGraphPipelineNodeIndexAMDX\">vkGetExecutionGraphPipelineNodeIndexAMDX</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, host memory locations at indexes in the range [<code>payloads</code>, <code>payloads</code> + (<code>payloadCount</code> * <code>payloadStride</code>)), at a granularity of <code>payloadStride</code> <strong class=\"purple\">must</strong> contain a payload matching the size of the input payload expected by the node in <code>nodeIndex</code> in the first bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter",
+          "text": "<code>pCountInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDispatchGraphCountInfoAMDX\">VkDispatchGraphCountInfoAMDX</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphAMDX-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdDispatchGraphIndirectAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-magFilter-04553",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02691",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02692",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-02693",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-filterCubic-02694",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-filterCubicMinmax-02695",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-flags-02696",
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08114",
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08115",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08116",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08117",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08119",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-storageBuffers-06936",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-06550",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04470",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04471",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04472",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04473",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04474",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04475",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06971",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06972",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBoxFilterQCOM-06973",
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSSDQCOM-06974",
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06976",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977",
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978",
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be the device address of an allocated memory range at least as large as the value of <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code> returned by <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a> for the currently bound execution graph pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> or <code>VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185",
+          "text": "Device memory in the range [<code>scratch</code>,<code>scratch</code><br> <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code>) <strong class=\"purple\">must</strong> have been initialized with <a href=\"#vkCmdInitializeGraphScratchMemoryAMDX\">vkCmdInitializeGraphScratchMemoryAMDX</a> using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause a node to be dispatched with a larger number of workgroups than that specified by either a <code>MaxNumWorkgroupsAMDX</code> decoration in the dispatched node or <a href=\"#limits-maxComputeWorkGroupCount\"><code>maxComputeWorkGroupCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader to initialize more than <a href=\"#limits-maxExecutionGraphShaderPayloadCount\"><code>maxExecutionGraphShaderPayloadCount</code></a> output payloads",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader that declares <code>NodeMaxPayloadsAMDX</code> to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each <code>NodeMaxPayloadsAMDX</code> decoration separately",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150",
+          "text": "<code>pCountInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a device pointer to a memory allocation at least as large as the product of <code>count</code> and <code>stride</code> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151",
+          "text": "<code>pCountInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152",
+          "text": "<code>pCountInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-executionGraphDispatchAddressAlignment\"><code>executionGraphDispatchAddressAlignment</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-infos-09153",
+          "text": "Device memory locations at indexes in the range [<code>infos</code>, <code>infos</code> + (<code>count</code>*<code>stride</code>)), at a granularity of <code>stride</code> <strong class=\"purple\">must</strong> contain valid <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structures in the first 24 bytes when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a device pointer to a memory allocation at least as large as the product of <code>payloadCount</code> and <code>payloadStride</code> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-executionGraphDispatchAddressAlignment\"><code>executionGraphDispatchAddressAlignment</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, <code>nodeIndex</code> <strong class=\"purple\">must</strong> be a valid node index in the currently bound execution graph pipeline, as returned by <a href=\"#vkGetExecutionGraphPipelineNodeIndexAMDX\">vkGetExecutionGraphPipelineNodeIndexAMDX</a> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>pCountInfo-&gt;infos</code>, device memory locations at indexes in the range [<code>payloads</code>, <code>payloads</code> + (<code>payloadCount</code> * <code>payloadStride</code>)), at a granularity of <code>payloadStride</code> <strong class=\"purple\">must</strong> contain a payload matching the size of the input payload expected by the node in <code>nodeIndex</code> in the first bytes when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter",
+          "text": "<code>pCountInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDispatchGraphCountInfoAMDX\">VkDispatchGraphCountInfoAMDX</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkCmdDispatchGraphIndirectCountAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-magFilter-04553",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770",
+          "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06479",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02691",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888",
+          "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02692",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02693",
+          "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubic-02694",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubicMinmax-02695",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212",
+          "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213",
+          "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-selectableCubicWeights-09214",
+          "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-flags-02696",
+          "text": "Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07027",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07028",
+          "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07029",
+          "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07030",
+          "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08600",
+          "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601",
+          "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602",
+          "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114",
+          "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08116",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08604",
+          "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08117",
+          "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08119",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08605",
+          "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08606",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608",
+          "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08610",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08611",
+          "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607",
+          "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08612",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-storageBuffers-06936",
+          "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08613",
+          "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-02707",
+          "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06550",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551",
+          "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-viewType-07752",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#textures-operation-validation\">Instruction/Sampler/Image View Validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-format-07753",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08795",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08796",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-04469",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04470",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04471",
+          "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04472",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04473",
+          "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04474",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04475",
+          "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06971",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06972",
+          "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBoxFilterQCOM-06973",
+          "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSSDQCOM-06974",
+          "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06976",
+          "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977",
+          "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978",
+          "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07288",
+          "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary command buffer",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be the device address of an allocated memory range at least as large as the value of <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code> returned by <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a> for the currently bound execution graph pipeline",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09184",
+          "text": "<code>scratch</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> or <code>VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09185",
+          "text": "Device memory in the range [<code>scratch</code>,<code>scratch</code><br> <a href=\"#VkExecutionGraphPipelineScratchSizeAMDX\">VkExecutionGraphPipelineScratchSizeAMDX</a>::<code>size</code>) <strong class=\"purple\">must</strong> have been initialized with <a href=\"#vkCmdInitializeGraphScratchMemoryAMDX\">vkCmdInitializeGraphScratchMemoryAMDX</a> using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maxComputeWorkGroupCount-09186",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause a node to be dispatched with a larger number of workgroups than that specified by either a <code>MaxNumWorkgroupsAMDX</code> decoration in the dispatched node or <a href=\"#limits-maxComputeWorkGroupCount\"><code>maxComputeWorkGroupCount</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-maxExecutionGraphShaderPayloadCount-09187",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader to initialize more than <a href=\"#limits-maxExecutionGraphShaderPayloadCount\"><code>maxExecutionGraphShaderPayloadCount</code></a> output payloads",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-NodeMaxPayloadsAMDX-09188",
+          "text": "Execution of this command <strong class=\"purple\">must</strong> not cause any shader that declares <code>NodeMaxPayloadsAMDX</code> to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each <code>NodeMaxPayloadsAMDX</code> decoration separately",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159",
+          "text": "<code>countInfo</code> <strong class=\"purple\">must</strong> be a device pointer to a memory allocation containing a valid <a href=\"#VkDispatchGraphCountInfoAMDX\">VkDispatchGraphCountInfoAMDX</a> structure when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09160",
+          "text": "<code>countInfo</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161",
+          "text": "<code>countInfo</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-executionGraphDispatchAddressAlignment\"><code>executionGraphDispatchAddressAlignment</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162",
+          "text": "<code>countInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a device pointer to a memory allocation at least as large as the product of <code>count</code> and <code>stride</code> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163",
+          "text": "<code>countInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164",
+          "text": "<code>countInfo-&gt;infos</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-executionGraphDispatchAddressAlignment\"><code>executionGraphDispatchAddressAlignment</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-09165",
+          "text": "Device memory locations at indexes in the range [<code>infos</code>, <code>infos</code> + (<code>count</code>*<code>stride</code>)), at a granularity of <code>stride</code> <strong class=\"purple\">must</strong> contain valid <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structures in the first 24 bytes when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>countInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a device pointer to a memory allocation at least as large as the product of <code>payloadCount</code> and <code>payloadStride</code> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>countInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a device address within a <a href=\"#VkBuffer\">VkBuffer</a> created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> flag",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>countInfo-&gt;infos</code>, <code>payloads</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-executionGraphDispatchAddressAlignment\"><code>executionGraphDispatchAddressAlignment</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>countInfo-&gt;infos</code>, <code>nodeIndex</code> <strong class=\"purple\">must</strong> be a valid node index in the currently bound execution graph pipeline, as returned by <a href=\"#vkGetExecutionGraphPipelineNodeIndexAMDX\">vkGetExecutionGraphPipelineNodeIndexAMDX</a> when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170",
+          "text": "For each <a href=\"#VkDispatchGraphInfoAMDX\">VkDispatchGraphInfoAMDX</a> structure in <code>countInfo-&gt;infos</code>, device memory locations at indexes in the range [<code>payloads</code>, <code>payloads</code> + (<code>payloadCount</code> * <code>payloadStride</code>)), at a granularity of <code>payloadStride</code> <strong class=\"purple\">must</strong> contain a payload matching the size of the input payload expected by the node in <code>nodeIndex</code> in the first bytes when this command is executed on the device",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recording",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpool",
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpass",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-videocoding",
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevel",
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkDispatchGraphInfoAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkDispatchGraphInfoAMDX-payloadCount-09171",
+          "text": "<code>payloadCount</code> <strong class=\"purple\">must</strong> be no greater than <a href=\"#limits-maxExecutionGraphShaderPayloadCount\"><code>maxExecutionGraphShaderPayloadCount</code></a>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkSetLatencySleepModeNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkSetLatencySleepModeNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parameter",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter",
+          "text": "<code>pSleepModeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkLatencySleepModeInfoNV\">VkLatencySleepModeInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parent",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLatencySleepModeInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkLatencySleepModeInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkLatencySleepNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkLatencySleepNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkLatencySleepNV-swapchain-parameter",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkLatencySleepNV-pSleepInfo-parameter",
+          "text": "<code>pSleepInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkLatencySleepInfoNV\">VkLatencySleepInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkLatencySleepNV-swapchain-parent",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLatencySleepInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-09361",
+          "text": "<code>signalSemaphore</code> <strong class=\"purple\">must</strong> be a timeline semaphore",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLatencySleepInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-parameter",
+          "text": "<code>signalSemaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkSetLatencyMarkerNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkSetLatencyMarkerNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parameter",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameter",
+          "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSetLatencyMarkerInfoNV\">VkSetLatencyMarkerInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parent",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSetLatencyMarkerInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkSetLatencyMarkerInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkSetLatencyMarkerInfoNV-marker-parameter",
+          "text": "<code>marker</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLatencyMarkerNV\">VkLatencyMarkerNV</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkGetLatencyTimingsNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkGetLatencyTimingsNV-device-parameter",
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parameter",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter",
+          "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkGetLatencyMarkerInfoNV\">VkGetLatencyMarkerInfoNV</a> structure",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parent",
+          "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkGetLatencyMarkerInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkGetLatencyMarkerInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter",
+          "text": "If <code>timingCount</code> is not <code>0</code>, and <code>pTimings</code> is not <code>NULL</code>, <code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timingCount</code> <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structures",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLatencyTimingsFrameReportNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkLatencyTimingsFrameReportNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLatencySubmissionPresentIdNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkLatencySubmissionPresentIdNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "vkQueueNotifyOutOfBandNV": {
+      "core": [
+        {
+          "vuid": "VUID-vkQueueNotifyOutOfBandNV-queue-parameter",
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter",
+          "text": "<code>pQueueTypeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOutOfBandQueueTypeInfoNV\">VkOutOfBandQueueTypeInfoNV</a> structure",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkOutOfBandQueueTypeInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter",
+          "text": "<code>queueType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOutOfBandQueueTypeNV\">VkOutOfBandQueueTypeNV</a> value",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkSwapchainLatencyCreateInfoNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkSwapchainLatencyCreateInfoNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkLatencySurfaceCapabilitiesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter",
+          "text": "If <code>presentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
@@ -63538,11 +96652,13 @@
       "core": [
         {
           "vuid": "VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -63550,15 +96666,18 @@
       "core": [
         {
           "vuid": "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -63566,15 +96685,18 @@
       "core": [
         {
           "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter",
-          "text": " If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -63582,19 +96704,23 @@
       "core": [
         {
           "vuid": "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter",
-          "text": " If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter",
-          "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter",
-          "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures"
+          "text": "If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
@@ -63602,1719 +96728,2378 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter",
-          "text": " <code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure"
+          "text": "<code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceFeatures2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameter",
-          "text": " <code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure"
+          "text": "<code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFeatures2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFeatures2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan11Features": {
-      "(VK_VERSION_1_2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan11Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan12Features": {
-      "(VK_VERSION_1_2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan12Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkan13Features": {
-      "(VK_VERSION_1_3)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkan13Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVariablePointersFeatures": {
-      "(VK_VERSION_1_1,VK_KHR_variable_pointers)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431",
-          "text": " If <code>variablePointers</code> is enabled then <code>variablePointersStorageBuffer</code> <strong class=\"purple\">must</strong> also be enabled"
+          "text": "If <code>variablePointers</code> is enabled then <code>variablePointersStorageBuffer</code> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiviewFeatures": {
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580",
-          "text": " If <code>multiviewGeometryShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled"
+          "text": "If <code>multiviewGeometryShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581",
-          "text": " If <code>multiviewTessellationShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled"
+          "text": "If <code>multiviewTessellationShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT": {
-      "(VK_EXT_shader_atomic_float)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT": {
-      "(VK_EXT_shader_atomic_float2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderAtomicInt64Features": {
-      "(VK_VERSION_1_2,VK_KHR_shader_atomic_int64)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT": {
-      "(VK_EXT_shader_image_atomic_int64)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevice8BitStorageFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_8bit_storage)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevice8BitStorageFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevice16BitStorageFeatures": {
-      "(VK_VERSION_1_1,VK_KHR_16bit_storage)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevice16BitStorageFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderFloat16Int8Features": {
-      "(VK_VERSION_1_2,VK_KHR_shader_float16_int8)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderClockFeaturesKHR": {
-      "(VK_KHR_shader_clock)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSamplerYcbcrConversionFeatures": {
-      "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceProtectedMemoryFeatures": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT": {
-      "(VK_EXT_blend_operation_advanced)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceConditionalRenderingFeaturesEXT": {
-      "(VK_EXT_conditional_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderDrawParametersFeatures": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMeshShaderFeaturesNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMeshShaderFeaturesEXT": {
-      "(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032",
-          "text": " If <code>multiviewMeshShader</code> is enabled then <code>VkPhysicalDeviceMultiviewFeaturesKHR</code>::<code>multiview</code> <strong class=\"purple\">must</strong> also be enabled"
-        }
-      ],
-      "(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)": [
+          "text": "If <code>multiviewMeshShader</code> is enabled then <code>VkPhysicalDeviceMultiviewFeaturesKHR</code>::<code>multiview</code> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033",
-          "text": " If <code>primitiveFragmentShadingRateMeshShader</code> is enabled then <code>VkPhysicalDeviceFragmentShadingRateFeaturesKHR</code>::<code>primitiveFragmentShadingRate</code> <strong class=\"purple\">must</strong> also be enabled"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "text": "If <code>primitiveFragmentShadingRateMeshShader</code> is enabled then <code>VkPhysicalDeviceFragmentShadingRateFeaturesKHR</code>::<code>primitiveFragmentShadingRate</code> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMemoryDecompressionFeaturesNV": {
-      "(VK_NV_memory_decompression)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryDecompressionFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorIndexingFeatures": {
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT": {
-      "(VK_EXT_vertex_attribute_divisor)": [
+    "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR": {
+      "core": [
         {
-          "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT</code>"
+          "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceASTCDecodeFeaturesEXT": {
-      "(VK_EXT_astc_decode_mode)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTransformFeedbackFeaturesEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVulkanMemoryModelFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceInlineUniformBlockFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV": {
-      "(VK_NV_representative_fragment_test)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExclusiveScissorFeaturesNV": {
-      "(VK_NV_scissor_exclusive)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCornerSampledImageFeaturesNV": {
-      "(VK_NV_corner_sampled_image)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV": {
-      "(VK_NV_compute_shader_derivatives)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR": {
-      "(VK_KHR_fragment_shader_barycentric)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderImageFootprintFeaturesNV": {
-      "(VK_NV_shader_image_footprint)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShadingRateImageFeaturesNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMapFeaturesEXT": {
-      "(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT": {
-      "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM": {
-      "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI": {
-      "(VK_HUAWEI_invocation_mask)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceScalarBlockLayoutFeatures": {
-      "(VK_VERSION_1_2,VK_EXT_scalar_block_layout)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceUniformBufferStandardLayoutFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDepthClipEnableFeaturesEXT": {
-      "(VK_EXT_depth_clip_enable)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMemoryPriorityFeaturesEXT": {
-      "(VK_EXT_memory_priority)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceBufferDeviceAddressFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT": {
-      "(VK_EXT_buffer_device_address)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV": {
-      "(VK_NV_dedicated_allocation_image_aliasing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImagelessFramebufferFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT": {
-      "(VK_EXT_fragment_shader_interlock)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCooperativeMatrixFeaturesNV": {
-      "(VK_NV_cooperative_matrix)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCooperativeMatrixFeaturesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT": {
-      "(VK_EXT_ycbcr_image_arrays)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": {
-      "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceHostQueryResetFeatures": {
-      "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL": {
-      "(VK_INTEL_shader_integer_functions2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCoverageReductionModeFeaturesNV": {
-      "(VK_NV_coverage_reduction_mode)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTimelineSemaphoreFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": {
-      "(VK_EXT_index_type_uint8)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT": {
-      "(VK_EXT_primitive_topology_list_restart)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures": {
-      "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR": {
-      "(VK_KHR_pipeline_executable_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT": {
-      "(VK_EXT_texel_buffer_alignment)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTextureCompressionASTCHDRFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceLineRasterizationFeaturesEXT": {
-      "(VK_EXT_line_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubgroupSizeControlFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCoherentMemoryFeaturesAMD": {
-      "(VK_AMD_device_coherent_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceAccelerationStructureFeaturesKHR": {
-      "(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingPipelineFeaturesKHR": {
-      "(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575",
-          "text": " If <code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_TRUE</code>, <code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>"
+          "text": "If <code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_TRUE</code>, <code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayQueryFeaturesKHR": {
-      "(VK_KHR_ray_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR": {
-      "(VK_KHR_ray_tracing_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceVideoMaintenance1FeaturesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceVideoMaintenance1FeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": {
-      "(VK_EXT_extended_dynamic_state)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT": {
-      "(VK_EXT_extended_dynamic_state2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState3FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDiagnosticsConfigFeaturesNV": {
-      "(VK_NV_device_diagnostics_config)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT": {
-      "(VK_EXT_device_memory_report)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR": {
-      "(VK_EXT_global_priority_query,VK_KHR_global_priority)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelineCreationCacheControlFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures": {
-      "(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePrivateDataFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_private_data)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePrivateDataFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR": {
-      "(VK_KHR_shader_subgroup_uniform_control_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRobustness2FeaturesEXT": {
-      "(VK_EXT_robustness2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000",
-          "text": " If <code>robustBufferAccess2</code> is enabled then <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> <strong class=\"purple\">must</strong> also be enabled"
+          "text": "If <code>robustBufferAccess2</code> is enabled then <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> <strong class=\"purple\">must</strong> also be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageRobustnessFeatures": {
-      "(VK_VERSION_1_3,VK_EXT_image_robustness)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderTerminateInvocationFeatures": {
-      "(VK_VERSION_1_3,VK_KHR_shader_terminate_invocation)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCustomBorderColorFeaturesEXT": {
-      "(VK_EXT_custom_border_color)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT": {
-      "(VK_EXT_border_color_swizzle)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePortabilitySubsetFeaturesKHR": {
-      "(VK_KHR_portability_subset)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePerformanceQueryFeaturesKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevice4444FormatsFeaturesEXT": {
-      "(VK_EXT_4444_formats)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT": {
-      "(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDepthClipControlFeaturesEXT": {
-      "(VK_EXT_depth_clip_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT</code>"
-        }
-      ]
-    },
-    "VkPhysicalDeviceDepthClipControlFeaturesEXT": {
-      "(VK_EXT_depth_clip_control)": [
-        {
-          "vuid": "VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR": {
-      "(VK_KHR_workgroup_memory_explicit_layout)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSynchronization2Features": {
-      "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSynchronization2Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT": {
-      "(VK_EXT_vertex_input_dynamic_state)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT": {
-      "(VK_EXT_primitives_generated_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShadingRateFeaturesKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceLegacyDitheringFeaturesEXT": {
-      "(VK_EXT_legacy_dithering)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceLegacyDitheringFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV": {
-      "(VK_NV_fragment_shading_rate_enums)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceInheritedViewportScissorFeaturesNV": {
-      "(VK_NV_inherited_viewport_scissor)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT": {
-      "(VK_EXT_pipeline_protected_access)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelineProtectedAccessFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT": {
-      "(VK_EXT_ycbcr_2plane_444_formats)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceColorWriteEnableFeaturesEXT": {
-      "(VK_EXT_color_write_enable)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelinePropertiesFeaturesEXT": {
-      "(VK_EXT_pipeline_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelinePropertiesFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceProvokingVertexFeaturesEXT": {
-      "(VK_EXT_provoking_vertex)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorBufferFeaturesEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorBufferFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT": {
-      "(VK_EXT_pageable_device_local_memory)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiDrawFeaturesEXT": {
-      "(VK_EXT_multi_draw)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV": {
-      "(VK_NV_ray_tracing_motion_blur)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceOpacityMicromapFeaturesEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceOpacityMicromapFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDisplacementMicromapFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDisplacementMicromapFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI": {
-      "(VK_HUAWEI_subpass_shading)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV": {
-      "(VK_NV_external_memory_rdma)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePresentIdFeaturesKHR": {
-      "(VK_KHR_present_id)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePresentWaitFeaturesKHR": {
-      "(VK_KHR_present_wait)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceHostImageCopyFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePresentBarrierFeaturesNV": {
-      "(VK_NV_present_barrier)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderIntegerDotProductFeatures": {
-      "(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMaintenance4Features": {
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMaintenance4Features-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceMaintenance5FeaturesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceMaintenance5FeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceMaintenance6FeaturesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceMaintenance6FeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDynamicRenderingFeatures": {
-      "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT": {
-      "(VK_EXT_rgba10x6_formats)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelineRobustnessFeaturesEXT": {
-      "(VK_EXT_pipeline_robustness)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelineRobustnessFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageViewMinLodFeaturesEXT": {
-      "(VK_EXT_image_view_min_lod)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT": {
-      "(VK_EXT_rasterization_order_attachment_access)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT": {
-      "(VK_EXT_subpass_merge_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceLinearColorAttachmentFeaturesNV": {
-      "(VK_NV_linear_color_attachment)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT": {
-      "(VK_EXT_attachment_feedback_loop_layout)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceNestedCommandBufferFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceNestedCommandBufferFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT": {
-      "(VK_EXT_graphics_pipeline_library)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT": {
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT": {
-      "(VK_EXT_image_2d_view_of_3d)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageCompressionControlFeaturesEXT": {
-      "(VK_EXT_image_compression_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageCompressionControlFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT": {
-      "(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD": {
-      "(VK_AMD_shader_early_and_late_fragment_tests)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT": {
-      "(VK_EXT_non_seamless_cube_map)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTilePropertiesFeaturesQCOM": {
-      "(VK_QCOM_tile_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTilePropertiesFeaturesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageProcessingFeaturesQCOM": {
-      "(VK_QCOM_image_processing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageProcessingFeaturesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceImageProcessing2FeaturesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceImageProcessing2FeaturesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT": {
-      "(VK_EXT_depth_clamp_zero_one)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDepthClampZeroOneFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderTileImageFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderTileImageFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDepthBiasControlFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDepthBiasControlFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceAddressBindingReportFeaturesEXT": {
-      "(VK_EXT_device_address_binding_report)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceOpticalFlowFeaturesNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceOpticalFlowFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFaultFeaturesEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFaultFeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderObjectFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderObjectFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceFrameBoundaryFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceFrameBoundaryFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT": {
-      "(VK_EXT_swapchain_maintenance1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV": {
-      "(VK_NV_ray_tracing_invocation_reorder)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM": {
-      "(VK_QCOM_multiview_per_view_viewports)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderEnqueueFeaturesAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderEnqueueFeaturesAMDX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCubicClampFeaturesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCubicClampFeaturesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceYcbcrDegammaFeaturesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCubicWeightsFeaturesQCOM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCubicWeightsFeaturesQCOM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDevicePerStageDescriptorSetFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDevicePerStageDescriptorSetFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCudaKernelLaunchFeaturesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCudaKernelLaunchFeaturesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalFormatResolveFeaturesANDROID-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceSchedulingControlsFeaturesARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceSchedulingControlsFeaturesARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceRenderPassStripedFeaturesARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceRenderPassStripedFeaturesARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePushDescriptorPropertiesKHR": {
-      "(VK_KHR_push_descriptor)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiviewProperties": {
-      "(VK_VERSION_1_1,VK_KHR_multiview)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFloatControlsProperties": {
-      "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDiscardRectanglePropertiesEXT": {
-      "(VK_EXT_discard_rectangles)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSampleLocationsPropertiesEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalMemoryHostPropertiesEXT": {
-      "(VK_EXT_external_memory_host)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX": {
-      "(VK_NVX_multiview_per_view_attributes)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePointClippingProperties": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePointClippingProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubgroupProperties": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubgroupProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubgroupSizeControlProperties": {
-      "(VK_VERSION_1_1)+(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT": {
-      "(VK_EXT_blend_operation_advanced)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT": {
-      "(VK_EXT_vertex_attribute_divisor)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSamplerFilterMinmaxProperties": {
-      "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceProtectedMemoryProperties": {
-      "(VK_VERSION_1_1)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMaintenance3Properties": {
-      "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMaintenance3Properties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMaintenance4Properties": {
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMaintenance4Properties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceMaintenance5PropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceMaintenance5PropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceMaintenance6PropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceMaintenance6PropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMeshShaderPropertiesNV": {
-      "(VK_NV_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMeshShaderPropertiesEXT": {
-      "(VK_EXT_mesh_shader)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorIndexingProperties": {
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceInlineUniformBlockProperties": {
-      "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceConservativeRasterizationPropertiesEXT": {
-      "(VK_EXT_conservative_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMapPropertiesEXT": {
-      "(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT": {
-      "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM": {
-      "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderCorePropertiesAMD": {
-      "(VK_AMD_shader_core_properties)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderCoreProperties2AMD": {
-      "(VK_AMD_shader_core_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDepthStencilResolveProperties": {
-      "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePerformanceQueryPropertiesKHR": {
-      "(VK_KHR_performance_query)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShadingRateImagePropertiesNV": {
-      "(VK_NV_shading_rate_image)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMemoryDecompressionPropertiesNV": {
-      "(VK_NV_memory_decompression)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTransformFeedbackPropertiesEXT": {
-      "(VK_EXT_transform_feedback)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV": {
-      "(VK_NV_copy_memory_indirect)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingPropertiesNV": {
-      "(VK_NV_ray_tracing)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceAccelerationStructurePropertiesKHR": {
-      "(VK_KHR_acceleration_structure)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingPipelinePropertiesKHR": {
-      "(VK_KHR_ray_tracing_pipeline)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCooperativeMatrixPropertiesNV": {
-      "(VK_NV_cooperative_matrix)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCooperativeMatrixPropertiesKHR": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV": {
-      "(VK_NV_shader_sm_builtins)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTexelBufferAlignmentProperties": {
-      "(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceTimelineSemaphoreProperties": {
-      "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceLineRasterizationPropertiesEXT": {
-      "(VK_EXT_line_rasterization)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRobustness2PropertiesEXT": {
-      "(VK_EXT_robustness2)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV": {
-      "(VK_NV_device_generated_commands)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePortabilitySubsetPropertiesKHR": {
-      "(VK_KHR_portability_subset)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShadingRatePropertiesKHR": {
-      "(VK_KHR_fragment_shading_rate)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV": {
-      "(VK_NV_fragment_shading_rate_enums)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter",
-          "text": " <code>maxFragmentShadingRateInvocationCount</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>maxFragmentShadingRateInvocationCount</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceCustomBorderColorPropertiesEXT": {
-      "(VK_EXT_custom_border_color)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceProvokingVertexPropertiesEXT": {
-      "(VK_EXT_provoking_vertex)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorBufferPropertiesEXT": {
-      "(VK_EXT_descriptor_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT": {
-      "(VK_EXT_descriptor_buffer)+(VK_EXT_fragment_density_map)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceHostImageCopyPropertiesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter",
+          "text": "If <code>copySrcLayoutCount</code> is not <code>0</code>, and <code>pCopySrcLayouts</code> is not <code>NULL</code>, <code>pCopySrcLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>copySrcLayoutCount</code> <a href=\"#VkImageLayout\">VkImageLayout</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter",
+          "text": "If <code>copyDstLayoutCount</code> is not <code>0</code>, and <code>pCopyDstLayouts</code> is not <code>NULL</code>, <code>pCopyDstLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>copyDstLayoutCount</code> <a href=\"#VkImageLayout\">VkImageLayout</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI": {
-      "(VK_HUAWEI_subpass_shading)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceMultiDrawPropertiesEXT": {
-      "(VK_EXT_multi_draw)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceNestedCommandBufferPropertiesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceNestedCommandBufferPropertiesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT": {
-      "(VK_EXT_graphics_pipeline_library)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR": {
-      "(VK_KHR_fragment_shader_barycentric)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT": {
-      "(VK_EXT_shader_module_identifier)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDevicePipelineRobustnessPropertiesEXT": {
-      "(VK_EXT_pipeline_robustness)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDevicePipelineRobustnessPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT": {
-      "(VK_EXT_extended_dynamic_state3)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState3PropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceOpticalFlowPropertiesNV": {
-      "(VK_NV_optical_flow)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceOpacityMicromapPropertiesEXT": {
-      "(VK_EXT_opacity_micromap)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceOpacityMicromapPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceDisplacementMicromapPropertiesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceDisplacementMicromapPropertiesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM": {
-      "(VK_ARM_shader_core_builtins)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV": {
-      "(VK_NV_ray_tracing_invocation_reorder)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderCorePropertiesARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderObjectPropertiesEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderObjectPropertiesEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceShaderEnqueuePropertiesAMDX": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceShaderEnqueuePropertiesAMDX-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceCudaKernelLaunchPropertiesNV": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceCudaKernelLaunchPropertiesNV-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalFormatResolvePropertiesANDROID-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkPhysicalDeviceRenderPassStripedPropertiesARM": {
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceRenderPassStripedPropertiesARM-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceMultisamplePropertiesEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter",
-          "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
+          "text": "<code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameter",
-          "text": " <code>pMultisampleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a> structure"
+          "text": "<code>pMultisampleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkMultisamplePropertiesEXT": {
-      "(VK_EXT_sample_locations)": [
+      "core": [
         {
           "vuid": "VUID-VkMultisamplePropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkMultisamplePropertiesEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
@@ -65322,1385 +99107,1735 @@
       "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter",
-          "text": " <code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties\">VkFormatProperties</a> structure"
+          "text": "<code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties\">VkFormatProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameter",
-          "text": " <code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties2\">VkFormatProperties2</a> structure"
+          "text": "<code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties2\">VkFormatProperties2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkFormatProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFormatProperties2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDrmFormatModifierPropertiesList2EXT\">VkDrmFormatModifierPropertiesList2EXT</a>, <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>, <a href=\"#VkFormatProperties3\">VkFormatProperties3</a>, or <a href=\"#VkSubpassResolvePerformanceQueryEXT\">VkSubpassResolvePerformanceQueryEXT</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDrmFormatModifierPropertiesList2EXT\">VkDrmFormatModifierPropertiesList2EXT</a>, <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>, <a href=\"#VkFormatProperties3\">VkFormatProperties3</a>, or <a href=\"#VkSubpassResolvePerformanceQueryEXT\">VkSubpassResolvePerformanceQueryEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFormatProperties2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrmFormatModifierPropertiesListEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkDrmFormatModifierPropertiesListEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDrmFormatModifierPropertiesList2EXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
+      "core": [
         {
           "vuid": "VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkFormatProperties3": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
+      "core": [
         {
           "vuid": "VUID-VkFormatProperties3-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkSubpassResolvePerformanceQueryEXT": {
-      "(VK_EXT_multisampled_render_to_single_sampled)": [
+      "core": [
         {
           "vuid": "VUID-VkSubpassResolvePerformanceQueryEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceImageFormatProperties": {
-      "(VK_EXT_image_drm_format_modifier)": [
-        {
-          "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>. (Use <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> instead)"
-        }
-      ],
       "core": [
         {
+          "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248",
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>. (Use <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> instead)",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter",
-          "text": " <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties\">VkImageFormatProperties</a> structure"
+          "text": "<code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties\">VkImageFormatProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceExternalImageFormatPropertiesNV": {
-      "(VK_NV_external_memory_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721",
-          "text": " <code>externalHandleType</code> <strong class=\"purple\">must</strong> not have more than one bit set"
+          "text": "<code>externalHandleType</code> <strong class=\"purple\">must</strong> not have more than one bit set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter",
-          "text": " <code>externalHandleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
+          "text": "<code>externalHandleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameter",
-          "text": " <code>pExternalImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a> structure"
+          "text": "<code>pExternalImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceImageFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868",
-          "text": " If the <code>pNext</code> chain of <code>pImageFormatProperties</code> includes a <a href=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a> structure, the <code>pNext</code> chain of <code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure with <code>handleType</code> set to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+          "text": "If the <code>pNext</code> chain of <code>pImageFormatProperties</code> includes a <a href=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a> structure, the <code>pNext</code> chain of <code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure with <code>handleType</code> set to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004",
+          "text": "If the <code>pNext</code> chain of <code>pImageFormatProperties</code> includes a <a href=\"#VkHostImageCopyDevicePerformanceQueryEXT\">VkHostImageCopyDevicePerformanceQueryEXT</a> structure, <code>pImageFormatInfo-&gt;usage</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter",
-          "text": " <code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure"
+          "text": "<code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter",
-          "text": " <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure"
+          "text": "<code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageFormatInfo2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> if and only if the <code>pNext</code> chain includes <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> if and only if the <code>pNext</code> chain includes <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313",
-          "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>"
-        }
-      ],
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+          "text": "If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a>, <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>, <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a>, <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>, <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-format-parameter",
-          "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
+          "text": "<code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-type-parameter",
-          "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
+          "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameter",
-          "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
+          "text": "<code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "VkImageFormatProperties2": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+      "core": [
         {
           "vuid": "VUID-VkImageFormatProperties2-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatProperties2-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a>, <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>, <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>, <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a>, <a href=\"#VkSamplerYcbcrConversionImageFormatProperties\">VkSamplerYcbcrConversionImageFormatProperties</a>, or <a href=\"#VkTextureLODGatherFormatPropertiesAMD\">VkTextureLODGatherFormatPropertiesAMD</a>"
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a>, <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>, <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>, <a href=\"#VkHostImageCopyDevicePerformanceQueryEXT\">VkHostImageCopyDevicePerformanceQueryEXT</a>, <a href=\"#VkImageCompressionPropertiesEXT\">VkImageCompressionPropertiesEXT</a>, <a href=\"#VkSamplerYcbcrConversionImageFormatProperties\">VkSamplerYcbcrConversionImageFormatProperties</a>, or <a href=\"#VkTextureLODGatherFormatPropertiesAMD\">VkTextureLODGatherFormatPropertiesAMD</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkImageFormatProperties2-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         }
       ]
     },
     "VkTextureLODGatherFormatPropertiesAMD": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_AMD_texture_gather_bias_lod)": [
+      "core": [
         {
           "vuid": "VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalImageFormatInfo": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameter",
-          "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalImageFormatProperties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalImageFormatProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageDrmFormatModifierInfoEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316",
-          "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than the <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
+          "text": "If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than the <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter",
-          "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
+          "text": "<code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkSamplerYcbcrConversionImageFormatProperties": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+      "core": [
         {
           "vuid": "VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAndroidHardwareBufferUsageANDROID": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+      "core": [
         {
           "vuid": "VUID-VkAndroidHardwareBufferUsageANDROID-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkHostImageCopyDevicePerformanceQueryEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceImageViewImageFormatInfoEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameter",
-          "text": " <code>imageViewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value"
+          "text": "<code>imageViewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkFilterCubicImageViewImageFormatPropertiesEXT": {
-      "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [
+      "core": [
         {
           "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627",
-          "text": " If the <code>pNext</code> chain of the <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure includes a <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a> structure, the <code>pNext</code> chain of the <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a> structure with an <code>imageViewType</code> that is compatible with <code>imageType</code>"
+          "text": "If the <code>pNext</code> chain of the <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure includes a <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a> structure, the <code>pNext</code> chain of the <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a> structure with an <code>imageViewType</code> that is compatible with <code>imageType</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceExternalBufferProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter",
-          "text": " <code>pExternalBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalBufferInfo\">VkPhysicalDeviceExternalBufferInfo</a> structure"
+          "text": "<code>pExternalBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalBufferInfo\">VkPhysicalDeviceExternalBufferInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameter",
-          "text": " <code>pExternalBufferProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a> structure"
+          "text": "<code>pExternalBufferProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalBufferInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
+      "core": [
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-None-09499",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-None-09500",
+          "text": "If the <code>pNext</code> chain does not include a <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a> structure, <code>usage</code>: must not be 0",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferUsageFlags2CreateInfoKHR\">VkBufferUsageFlags2CreateInfoKHR</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique",
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values"
-        },
-        {
-          "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask",
-          "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalBufferProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalBufferProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalBufferProperties-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceExternalSemaphoreProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter",
-          "text": " <code>pExternalSemaphoreInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalSemaphoreInfo\">VkPhysicalDeviceExternalSemaphoreInfo</a> structure"
+          "text": "<code>pExternalSemaphoreInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalSemaphoreInfo\">VkPhysicalDeviceExternalSemaphoreInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameter",
-          "text": " <code>pExternalSemaphoreProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a> structure"
+          "text": "<code>pExternalSemaphoreProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalSemaphoreInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalSemaphoreProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalSemaphoreProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalSemaphoreProperties-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceExternalFenceProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter",
-          "text": " <code>pExternalFenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalFenceInfo\">VkPhysicalDeviceExternalFenceInfo</a> structure"
+          "text": "<code>pExternalFenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalFenceInfo\">VkPhysicalDeviceExternalFenceInfo</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameter",
-          "text": " <code>pExternalFenceProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a> structure"
+          "text": "<code>pExternalFenceProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceExternalFenceInfo": {
-      "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter",
-          "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
+          "text": "<code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkExternalFenceProperties": {
-      "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
+      "core": [
         {
           "vuid": "VUID-VkExternalFenceProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkExternalFenceProperties-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
-    "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT": {
-      "(VK_EXT_calibrated_timestamps)": [
+    "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR": {
+      "core": [
         {
-          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter",
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter",
-          "text": " <code>pTimeDomainCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameter",
+          "text": "<code>pTimeDomainCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter",
-          "text": " If the value referenced by <code>pTimeDomainCount</code> is not <code>0</code>, and <code>pTimeDomains</code> is not <code>NULL</code>, <code>pTimeDomains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pTimeDomainCount</code> <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> values"
+          "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameter",
+          "text": "If the value referenced by <code>pTimeDomainCount</code> is not <code>0</code>, and <code>pTimeDomains</code> is not <code>NULL</code>, <code>pTimeDomains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pTimeDomainCount</code> <a href=\"#VkTimeDomainKHR\">VkTimeDomainKHR</a> values",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetDebugUtilsObjectNameEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587",
-          "text": " <code>pNameInfo-&gt;objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
+          "text": "<code>pNameInfo-&gt;objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588",
-          "text": " <code>pNameInfo-&gt;objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>pNameInfo-&gt;objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of an instance-level object, the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code> <strong class=\"purple\">must</strong> be a descendent of the same <a href=\"#VkInstance\">VkInstance</a> as the object identified by <code>pNameInfo-&gt;objectHandle</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of a physical-device-level object, the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code> <strong class=\"purple\">must</strong> be a descendant of the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> as the object identified by <code>pNameInfo-&gt;objectHandle</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of a device-level object, that object <strong class=\"purple\">must</strong> be a descendent of the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter",
-          "text": " <code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structure"
+          "text": "<code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugUtilsObjectNameInfoEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589",
-          "text": " If <code>objectType</code> is <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "If <code>objectType</code> is <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590",
-          "text": " If <code>objectType</code> is not <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> or a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table"
+          "text": "If <code>objectType</code> is not <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> or a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter",
-          "text": " If <code>pObjectName</code> is not <code>NULL</code>, <code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pObjectName</code> is not <code>NULL</code>, <code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkSetDebugUtilsObjectTagEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of an instance-level object, the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code> <strong class=\"purple\">must</strong> be a descendent of the same <a href=\"#VkInstance\">VkInstance</a> as the object identified by <code>pNameInfo-&gt;objectHandle</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of a physical-device-level object, the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code> <strong class=\"purple\">must</strong> be a descendant of the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> as the object identified by <code>pNameInfo-&gt;objectHandle</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877",
+          "text": "If <code>pNameInfo-&gt;objectHandle</code> is the valid handle of a device-level object, that object <strong class=\"purple\">must</strong> be a descendent of the <a href=\"#VkDevice\">VkDevice</a> identified by <code>device</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter",
-          "text": " <code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectTagInfoEXT\">VkDebugUtilsObjectTagInfoEXT</a> structure"
+          "text": "<code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectTagInfoEXT\">VkDebugUtilsObjectTagInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugUtilsObjectTagInfoEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910",
-          "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table"
+          "text": "<code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter",
-          "text": " <code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes"
+          "text": "<code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength",
-          "text": " <code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueueBeginDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter",
-          "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
+          "text": "<code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugUtilsLabelEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsLabelEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsLabelEXT-pLabelName-parameter",
-          "text": " <code>pLabelName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pLabelName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueueEndDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-None-01911",
-          "text": " There <strong class=\"purple\">must</strong> be an outstanding <code>vkQueueBeginDebugUtilsLabelEXT</code> command prior to the <code>vkQueueEndDebugUtilsLabelEXT</code> on the queue"
+          "text": "There <strong class=\"purple\">must</strong> be an outstanding <code>vkQueueBeginDebugUtilsLabelEXT</code> command prior to the <code>vkQueueEndDebugUtilsLabelEXT</code> on the queue",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "vkQueueInsertDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter",
-          "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
+          "text": "<code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdBeginDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter",
-          "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
+          "text": "<code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdEndDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912",
-          "text": " There <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command prior to the <code>vkCmdEndDebugUtilsLabelEXT</code> on the queue that <code>commandBuffer</code> is submitted to"
+          "text": "There <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command prior to the <code>vkCmdEndDebugUtilsLabelEXT</code> on the queue that <code>commandBuffer</code> is submitted to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <code>vkCmdEndDebugUtilsLabelEXT</code>"
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <code>vkCmdEndDebugUtilsLabelEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdInsertDebugUtilsLabelEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter",
-          "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
+          "text": "<code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDebugUtilsMessengerEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter",
-          "text": " <code>pMessenger</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle"
+          "text": "<code>pMessenger</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugUtilsMessengerCreateInfoEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914",
-          "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a>"
+          "text": "<code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter",
-          "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> values"
+          "text": "<code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask",
-          "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>messageSeverity</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter",
-          "text": " <code>messageType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values"
+          "text": "<code>messageType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask",
-          "text": " <code>messageType</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>messageType</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter",
-          "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a> value"
+          "text": "<code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "PFN_vkDebugUtilsMessengerCallbackEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769",
-          "text": " The callback <strong class=\"purple\">must</strong> not make calls to any Vulkan commands"
+          "text": "The callback <strong class=\"purple\">must</strong> not make calls to any Vulkan commands",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugUtilsMessengerCallbackDataEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceAddressBindingCallbackDataEXT\">VkDeviceAddressBindingCallbackDataEXT</a>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceAddressBindingCallbackDataEXT\">VkDeviceAddressBindingCallbackDataEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-unique",
-          "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+          "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter",
-          "text": " If <code>pMessageIdName</code> is not <code>NULL</code>, <code>pMessageIdName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "If <code>pMessageIdName</code> is not <code>NULL</code>, <code>pMessageIdName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameter",
-          "text": " <code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter",
-          "text": " If <code>queueLabelCount</code> is not <code>0</code>, <code>pQueueLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures"
+          "text": "If <code>queueLabelCount</code> is not <code>0</code>, <code>pQueueLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter",
-          "text": " If <code>cmdBufLabelCount</code> is not <code>0</code>, <code>pCmdBufLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>cmdBufLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures"
+          "text": "If <code>cmdBufLabelCount</code> is not <code>0</code>, <code>pCmdBufLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>cmdBufLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter",
-          "text": " If <code>objectCount</code> is not <code>0</code>, <code>pObjects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>objectCount</code> valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structures"
+          "text": "If <code>objectCount</code> is not <code>0</code>, <code>pObjects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>objectCount</code> valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceAddressBindingCallbackDataEXT": {
-      "(VK_EXT_debug_utils)+(VK_EXT_device_address_binding_report)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceAddressBindingFlagBitsEXT\">VkDeviceAddressBindingFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceAddressBindingFlagBitsEXT\">VkDeviceAddressBindingFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter",
-          "text": " <code>bindingType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceAddressBindingTypeEXT\">VkDeviceAddressBindingTypeEXT</a> value"
+          "text": "<code>bindingType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceAddressBindingTypeEXT\">VkDeviceAddressBindingTypeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkSubmitDebugUtilsMessageEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591",
-          "text": " The <code>objectType</code> member of each element of <code>pCallbackData-&gt;pObjects</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
+          "text": "The <code>objectType</code> member of each element of <code>pCallbackData-&gt;pObjects</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter",
-          "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> value"
+          "text": "<code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameter",
-          "text": " <code>messageTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values"
+          "text": "<code>messageTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask",
-          "text": " <code>messageTypes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>messageTypes</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter",
-          "text": " <code>pCallbackData</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCallbackDataEXT\">VkDebugUtilsMessengerCallbackDataEXT</a> structure"
+          "text": "<code>pCallbackData</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCallbackDataEXT\">VkDebugUtilsMessengerCallbackDataEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyDebugUtilsMessengerEXT": {
-      "(VK_EXT_debug_utils)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter",
-          "text": " If <code>messenger</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>messenger</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle"
+          "text": "If <code>messenger</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>messenger</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent",
-          "text": " If <code>messenger</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
+          "text": "If <code>messenger</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkDebugMarkerSetObjectNameEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter",
-          "text": " <code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectNameInfoEXT\">VkDebugMarkerObjectNameInfoEXT</a> structure"
+          "text": "<code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectNameInfoEXT\">VkDebugMarkerObjectNameInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugMarkerObjectNameInfoEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01491",
-          "text": " <code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01492",
-          "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
+          "text": "<code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter",
-          "text": " <code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkDebugMarkerSetObjectTagEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter",
-          "text": " <code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectTagInfoEXT\">VkDebugMarkerObjectTagInfoEXT</a> structure"
+          "text": "<code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectTagInfoEXT\">VkDebugMarkerObjectTagInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugMarkerObjectTagInfoEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01494",
-          "text": " <code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01495",
-          "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
+          "text": "<code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter",
-          "text": " <code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes"
+          "text": "<code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength",
-          "text": " <code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "<code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDebugMarkerBeginEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter",
-          "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure"
+          "text": "<code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerBeginEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugMarkerMarkerInfoEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter",
-          "text": " <code>pMarkerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pMarkerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDebugMarkerEndEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239",
-          "text": " There <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command prior to the <code>vkCmdDebugMarkerEndEXT</code> on the queue that <code>commandBuffer</code> is submitted to"
+          "text": "There <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command prior to the <code>vkCmdDebugMarkerEndEXT</code> on the queue that <code>commandBuffer</code> is submitted to",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240",
-          "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>"
+          "text": "If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerEndEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdDebugMarkerInsertEXT": {
-      "(VK_EXT_debug_marker)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter",
-          "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure"
+          "text": "<code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDebugMarkerInsertEXT-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateDebugReportCallbackEXT": {
-      "(VK_EXT_debug_report)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateDebugReportCallbackEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter",
-          "text": " <code>pCallback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle"
+          "text": "<code>pCallback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDebugReportCallbackCreateInfoEXT": {
-      "(VK_EXT_debug_report)": [
+      "core": [
         {
           "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter",
-          "text": " <code>pfnCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugReportCallbackEXT\">PFN_vkDebugReportCallbackEXT</a> value"
+          "text": "<code>pfnCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugReportCallbackEXT\">PFN_vkDebugReportCallbackEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkDebugReportMessageEXT": {
-      "(VK_EXT_debug_report)": [
+      "core": [
         {
           "vuid": "VUID-vkDebugReportMessageEXT-object-01241",
-          "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+          "text": "<code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-objectType-01498",
-          "text": " If <code>objectType</code> is not <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code> and <code>object</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the corresponding type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
+          "text": "If <code>objectType</code> is not <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code> and <code>object</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the corresponding type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-flags-parameter",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-flags-requiredbitmask",
-          "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-objectType-parameter",
-          "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
+          "text": "<code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter",
-          "text": " <code>pLayerPrefix</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pLayerPrefix</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDebugReportMessageEXT-pMessage-parameter",
-          "text": " <code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyDebugReportCallbackEXT": {
-      "(VK_EXT_debug_report)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01242",
-          "text": " If <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+          "text": "If <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01243",
-          "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter",
-          "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
+          "text": "<code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter",
-          "text": " If <code>callback</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle"
+          "text": "If <code>callback</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parent",
-          "text": " If <code>callback</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
+          "text": "If <code>callback</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdSetCheckpointNV": {
-      "(VK_NV_device_diagnostic_checkpoints)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdSetCheckpointNV-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetQueueCheckpointData2NV": {
-      "(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-03892",
-          "text": " The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state"
+          "text": "The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter",
-          "text": " <code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter",
-          "text": " If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointData2NV\">VkCheckpointData2NV</a> structures"
+          "text": "If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointData2NV\">VkCheckpointData2NV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkCheckpointData2NV": {
-      "(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
+      "core": [
         {
           "vuid": "VUID-VkCheckpointData2NV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCheckpointData2NV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetQueueCheckpointDataNV": {
-      "(VK_NV_device_diagnostic_checkpoints)": [
+      "core": [
         {
           "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-02025",
-          "text": " The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state"
+          "text": "The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter",
-          "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
+          "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter",
-          "text": " <code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter",
-          "text": " If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointDataNV\">VkCheckpointDataNV</a> structures"
+          "text": "If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointDataNV\">VkCheckpointDataNV</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkCheckpointDataNV": {
-      "(VK_NV_device_diagnostic_checkpoints)": [
+      "core": [
         {
           "vuid": "VUID-VkCheckpointDataNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCheckpointDataNV-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDeviceFaultInfoEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-device-07336",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be in the <em>lost</em> state"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be in the <em>lost</em> state",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337",
-          "text": " If the value referenced by <code>pFaultCounts-&gt;addressInfoCount</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pAddressInfos</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pAddressInfos</code> must be a valid pointer to an array of <code>pFaultCounts-&gt;addressInfoCount</code> <a href=\"#VkDeviceFaultAddressInfoEXT\">VkDeviceFaultAddressInfoEXT</a> structures"
+          "text": "If the value referenced by <code>pFaultCounts-&gt;addressInfoCount</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pAddressInfos</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pAddressInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFaultCounts-&gt;addressInfoCount</code> <a href=\"#VkDeviceFaultAddressInfoEXT\">VkDeviceFaultAddressInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07338",
-          "text": " If the value referenced by <code>pFaultCounts-&gt;vendorInfoCount</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pVendorInfos</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pVendorInfos</code> must be a valid pointer to an array of <code>pFaultCounts-&gt;vendorInfoCount</code> <a href=\"#VkDeviceFaultVendorInfoEXT\">VkDeviceFaultVendorInfoEXT</a> structures"
+          "text": "If the value referenced by <code>pFaultCounts-&gt;vendorInfoCount</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pVendorInfos</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pVendorInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFaultCounts-&gt;vendorInfoCount</code> <a href=\"#VkDeviceFaultVendorInfoEXT\">VkDeviceFaultVendorInfoEXT</a> structures",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07339",
-          "text": " If the value referenced by <code>pFaultCounts-&gt;vendorBinarySize</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pVendorBinaryData</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pVendorBinaryData</code> must be a valid pointer to an array of <code>pFaultCounts-&gt;vendorBinarySize</code> bytes"
+          "text": "If the value referenced by <code>pFaultCounts-&gt;vendorBinarySize</code> is not <code>0</code>, and <code>pFaultInfo-&gt;pVendorBinaryData</code> is not <code>NULL</code>, <code>pFaultInfo-&gt;pVendorBinaryData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFaultCounts-&gt;vendorBinarySize</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-parameter",
-          "text": " <code>pFaultCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultCountsEXT\">VkDeviceFaultCountsEXT</a> structure"
+          "text": "<code>pFaultCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultCountsEXT\">VkDeviceFaultCountsEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameter",
-          "text": " If <code>pFaultInfo</code> is not <code>NULL</code>, <code>pFaultInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultInfoEXT\">VkDeviceFaultInfoEXT</a> structure"
+          "text": "If <code>pFaultInfo</code> is not <code>NULL</code>, <code>pFaultInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultInfoEXT\">VkDeviceFaultInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceFaultCountsEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceFaultCountsEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultCountsEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceFaultInfoEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceFaultInfoEXT-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultInfoEXT-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameter",
-          "text": " If <code>pAddressInfos</code> is not <code>NULL</code>, <code>pAddressInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultAddressInfoEXT\">VkDeviceFaultAddressInfoEXT</a> structure"
+          "text": "If <code>pAddressInfos</code> is not <code>NULL</code>, <code>pAddressInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultAddressInfoEXT\">VkDeviceFaultAddressInfoEXT</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameter",
-          "text": " If <code>pVendorInfos</code> is not <code>NULL</code>, <code>pVendorInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultVendorInfoEXT\">VkDeviceFaultVendorInfoEXT</a> structure"
+          "text": "If <code>pVendorInfos</code> is not <code>NULL</code>, <code>pVendorInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceFaultVendorInfoEXT\">VkDeviceFaultVendorInfoEXT</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceFaultAddressInfoEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceFaultAddressInfoEXT-addressType-parameter",
-          "text": " <code>addressType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceFaultAddressTypeEXT\">VkDeviceFaultAddressTypeEXT</a> value"
+          "text": "<code>addressType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceFaultAddressTypeEXT\">VkDeviceFaultAddressTypeEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "VkDeviceFaultVendorBinaryHeaderVersionOneEXT": {
-      "(VK_EXT_device_fault)": [
+      "core": [
         {
           "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340",
-          "text": " <code>headerSize</code> <strong class=\"purple\">must</strong> be 56"
+          "text": "<code>headerSize</code> <strong class=\"purple\">must</strong> be 56",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341",
-          "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT</code>"
+          "text": "<code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameter",
-          "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceFaultVendorBinaryHeaderVersionEXT\">VkDeviceFaultVendorBinaryHeaderVersionEXT</a> value"
+          "text": "<code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceFaultVendorBinaryHeaderVersionEXT\">VkDeviceFaultVendorBinaryHeaderVersionEXT</a> value",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetPhysicalDeviceToolProperties": {
-      "(VK_VERSION_1_3,VK_EXT_tooling_info)": [
+      "core": [
         {
           "vuid": "VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter",
-          "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
+          "text": "<code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter",
-          "text": " <code>pToolCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
+          "text": "<code>pToolCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter",
-          "text": " If the value referenced by <code>pToolCount</code> is not <code>0</code>, and <code>pToolProperties</code> is not <code>NULL</code>, <code>pToolProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pToolCount</code> <a href=\"#VkPhysicalDeviceToolProperties\">VkPhysicalDeviceToolProperties</a> structures"
+          "text": "If the value referenced by <code>pToolCount</code> is not <code>0</code>, and <code>pToolProperties</code> is not <code>NULL</code>, <code>pToolProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pToolCount</code> <a href=\"#VkPhysicalDeviceToolProperties\">VkPhysicalDeviceToolProperties</a> structures",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceToolProperties": {
-      "(VK_VERSION_1_3,VK_EXT_tooling_info)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceToolProperties-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkPhysicalDeviceToolProperties-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
+        }
+      ]
+    },
+    "VkFrameBoundaryEXT": {
+      "core": [
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-sType-sType",
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-flags-parameter",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFrameBoundaryFlagBitsEXT\">VkFrameBoundaryFlagBitsEXT</a> values",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-pImages-parameter",
+          "text": "If <code>imageCount</code> is not <code>0</code>, and <code>pImages</code> is not <code>NULL</code>, <code>pImages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageCount</code> valid <a href=\"#VkImage\">VkImage</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-pBuffers-parameter",
+          "text": "If <code>bufferCount</code> is not <code>0</code>, and <code>pBuffers</code> is not <code>NULL</code>, <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferCount</code> valid <a href=\"#VkBuffer\">VkBuffer</a> handles",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-pTag-parameter",
+          "text": "If <code>tagSize</code> is not <code>0</code>, and <code>pTag</code> is not <code>NULL</code>, <code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkFrameBoundaryEXT-commonparent",
+          "text": "Both of the elements of <code>pBuffers</code>, and the elements of <code>pImages</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+          "page": "vkspec"
         }
       ]
     },
@@ -66708,1569 +100843,2067 @@
       "core": [
         {
           "vuid": "VUID-StandaloneSpirv-None-04633",
-          "text": " Every entry point <strong class=\"purple\">must</strong> have no return value and accept no arguments"
+          "text": "Every entry point <strong class=\"purple\">must</strong> have no return value and accept no arguments",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04634",
-          "text": " The static function-call graph for an entry point <strong class=\"purple\">must</strong> not contain cycles; that is, static recursion is not allowed"
+          "text": "The static function-call graph for an entry point <strong class=\"purple\">must</strong> not contain cycles; that is, static recursion is not allowed",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04635",
-          "text": " The <strong>Logical</strong> or <strong>PhysicalStorageBuffer64</strong> addressing model <strong class=\"purple\">must</strong> be selected"
+          "text": "The <code>Logical</code> or <code>PhysicalStorageBuffer64</code> addressing model <strong class=\"purple\">must</strong> be selected",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04636",
-          "text": " <strong>Scope</strong> for execution <strong class=\"purple\">must</strong> be limited to <strong>Workgroup</strong> or <strong>Subgroup</strong>"
+          "text": "<code>Scope</code> for execution <strong class=\"purple\">must</strong> be limited to <code>Workgroup</code> or <code>Subgroup</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04637",
-          "text": " If the <strong>Scope</strong> for execution is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, tessellation control, or compute execution models"
+          "text": "If the <code>Scope</code> for execution is <code>Workgroup</code>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, tessellation control, or compute <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04638",
-          "text": " <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> be limited to <strong>Device</strong>, <strong>QueueFamily</strong>, <strong>Workgroup</strong>, <strong>ShaderCallKHR</strong>, <strong>Subgroup</strong>, or <strong>Invocation</strong>"
+          "text": "<code>Scope</code> for memory <strong class=\"purple\">must</strong> be limited to <code>Device</code>, <code>QueueFamily</code>, <code>Workgroup</code>, <code>ShaderCallKHR</code>, <code>Subgroup</code>, or <code>Invocation</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-ExecutionModel-07320",
-          "text": " If the <code>ExecutionModel</code> is <strong>TessellationControl</strong>, and the <code>MemoryModel</code> is <strong>GLSL450</strong>, the <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> not be <strong>Workgroup</strong>"
+          "text": "If the <code>Execution</code> <code>Model</code> is <code>TessellationControl</code>, and the <code>MemoryModel</code> is <code>GLSL450</code>, the <code>Scope</code> for memory <strong class=\"purple\">must</strong> not be <code>Workgroup</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-07321",
-          "text": " If the <strong>Scope</strong> for memory is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, tessellation control, or compute execution models"
+          "text": "If the <code>Scope</code> for memory is <code>Workgroup</code>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, tessellation control, or compute <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04640",
-          "text": " If the <strong>Scope</strong> for memory is <strong>ShaderCallKHR</strong>, then it <strong class=\"purple\">must</strong> only be used in ray generation, intersection, closest hit, any-hit, miss, and callable execution models"
+          "text": "If the <code>Scope</code> for memory is <code>ShaderCallKHR</code>, then it <strong class=\"purple\">must</strong> only be used in ray generation, intersection, closest hit, any-hit, miss, and callable <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04641",
-          "text": " If the <strong>Scope</strong> for memory is <strong>Invocation</strong>, then memory semantics <strong class=\"purple\">must</strong> be <strong>None</strong>"
+          "text": "If the <code>Scope</code> for memory is <code>Invocation</code>, then memory semantics <strong class=\"purple\">must</strong> be <code>None</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-None-04642",
+          "text": "<code>Scope</code> for <a href=\"#shaders-group-operations\">group operations</a> <strong class=\"purple\">must</strong> be limited to <code>Subgroup</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-SubgroupVoteKHR-07951",
+          "text": "If none of the <code>SubgroupVoteKHR</code>, <code>GroupNonUniform</code>, or <code>SubgroupBallotKHR</code> capabilities are declared, <code>Scope</code> for memory <strong class=\"purple\">must</strong> not be <code>Subgroup</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04643",
-          "text": " <strong>Storage Class</strong> <strong class=\"purple\">must</strong> be limited to <strong>UniformConstant</strong>, <strong>Input</strong>, <strong>Uniform</strong>, <strong>Output</strong>, <strong>Workgroup</strong>, <strong>Private</strong>, <strong>Function</strong>, <strong>PushConstant</strong>, <strong>Image</strong>, <strong>StorageBuffer</strong>, <strong>RayPayloadKHR</strong>, <strong>IncomingRayPayloadKHR</strong>, <strong>HitAttributeKHR</strong>, <strong>CallableDataKHR</strong>, <strong>IncomingCallableDataKHR</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>"
+          "text": "<code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be limited to <code>UniformConstant</code>, <code>Input</code>, <code>Uniform</code>, <code>Output</code>, <code>Workgroup</code>, <code>Private</code>, <code>Function</code>, <code>PushConstant</code>, <code>Image</code>, <code>StorageBuffer</code>, <code>RayPayloadKHR</code>, <code>IncomingRayPayloadKHR</code>, <code>HitAttributeKHR</code>, <code>CallableDataKHR</code>, <code>IncomingCallableDataKHR</code>, <code>ShaderRecordBufferKHR</code>, <code>PhysicalStorageBuffer</code>, or <code>TileImageEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04644",
-          "text": " If the <strong>Storage Class</strong> is <strong>Output</strong>, then it <strong class=\"purple\">must</strong> not be used in the <strong>GlCompute</strong>, <strong>RayGenerationKHR</strong>, <strong>IntersectionKHR</strong>, <strong>AnyHitKHR</strong>, <strong>ClosestHitKHR</strong>, <strong>MissKHR</strong>, or <strong>CallableKHR</strong> execution models"
+          "text": "If the <code>Storage</code> <code>Class</code> is <code>Output</code>, then it <strong class=\"purple\">must</strong> not be used in the <code>GlCompute</code>, <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04645",
-          "text": " If the <strong>Storage Class</strong> is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, or compute execution models"
+          "text": "If the <code>Storage</code> <code>Class</code> is <code>Workgroup</code>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, or compute <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-None-08720",
+          "text": "If the <code>Storage</code> <code>Class</code> is <code>TileImageEXT</code>, then it <strong class=\"purple\">must</strong> only be used in the fragment execution model",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04730",
-          "text": " <code>OpAtomicStore</code> <strong class=\"purple\">must</strong> not use <strong>Acquire</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
+          "text": "<code>OpAtomicStore</code> <strong class=\"purple\">must</strong> not use <code>Acquire</code>, <code>AcquireRelease</code>, or <code>SequentiallyConsistent</code> memory semantics",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpAtomicLoad-04731",
-          "text": " <code>OpAtomicLoad</code> <strong class=\"purple\">must</strong> not use <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
+          "text": "<code>OpAtomicLoad</code> <strong class=\"purple\">must</strong> not use <code>Release</code>, <code>AcquireRelease</code>, or <code>SequentiallyConsistent</code> memory semantics",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04732",
-          "text": " <code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> use one of <strong>Acquire</strong>, <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
+          "text": "<code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> use one of <code>Acquire</code>, <code>Release</code>, <code>AcquireRelease</code>, or <code>SequentiallyConsistent</code> memory semantics",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04733",
-          "text": " <code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> include at least one storage class"
+          "text": "<code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> include at least one <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04650",
-          "text": " If the semantics for <code>OpControlBarrier</code> includes one of <strong>Acquire</strong>, <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics, then it <strong class=\"purple\">must</strong> include at least one storage class"
+          "text": "If the semantics for <code>OpControlBarrier</code> includes one of <code>Acquire</code>, <code>Release</code>, <code>AcquireRelease</code>, or <code>SequentiallyConsistent</code> memory semantics, then it <strong class=\"purple\">must</strong> include at least one <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpVariable-04651",
-          "text": " Any <code>OpVariable</code> with an <code>Initializer</code> operand <strong class=\"purple\">must</strong> have <strong>Output</strong>, <strong>Private</strong>, <strong>Function</strong>, or <strong>Workgroup</strong> as its <strong>Storage Class</strong> operand"
+          "text": "Any <code>OpVariable</code> with an <code>Initializer</code> operand <strong class=\"purple\">must</strong> have <code>Output</code>, <code>Private</code>, <code>Function</code>, or <code>Workgroup</code> as its <code>Storage</code> <code>Class</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpVariable-04734",
-          "text": " Any <code>OpVariable</code> with an <code>Initializer</code> operand and <strong>Workgroup</strong> as its <strong>Storage Class</strong> operand <strong class=\"purple\">must</strong> use <code>OpConstantNull</code> as the initializer"
+          "text": "Any <code>OpVariable</code> with an <code>Initializer</code> operand and <code>Workgroup</code> as its <code>Storage</code> <code>Class</code> operand <strong class=\"purple\">must</strong> use <code>OpConstantNull</code> as the initializer",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpReadClockKHR-04652",
-          "text": " <strong>Scope</strong> for <code>OpReadClockKHR</code> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong> or <strong>Device</strong>"
+          "text": "<code>Scope</code> for <code>OpReadClockKHR</code> <strong class=\"purple\">must</strong> be limited to <code>Subgroup</code> or <code>Device</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OriginLowerLeft-04653",
-          "text": " The <code>OriginLowerLeft</code> execution mode <strong class=\"purple\">must</strong> not be used; fragment entry points <strong class=\"purple\">must</strong> declare <code>OriginUpperLeft</code>"
+          "text": "The <code>OriginLowerLeft</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used; fragment entry points <strong class=\"purple\">must</strong> declare <code>OriginUpperLeft</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PixelCenterInteger-04654",
-          "text": " The <code>PixelCenterInteger</code> execution mode <strong class=\"purple\">must</strong> not be used (pixels are always centered at half-integer coordinates)"
+          "text": "The <code>PixelCenterInteger</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used (pixels are always centered at half-integer coordinates)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-UniformConstant-04655",
-          "text": " Any variable in the <code>UniformConstant</code> storage class <strong class=\"purple\">must</strong> be typed as either <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, <code>OpTypeAccelerationStructureKHR</code>, or an array of one of these types"
+          "text": "Any variable in the <code>UniformConstant</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be typed as either <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, <code>OpTypeAccelerationStructureKHR</code>, or an array of one of these types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Uniform-06807",
-          "text": " Any variable in the <code>Uniform</code> or <code>StorageBuffer</code> storage class <strong class=\"purple\">must</strong> be typed as <code>OpTypeStruct</code> or an array of this type"
+          "text": "Any variable in the <code>Uniform</code> or <code>StorageBuffer</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be typed as <code>OpTypeStruct</code> or an array of this type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PushConstant-06808",
-          "text": " Any variable in the <code>PushConstant</code> storage class <strong class=\"purple\">must</strong> be typed as <code>OpTypeStruct</code>"
+          "text": "Any variable in the <code>PushConstant</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be typed as <code>OpTypeStruct</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeImage-04656",
-          "text": " <code>OpTypeImage</code> <strong class=\"purple\">must</strong> declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the &#8220;Sampled Type&#8221; (<code>RelaxedPrecision</code> <strong class=\"purple\">can</strong> be applied to a sampling instruction and to the variable holding the result of a sampling instruction)"
+          "text": "<code>OpTypeImage</code> <strong class=\"purple\">must</strong> declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the &#8220;Sampled Type&#8221; (<code>RelaxedPrecision</code> <strong class=\"purple\">can</strong> be applied to a sampling instruction and to the variable holding the result of a sampling instruction)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeImage-04657",
-          "text": " <code>OpTypeImage</code> <strong class=\"purple\">must</strong> have a &#8220;Sampled&#8221; operand of 1 (sampled image) or 2 (storage image)"
+          "text": "<code>OpTypeImage</code> <strong class=\"purple\">must</strong> have a &#8220;Sampled&#8221; operand of 1 (sampled image) or 2 (storage image)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeSampledImage-06671",
-          "text": " <code>OpTypeSampledImage</code> <strong class=\"purple\">must</strong> have a <code>OpTypeImage</code> with a &#8220;Sampled&#8221; operand of 1 (sampled image)"
+          "text": "<code>OpTypeSampledImage</code> <strong class=\"purple\">must</strong> have a <code>OpTypeImage</code> with a &#8220;Sampled&#8221; operand of 1 (sampled image)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Image-04965",
-          "text": " The converted bit width, signedness, and numeric type of the <code>Image</code> <code>Format</code> operand of an <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match the <code>Sampled</code> <code>Type</code>, as defined in <a href=\"#spirvenv-format-type-matching\">Image Format and Type Matching</a>"
+          "text": "The <a href=\"#spirv-type\">SPIR-V Type</a> of the <code>Image</code> <code>Format</code> operand of an <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match the <code>Sampled</code> <code>Type</code>, as defined in <a href=\"#spirvenv-format-type-matching\">Image Format and Type Matching</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpImageTexelPointer-04658",
-          "text": " If an <code>OpImageTexelPointer</code> is used in an atomic operation, the image type of the <code>image</code> parameter to <code>OpImageTexelPointer</code> <strong class=\"purple\">must</strong> have an image format of <code>R64i</code>, <code>R64ui</code>, <code>R32f</code>, <code>R32i</code>, or <code>R32ui</code>"
+          "text": "If an <code>OpImageTexelPointer</code> is used in an atomic operation, the image type of the <code>image</code> parameter to <code>OpImageTexelPointer</code> <strong class=\"purple\">must</strong> have an image format of <code>R64i</code>, <code>R64ui</code>, <code>R32f</code>, <code>R32i</code>, or <code>R32ui</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpImageQuerySizeLod-04659",
-          "text": " <code>OpImageQuerySizeLod</code>, <code>OpImageQueryLod</code>, and <code>OpImageQueryLevels</code> <strong class=\"purple\">must</strong> only consume an &#8220;Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1"
+          "text": "<code>OpImageQuerySizeLod</code>, <code>OpImageQueryLod</code>, and <code>OpImageQueryLevels</code> <strong class=\"purple\">must</strong> only consume an &#8220;Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeImage-06214",
-          "text": " An <code>OpTypeImage</code> with a &#8220;Dim&#8221; operand of <code>SubpassData</code> <strong class=\"purple\">must</strong> have an &#8220;Arrayed&#8221; operand of 0 (non-arrayed) and a &#8220;Sampled&#8221; operand of 2 (storage image)"
+          "text": "An <code>OpTypeImage</code> with a &#8220;Dim&#8221; operand of <code>SubpassData</code> <strong class=\"purple\">must</strong> have an &#8220;Arrayed&#8221; operand of 0 (non-arrayed) and a &#8220;Sampled&#8221; operand of 2 (storage image)",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-SubpassData-04660",
-          "text": " The <span class=\"eq\">(u,v)</span> coordinates used for a <code>SubpassData</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant vector <span class=\"eq\">(0,0)</span>, or if a layer coordinate is used, <strong class=\"purple\">must</strong> be a vector that was formed with constant 0 for the <span class=\"eq\">u</span> and <span class=\"eq\">v</span> components"
+          "text": "The <span class=\"eq\">(u,v)</span> coordinates used for a <code>SubpassData</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant vector <span class=\"eq\">(0,0)</span>, or if a layer coordinate is used, <strong class=\"purple\">must</strong> be a vector that was formed with constant 0 for the <span class=\"eq\">u</span> and <span class=\"eq\">v</span> components",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeImage-06924",
-          "text": " Objects of types <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, <code>OpTypeAccelerationStructureKHR</code>, and arrays of these types <strong class=\"purple\">must</strong> not be stored to or modified"
+          "text": "Objects of types <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, <code>OpTypeAccelerationStructureKHR</code>, and arrays of these types <strong class=\"purple\">must</strong> not be stored to or modified",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Uniform-06925",
-          "text": " Any variable in the <code>Uniform</code> storage class decorated as <code>Block</code> <strong class=\"purple\">must</strong> not be stored to or modified"
-        },
-        {
-          "vuid": "VUID-StandaloneSpirv-Offset-04662",
-          "text": " Any image operation <strong class=\"purple\">must</strong> use at most one of the <code>Offset</code>, <code>ConstOffset</code>, and <code>ConstOffsets</code> image operands"
+          "text": "Any variable in the <code>Uniform</code> <code>Storage</code> <code>Class</code> decorated as <code>Block</code> <strong class=\"purple\">must</strong> not be stored to or modified",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04663",
-          "text": " Image operand <code>Offset</code> <strong class=\"purple\">must</strong> only be used with <code>OpImage*Gather</code> instructions"
+          "text": "Image operand <code>Offset</code> <strong class=\"purple\">must</strong> only be used with <code>OpImage*Gather</code> instructions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04865",
-          "text": " Any image instruction which uses an <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> image operand, must only consume a &#8220;Sampled Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1"
+          "text": "Any image instruction which uses an <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> image operand, must only consume a &#8220;Sampled Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpImageGather-04664",
-          "text": " The &#8220;Component&#8221; operand of <code>OpImageGather</code>, and <code>OpImageSparseGather</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant instruction"
+          "text": "The &#8220;Component&#8221; operand of <code>OpImageGather</code>, and <code>OpImageSparseGather</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant instruction",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpImage-04777",
-          "text": " <code>OpImage*Dref*</code> instructions <strong class=\"purple\">must</strong> not consume an image whose <code>Dim</code> is 3D"
+          "text": "<code>OpImage*Dref*</code> instructions <strong class=\"purple\">must</strong> not consume an image whose <code>Dim</code> is 3D",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04667",
-          "text": " Structure types <strong class=\"purple\">must</strong> not contain opaque types"
+          "text": "Structure types <strong class=\"purple\">must</strong> not contain opaque types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-BuiltIn-04668",
-          "text": " Any <code>BuiltIn</code> decoration not listed in <a href=\"#interfaces-builtin-variables\">Built-In Variables</a> <strong class=\"purple\">must</strong> not be used"
+          "text": "Any <code>BuiltIn</code> decoration not listed in <a href=\"#interfaces-builtin-variables\">Built-In Variables</a> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-06672",
-          "text": " The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> only be used with the <code>Input</code>, <code>Output</code>, <code>RayPayloadKHR</code>, <code>IncomingRayPayloadKHR</code>, <code>HitAttributeKHR</code>, <code>HitObjectAttributeNV</code>, <code>CallableDataKHR</code>, <code>IncomingCallableDataKHR</code>, or <code>ShaderRecordBufferKHR</code> storage classes"
+          "text": "The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> only be used with the <code>Input</code>, <code>Output</code>, <code>RayPayloadKHR</code>, <code>IncomingRayPayloadKHR</code>, <code>HitAttributeKHR</code>, <code>HitObjectAttributeNV</code>, <code>CallableDataKHR</code>, <code>IncomingCallableDataKHR</code>, or <code>ShaderRecordBufferKHR</code> storage classes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-04915",
-          "text": " The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used with <code>BuiltIn</code>"
+          "text": "The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used with <code>BuiltIn</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-04916",
-          "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a>"
+          "text": "The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-04917",
-          "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on an <code>OpVariable</code> with a structure type that is not a block"
+          "text": "If a <a href=\"#interfaces-iointerfaces-user\">user-defined variable</a> is not a pointer to a <code>Block</code> decorated <code>OpTypeStruct</code>, then the <code>OpVariable</code> <strong class=\"purple\">must</strong> have a <code>Location</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-04918",
-          "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> not be used on the members of <code>OpVariable</code> with a structure type that is decorated with <code>Location</code>"
+          "text": "If a <a href=\"#interfaces-iointerfaces-user\">user-defined variable</a> has a <code>Location</code> decoration, and the variable is a pointer to a <code>OpTypeStruct</code>, then the members of that structure <strong class=\"purple\">must</strong> not have <code>Location</code> decorations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Location-04919",
-          "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on each member of <code>OpVariable</code> with a structure type that is a block not decorated with <code>Location</code>"
+          "text": "If a <a href=\"#interfaces-iointerfaces-user\">user-defined variable</a> does not have a <code>Location</code> decoration, and the variable is a pointer to a <code>Block</code> decorated <code>OpTypeStruct</code>, then each member of the struct <strong class=\"purple\">must</strong> have a <code>Location</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-04920",
-          "text": " The <code>Component</code> decoration value <strong class=\"purple\">must</strong> not be greater than 3"
+          "text": "The <code>Component</code> decoration value <strong class=\"purple\">must</strong> not be greater than 3",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-04921",
-          "text": " If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is less than or equal to 32, the sum of its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than or equal to 4"
+          "text": "If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is less than or equal to 32, the sum of its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than or equal to 4",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-04922",
-          "text": " If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is equal to 64, the sum of two times its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than or equal to 4"
+          "text": "If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is equal to 64, the sum of two times its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than or equal to 4",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-04923",
-          "text": " The <code>Component</code> decorations value <strong class=\"purple\">must</strong> not be 1 or 3 for scalar or two-component 64-bit data types"
+          "text": "The <code>Component</code> decorations value <strong class=\"purple\">must</strong> not be 1 or 3 for scalar or two-component 64-bit data types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-04924",
-          "text": " The <code>Component</code> decorations <strong class=\"purple\">must</strong> not used with any type that is not a scalar or vector"
+          "text": "The <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used with any type that is not a scalar or vector, or an array of such a type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Component-07703",
-          "text": " The <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used for a 64-bit vector type with more than two components"
+          "text": "The <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used for a 64-bit vector type with more than two components",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-GLSLShared-04669",
-          "text": " The <code>GLSLShared</code> and <code>GLSLPacked</code> decorations <strong class=\"purple\">must</strong> not be used"
+          "text": "The <code>GLSLShared</code> and <code>GLSLPacked</code> decorations <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Flat-04670",
-          "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> only be used on variables with the <code>Output</code> or <code>Input</code> storage class"
+          "text": "The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> only be used on variables with the <code>Output</code> or <code>Input</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Flat-06201",
-          "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Output</code> storage class in a fragment shader"
+          "text": "The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Output</code> storage class in a fragment shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Flat-06202",
-          "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Input</code> storage class in a vertex shader"
+          "text": "The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Input</code> storage class in a vertex shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PerVertexKHR-06777",
-          "text": " The <code>PerVertexKHR</code> decoration <strong class=\"purple\">must</strong> only be used on variables with the <code>Input</code> storage class in a fragment shader"
+          "text": "The <code>PerVertexKHR</code> decoration <strong class=\"purple\">must</strong> only be used on variables with the <code>Input</code> <code>Storage</code> <code>Class</code> in a fragment shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Flat-04744",
-          "text": " Any variable with integer or double-precision floating-point type and with <code>Input</code> storage class in a fragment shader, <strong class=\"purple\">must</strong> be decorated <code>Flat</code>"
+          "text": "Any variable with integer or double-precision floating-point type and with <code>Input</code> <code>Storage</code> <code>Class</code> in a fragment shader, <strong class=\"purple\">must</strong> be decorated <code>Flat</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04672",
-          "text": " The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> only be used on a variable decorated with <code>Layer</code> in the vertex, tessellation evaluation, or geometry shader stages"
+          "text": "The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> only be used on a variable decorated with <code>Layer</code> in the vertex, tessellation evaluation, or geometry shader stages",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04673",
-          "text": " The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> not be used unless a variable decorated with one of <code>ViewportIndex</code> or <code>ViewportMaskNV</code> is also statically used by the same <code>OpEntryPoint</code>"
+          "text": "The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> not be used unless a variable decorated with one of <code>ViewportIndex</code> or <code>ViewportMaskNV</code> is also statically used by the same <code>OpEntryPoint</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-ViewportMaskNV-04674",
-          "text": " The <code>ViewportMaskNV</code> and <code>ViewportIndex</code> decorations <strong class=\"purple\">must</strong> not both be statically used by one or more <code>OpEntryPoint</code>&#8217;s that form the <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stages</a> of a graphics pipeline"
+          "text": "The <code>ViewportMaskNV</code> and <code>ViewportIndex</code> decorations <strong class=\"purple\">must</strong> not both be statically used by one or more <code>OpEntryPoint</code>&#8217;s that form the <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stages</a> of a graphics pipeline",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04675",
-          "text": " Rounding modes other than round-to-nearest-even and round-towards-zero <strong class=\"purple\">must</strong> not be used for the <code>FPRoundingMode</code> decoration"
+          "text": "Rounding modes other than round-to-nearest-even and round-towards-zero <strong class=\"purple\">must</strong> not be used for the <code>FPRoundingMode</code> decoration",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Invariant-04677",
-          "text": " Variables decorated with <code>Invariant</code> and variables with structure types that have any members decorated with <code>Invariant</code> <strong class=\"purple\">must</strong> be in the <code>Output</code> or <code>Input</code> storage class, <code>Invariant</code> used on an <code>Input</code> storage class variable or structure member has no effect"
+          "text": "Variables decorated with <code>Invariant</code> and variables with structure types that have any members decorated with <code>Invariant</code> <strong class=\"purple\">must</strong> be in the <code>Output</code> or <code>Input</code> <code>Storage</code> <code>Class</code>, <code>Invariant</code> used on an <code>Input</code> <code>Storage</code> <code>Class</code> variable or structure member has no effect",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04678",
-          "text": " <a id=\"builtin-volatile-semantics\"></a> If the <code>VulkanMemoryModel</code> capability is not declared, the <code>Volatile</code> decoration <strong class=\"purple\">must</strong> be used on any variable declaration that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader"
+          "text": "<a id=\"builtin-volatile-semantics\"></a> If the <code>VulkanMemoryModel</code> capability is not declared, the <code>Volatile</code> decoration <strong class=\"purple\">must</strong> be used on any variable declaration that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04679",
-          "text": " If the <code>VulkanMemoryModel</code> capability is declared, the <code>OpLoad</code> instruction <strong class=\"purple\">must</strong> use the <code>Volatile</code> memory semantics when it accesses into any variable that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader"
+          "text": "If the <code>VulkanMemoryModel</code> capability is declared, the <code>OpLoad</code> instruction <strong class=\"purple\">must</strong> use the <code>Volatile</code> memory semantics when it accesses into any variable that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeRuntimeArray-04680",
-          "text": " <code>OpTypeRuntimeArray</code> <strong class=\"purple\">must</strong> only be used for the last member of a <code>Block</code>-decorated <code>OpTypeStruct</code> in <code>StorageBuffer</code> or <code>PhysicalStorageBuffer</code> storage classes; <code>BufferBlock</code>-decorated <code>OpTypeStruct</code> in <code>Uniform</code> storage class; the outermost dimension of an arrayed variable in the <code>StorageBuffer</code>, <code>Uniform</code>, or <code>UniformConstant</code> storage classes"
+          "text": "<code>OpTypeRuntimeArray</code> <strong class=\"purple\">must</strong> only be used for:<div class=\"ulist\">\n<ul>\n<li>\n<p>the last member of a <code>Block</code>-decorated <code>OpTypeStruct</code> in\n<code>StorageBuffer</code> or <code>PhysicalStorageBuffer</code> storage <code>Storage</code> <code>Class</code></p>\n</li>\n<li>\n<p><code>BufferBlock</code>-decorated <code>OpTypeStruct</code> in the <code>Uniform</code>\nstorage <code>Storage</code> <code>Class</code></p>\n</li>\n<li>\n<p>the outermost dimension of an arrayed variable in the\n<code>StorageBuffer</code>, <code>Uniform</code>, or <code>UniformConstant</code> storage\n<code>Storage</code> <code>Class</code></p>\n</li>\n<li>\n<p>variables in the <code>NodePayloadAMDX</code> storage <code>Storage</code> <code>Class</code> when the\n<code>CoalescingAMDX</code> <code>Execution</code> <code>Mode</code> is specified</p>\n</li>\n</ul>\n</div>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Function-04681",
-          "text": " A type <em>T</em> that is an array sized with a specialization constant <strong class=\"purple\">must</strong> neither be, nor be contained in, the type <em>T2</em> of a variable <em>V</em>, unless either: a) <em>T</em> is equal to <em>T2</em>, b) <em>V</em> is declared in the <code>Function</code>, or <code>Private</code> storage classes, c) <em>V</em> is a non-Block variable in the <code>Workgroup</code> storage class, or d) <em>V</em> is an interface variable with an additional level of arrayness, <a href=\"#interfaces-iointerfaces-matching\">as described in interface matching</a>, and <em>T</em> is the member type of the array type <em>T2</em>"
+          "text": "A type <em>T</em> that is an array sized with a specialization constant <strong class=\"purple\">must</strong> neither be, nor be contained in, the type <em>T2</em> of a variable <em>V</em>, unless either: a) <em>T</em> is equal to <em>T2</em>, b) <em>V</em> is declared in the <code>Function</code>, or <code>Private</code> <code>Storage</code> <code>Class</code>, c) <em>V</em> is a non-Block variable in the <code>Workgroup</code> <code>Storage</code> <code>Class</code>, or d) <em>V</em> is an interface variable with an additional level of arrayness, <a href=\"#interfaces-iointerfaces-matching\">as described in interface matching</a>, and <em>T</em> is the member type of the array type <em>T2</em>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04682",
-          "text": " If <code>OpControlBarrier</code> is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope <strong class=\"purple\">must</strong> be <code>Subgroup</code>"
+          "text": "If <code>OpControlBarrier</code> is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope <strong class=\"purple\">must</strong> be <code>Subgroup</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-LocalSize-06426",
-          "text": " For each compute shader entry point, either a <code>LocalSize</code> or <code>LocalSizeId</code> execution mode, or an object decorated with the <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be specified"
+          "text": "For each compute shader entry point, either a <code>LocalSize</code> or <code>LocalSizeId</code> <code>Execution</code> <code>Mode</code>, or an object decorated with the <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be specified",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684",
-          "text": " For compute shaders using the <code>DerivativeGroupQuadsNV</code> execution mode, the first two dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of two"
+          "text": "For compute shaders using the <code>DerivativeGroupQuadsNV</code> execution mode, the first two dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of two",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778",
-          "text": " For compute shaders using the <code>DerivativeGroupLinearNV</code> execution mode, the product of the dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of four"
+          "text": "For compute shaders using the <code>DerivativeGroupLinearNV</code> execution mode, the product of the dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of four",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685",
-          "text": " If <code>OpGroupNonUniformBallotBitCount</code> is used, the group operation <strong class=\"purple\">must</strong> be limited to <strong>Reduce</strong>, <strong>InclusiveScan</strong>, or <strong>ExclusiveScan</strong>"
+          "text": "If <code>OpGroupNonUniformBallotBitCount</code> is used, the group operation <strong class=\"purple\">must</strong> be limited to <code>Reduce</code>, <code>InclusiveScan</code>, or <code>ExclusiveScan</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04686",
-          "text": " The <em>Pointer</em> operand of all atomic instructions <strong class=\"purple\">must</strong> have a <strong>Storage Class</strong> limited to <strong>Uniform</strong>, <strong>Workgroup</strong>, <strong>Image</strong>, <strong>StorageBuffer</strong>, <strong>PhysicalStorageBuffer</strong>, or <strong>TaskPayloadWorkgroupEXT</strong>"
+          "text": "The <em>Pointer</em> operand of all atomic instructions <strong class=\"purple\">must</strong> have a <code>Storage</code> <code>Class</code> limited to <code>Uniform</code>, <code>Workgroup</code>, <code>Image</code>, <code>StorageBuffer</code>, <code>PhysicalStorageBuffer</code>, or <code>TaskPayloadWorkgroupEXT</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04687",
-          "text": " Output variables or block members decorated with <code>Offset</code> that have a 64-bit type, or a composite type containing a 64-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 8 byte boundary"
+          "text": "Output variables or block members decorated with <code>Offset</code> that have a 64-bit type, or a composite type containing a 64-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 8 byte boundary",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04689",
-          "text": " The size of any output block containing any member decorated with <code>Offset</code> that is a 64-bit type <strong class=\"purple\">must</strong> be a multiple of 8"
+          "text": "The size of any output block containing any member decorated with <code>Offset</code> that is a 64-bit type <strong class=\"purple\">must</strong> be a multiple of 8",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04690",
-          "text": " The first member of an output block specifying a <code>Offset</code> decoration <strong class=\"purple\">must</strong> specify a <code>Offset</code> value that is aligned to an 8 byte boundary if that block contains any member decorated with <code>Offset</code> and is a 64-bit type"
+          "text": "The first member of an output block specifying a <code>Offset</code> decoration <strong class=\"purple\">must</strong> specify a <code>Offset</code> value that is aligned to an 8 byte boundary if that block contains any member decorated with <code>Offset</code> and is a 64-bit type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04691",
-          "text": " Output variables or block members decorated with <code>Offset</code> that have a 32-bit type, or a composite type contains a 32-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 4 byte boundary"
+          "text": "Output variables or block members decorated with <code>Offset</code> that have a 32-bit type, or a composite type contains a 32-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 4 byte boundary",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04692",
-          "text": " Output variables, blocks or block members decorated with <code>Offset</code> <strong class=\"purple\">must</strong> only contain base types that have components that are either 32-bit or 64-bit in size"
+          "text": "Output variables, blocks or block members decorated with <code>Offset</code> <strong class=\"purple\">must</strong> only contain base types that have components that are either 32-bit or 64-bit in size",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Offset-04716",
-          "text": " Only variables or block members in the output interface decorated with <code>Offset</code> <strong class=\"purple\">can</strong> be captured for transform feedback, and those variables or block members <strong class=\"purple\">must</strong> also be decorated with <code>XfbBuffer</code> and <code>XfbStride</code>, or inherit <code>XfbBuffer</code> and <code>XfbStride</code> decorations from a block containing them"
+          "text": "Only variables or block members in the output interface decorated with <code>Offset</code> <strong class=\"purple\">can</strong> be captured for transform feedback, and those variables or block members <strong class=\"purple\">must</strong> also be decorated with <code>XfbBuffer</code> and <code>XfbStride</code>, or inherit <code>XfbBuffer</code> and <code>XfbStride</code> decorations from a block containing them",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-XfbBuffer-04693",
-          "text": " All variables or block members in the output interface of the entry point being compiled decorated with a specific <code>XfbBuffer</code> value <strong class=\"purple\">must</strong> all be decorated with identical <code>XfbStride</code> values"
+          "text": "All variables or block members in the output interface of the entry point being compiled decorated with a specific <code>XfbBuffer</code> value <strong class=\"purple\">must</strong> all be decorated with identical <code>XfbStride</code> values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Stream-04694",
-          "text": " If any variables or block members in the output interface of the entry point being compiled are decorated with <code>Stream</code>, then all variables belonging to the same <code>XfbBuffer</code> <strong class=\"purple\">must</strong> specify the same <code>Stream</code> value"
+          "text": "If any variables or block members in the output interface of the entry point being compiled are decorated with <code>Stream</code>, then all variables belonging to the same <code>XfbBuffer</code> <strong class=\"purple\">must</strong> specify the same <code>Stream</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-XfbBuffer-04696",
-          "text": " For any two variables or block members in the output interface of the entry point being compiled with the same <code>XfbBuffer</code> value, the ranges determined by the <code>Offset</code> decoration and the size of the type <strong class=\"purple\">must</strong> not overlap"
+          "text": "For any two variables or block members in the output interface of the entry point being compiled with the same <code>XfbBuffer</code> value, the ranges determined by the <code>Offset</code> decoration and the size of the type <strong class=\"purple\">must</strong> not overlap",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-XfbBuffer-04697",
-          "text": " All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited <code>XfbBuffer</code> decoration <strong class=\"purple\">must</strong> specify the same <code>XfbBuffer</code> value"
+          "text": "All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited <code>XfbBuffer</code> decoration <strong class=\"purple\">must</strong> specify the same <code>XfbBuffer</code> value",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-RayPayloadKHR-04698",
-          "text": " <code>RayPayloadKHR</code> storage class <strong class=\"purple\">must</strong> only be used in ray generation, closest hit or miss shaders"
+          "text": "<code>RayPayloadKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in ray generation, closest hit or miss shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699",
-          "text": " <code>IncomingRayPayloadKHR</code> storage class <strong class=\"purple\">must</strong> only be used in closest hit, any-hit, or miss shaders"
+          "text": "<code>IncomingRayPayloadKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in closest hit, any-hit, or miss shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700",
-          "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingRayPayloadKHR</code> storage class in the input interface of an entry point"
+          "text": "There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingRayPayloadKHR</code> <code>Storage</code> <code>Class</code> in the input interface of an entry point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04701",
-          "text": " <code>HitAttributeKHR</code> storage class <strong class=\"purple\">must</strong> only be used in intersection, any-hit, or closest hit shaders"
+          "text": "<code>HitAttributeKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in intersection, any-hit, or closest hit shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04702",
-          "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>HitAttributeKHR</code> storage class in the input interface of an entry point"
+          "text": "There <strong class=\"purple\">must</strong> be at most one variable with the <code>HitAttributeKHR</code> <code>Storage</code> <code>Class</code> in the input interface of an entry point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04703",
-          "text": " A variable with <code>HitAttributeKHR</code> storage class <strong class=\"purple\">must</strong> only be written to in an intersection shader"
+          "text": "A variable with <code>HitAttributeKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be written to in an intersection shader",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-CallableDataKHR-04704",
-          "text": " <code>CallableDataKHR</code> storage class <strong class=\"purple\">must</strong> only be used in ray generation, closest hit, miss, and callable shaders"
+          "text": "<code>CallableDataKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in ray generation, closest hit, miss, and callable shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04705",
-          "text": " <code>IncomingCallableDataKHR</code> storage class <strong class=\"purple\">must</strong> only be used in callable shaders"
+          "text": "<code>IncomingCallableDataKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in callable shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04706",
-          "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingCallableDataKHR</code> storage class in the input interface of an entry point"
+          "text": "There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingCallableDataKHR</code> <code>Storage</code> <code>Class</code> in the input interface of an entry point",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-ShaderRecordBufferKHR-07119",
-          "text": " <code>ShaderRecordBufferKHR</code> storage class <strong class=\"purple\">must</strong> only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders"
+          "text": "<code>ShaderRecordBufferKHR</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Base-07650",
-          "text": " The <code>Base</code> operand of <code>OpPtrAccessChain</code> <strong class=\"purple\">must</strong> have a storage class of <strong>Workgroup</strong>, <strong>StorageBuffer</strong>, or <strong>PhysicalStorageBuffer</strong>"
+          "text": "The <code>Base</code> operand of <code>OpPtrAccessChain</code> <strong class=\"purple\">must</strong> have a storage class of <code>Workgroup</code>, <code>StorageBuffer</code>, or <code>PhysicalStorageBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Base-07651",
-          "text": " If the <code>Base</code> operand of <code>OpPtrAccessChain</code> has a <strong>Workgroup</strong> storage class, then the <code>VariablePointers</code> capability <strong class=\"purple\">must</strong> be declared"
+          "text": "If the <code>Base</code> operand of <code>OpPtrAccessChain</code> has a <code>Workgroup</code> <code>Storage</code> <code>Class</code>, then the <code>VariablePointers</code> capability <strong class=\"purple\">must</strong> be declared",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Base-07652",
-          "text": " If the <code>Base</code> operand of <code>OpPtrAccessChain</code> has a <strong>StorageBuffer</strong> storage class, then the <code>VariablePointers</code> or <code>VariablePointersStorageBuffer</code> capability <strong class=\"purple\">must</strong> be declared"
+          "text": "If the <code>Base</code> operand of <code>OpPtrAccessChain</code> has a <code>StorageBuffer</code> <code>Storage</code> <code>Class</code>, then the <code>VariablePointers</code> or <code>VariablePointersStorageBuffer</code> capability <strong class=\"purple\">must</strong> be declared",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708",
-          "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, all instructions that support memory access operands and that use a physical pointer <strong class=\"purple\">must</strong> include the <code>Aligned</code> operand"
+          "text": "If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, all instructions that support memory access operands and that use a physical pointer <strong class=\"purple\">must</strong> include the <code>Aligned</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709",
-          "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, any access chain instruction that accesses into a <code>RowMajor</code> matrix <strong class=\"purple\">must</strong> only be used as the <code>Pointer</code> operand to <code>OpLoad</code> or <code>OpStore</code>"
+          "text": "If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, any access chain instruction that accesses into a <code>RowMajor</code> matrix <strong class=\"purple\">must</strong> only be used as the <code>Pointer</code> operand to <code>OpLoad</code> or <code>OpStore</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710",
-          "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, <code>OpConvertUToPtr</code> and <code>OpConvertPtrToU</code> <strong class=\"purple\">must</strong> use an integer type whose <code>Width</code> is 64"
+          "text": "If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, <code>OpConvertUToPtr</code> and <code>OpConvertPtrToU</code> <strong class=\"purple\">must</strong> use an integer type whose <code>Width</code> is 64",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpTypeForwardPointer-04711",
-          "text": " <code>OpTypeForwardPointer</code> <strong class=\"purple\">must</strong> have a storage class of <code>PhysicalStorageBuffer</code>"
+          "text": "<code>OpTypeForwardPointer</code> <strong class=\"purple\">must</strong> have a <code>Storage</code> <code>Class</code> of <code>PhysicalStorageBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-None-04745",
-          "text": " All block members in a variable with a storage class of <strong>PushConstant</strong> declared as an array <strong class=\"purple\">must</strong> only be accessed by dynamically uniform indices"
+          "text": "All block members in a variable with a <code>Storage</code> <code>Class</code> of <code>PushConstant</code> declared as an array <strong class=\"purple\">must</strong> only be accessed by dynamically uniform indices",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpVariable-06673",
-          "text": " There <strong class=\"purple\">must</strong> not be more than one <code>OpVariable</code> in the <code>PushConstant</code> storage class listed in the <code>Interface</code> for each <code>OpEntryPoint</code>"
+          "text": "There <strong class=\"purple\">must</strong> not be more than one <code>OpVariable</code> in the <code>PushConstant</code> <code>Storage</code> <code>Class</code> listed in the <code>Interface</code> for each <code>OpEntryPoint</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-OpEntryPoint-06674",
-          "text": " Each <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not statically use more than one <code>OpVariable</code> in the <code>PushConstant</code> storage class"
+          "text": "Each <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not statically use more than one <code>OpVariable</code> in the <code>PushConstant</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-OpEntryPoint-08721",
+          "text": "Each <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not have more than one <code>Input</code> variable assigned the same <code>Component</code> word inside a <code>Location</code> slot, either explicitly or implicitly",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-OpEntryPoint-08722",
+          "text": "Each <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not have more than one <code>Output</code> variable assigned the same <code>Component</code> word inside a <code>Location</code> slot, either explicitly or implicitly",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Result-04780",
-          "text": " The <code>Result</code> <code>Type</code> operand of any <code>OpImageRead</code> or <code>OpImageSparseRead</code> instruction <strong class=\"purple\">must</strong> be a vector of four components"
+          "text": "The <code>Result</code> <code>Type</code> operand of any <code>OpImageRead</code> or <code>OpImageSparseRead</code> instruction <strong class=\"purple\">must</strong> be a vector of four components",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Base-04781",
-          "text": " The <code>Base</code> operand of any <code>OpBitCount</code>, <code>OpBitReverse</code>, <code>OpBitFieldInsert</code>, <code>OpBitFieldSExtract</code>, or <code>OpBitFieldUExtract</code> instruction <strong class=\"purple\">must</strong> be a 32-bit integer scalar or a vector of 32-bit integers"
+          "text": "The <code>Base</code> operand of any <code>OpBitCount</code>, <code>OpBitReverse</code>, <code>OpBitFieldInsert</code>, <code>OpBitFieldSExtract</code>, or <code>OpBitFieldUExtract</code> instruction <strong class=\"purple\">must</strong> be a 32-bit integer scalar or a vector of 32-bit integers",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-PushConstant-06675",
-          "text": " Any variable in the <code>PushConstant</code> or <code>StorageBuffer</code> storage class <strong class=\"purple\">must</strong> be decorated as <code>Block</code>"
+          "text": "Any variable in the <code>PushConstant</code> or <code>StorageBuffer</code> storage class <strong class=\"purple\">must</strong> be decorated as <code>Block</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Uniform-06676",
-          "text": " Any variable in the <code>Uniform</code> storage class <strong class=\"purple\">must</strong> be decorated as <code>Block</code> or <code>BufferBlock</code>"
+          "text": "Any variable in the <code>Uniform</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be decorated as <code>Block</code> or <code>BufferBlock</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-UniformConstant-06677",
-          "text": " Any variable in the <code>UniformConstant</code>, <code>StorageBuffer</code>, or <code>Uniform</code> storage class <strong class=\"purple\">must</strong> be decorated with <code>DescriptorSet</code> and <code>Binding</code>"
+          "text": "Any variable in the <code>UniformConstant</code>, <code>StorageBuffer</code>, or <code>Uniform</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> be decorated with <code>DescriptorSet</code> and <code>Binding</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-InputAttachmentIndex-06678",
-          "text": " Variables decorated with <code>InputAttachmentIndex</code> <strong class=\"purple\">must</strong> be in the <code>UniformConstant</code> storage class"
+          "text": "Variables decorated with <code>InputAttachmentIndex</code> <strong class=\"purple\">must</strong> be in the <code>UniformConstant</code> <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-DescriptorSet-06491",
-          "text": " If a variable is decorated by <code>DescriptorSet</code> or <code>Binding</code>, the storage class <strong class=\"purple\">must</strong> correspond to an entry in <a href=\"#interfaces-resources-storage-class-correspondence\">Shader Resource and Storage Class Correspondence</a>"
+          "text": "If a variable is decorated by <code>DescriptorSet</code> or <code>Binding</code>, the <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> correspond to an entry in <a href=\"#interfaces-resources-storage-class-correspondence\">Shader Resource and Storage Class Correspondence</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Input-06778",
-          "text": " Variables with a storage class of <code>Input</code> in a fragment shader stage that are decorated with <code>PerVertexKHR</code> <strong class=\"purple\">must</strong> be declared as arrays"
+          "text": "Variables with a <code>Storage</code> <code>Class</code> of <code>Input</code> in a fragment shader stage that are decorated with <code>PerVertexKHR</code> <strong class=\"purple\">must</strong> be declared as arrays",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07102",
-          "text": " The module <strong class=\"purple\">must</strong> not contain both an entry point that uses the <code>TaskEXT</code> or <code>MeshEXT</code> {ExecutionModel} and an entry point that uses the <code>TaskNV</code> or <code>MeshNV</code> {ExecutionModel}"
+          "text": "The module <strong class=\"purple\">must</strong> not contain both an entry point that uses the <code>TaskEXT</code> or <code>MeshEXT</code> <code>Execution</code> <code>Model</code> and an entry point that uses the <code>TaskNV</code> or <code>MeshNV</code> <code>Execution</code> <code>Model</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07106",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be called before any outputs are written"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be called before any outputs are written",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07107",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} all variables declared as output <strong class=\"purple\">must</strong> not be read from"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> all variables declared as output <strong class=\"purple\">must</strong> not be read from",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07108",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} for <code>OpSetMeshOutputsEXT</code> instructions, the &#8220;Vertex Count&#8221; and &#8220;Primitive Count&#8221; operands <strong class=\"purple\">must</strong> not depend on <code>ViewIndex</code>"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> for <code>OpSetMeshOutputsEXT</code> instructions, the &#8220;Vertex Count&#8221; and &#8220;Primitive Count&#8221; operands <strong class=\"purple\">must</strong> not depend on <code>ViewIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07109",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} variables decorated with <code>PrimitivePointIndicesEXT</code>, <code>PrimitiveLineIndicesEXT</code>, or <code>PrimitiveTriangleIndicesEXT</code> declared as an array <strong class=\"purple\">must</strong> not be accessed by indices that depend on <code>ViewIndex</code>"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> variables decorated with <code>PrimitivePointIndicesEXT</code>, <code>PrimitiveLineIndicesEXT</code>, or <code>PrimitiveTriangleIndicesEXT</code> declared as an array <strong class=\"purple\">must</strong> not be accessed by indices that depend on <code>ViewIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07110",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} any values stored in variables decorated with <code>PrimitivePointIndicesEXT</code>, <code>PrimitiveLineIndicesEXT</code>, or <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> not depend on <code>ViewIndex</code>"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> any values stored in variables decorated with <code>PrimitivePointIndicesEXT</code>, <code>PrimitiveLineIndicesEXT</code>, or <code>PrimitiveTriangleIndicesEXT</code> <strong class=\"purple\">must</strong> not depend on <code>ViewIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07111",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} variables in workgroup or private storage class declared as or containing a composite type <strong class=\"purple\">must</strong> not be accessed by indices that depend on <code>ViewIndex</code>"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> variables in workgroup or private <code>Storage</code> <code>Class</code> declared as or containing a composite type <strong class=\"purple\">must</strong> not be accessed by indices that depend on <code>ViewIndex</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07330",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>OutputVertices</code> {ExecutionMode} <strong class=\"purple\">must</strong> be greater than 0"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>OutputVertices</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-MeshEXT-07331",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>OutputPrimitivesEXT</code> {ExecutionMode} <strong class=\"purple\">must</strong> be greater than 0"
-        },
-        {
-          "vuid": "VUID-StandaloneSpirv-MeshEXT-07728",
-          "text": " In mesh shaders using the <code>MeshEXT</code> or <code>MeshNV</code> {ExecutionModel} and the <code>OutputPoints</code> {ExecutionMode}, if the number of output points is greater than 0, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to for each output point"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>OutputPrimitivesEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> be greater than 0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-StandaloneSpirv-Input-07290",
-          "text": " Variables with a storage class of <code>Input</code> or <code>Output</code> and a type of <code>OpTypeBool</code> <strong class=\"purple\">must</strong> be decorated with the <code>BuiltIn</code> decoration"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "Variables with a <code>Storage</code> <code>Class</code> of <code>Input</code> or <code>Output</code> and a type of <code>OpTypeBool</code> <strong class=\"purple\">must</strong> be decorated with the <code>BuiltIn</code> decoration",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-StandaloneSpirv-None-04642",
-          "text": " <strong>Scope</strong> for <a href=\"#shaders-group-operations\">group operations</a> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong>"
-        }
-      ],
-      "!(VK_VERSION_1_1)": [
+          "vuid": "VUID-StandaloneSpirv-TileImageEXT-08723",
+          "text": "The tile image variable declarations <strong class=\"purple\">must</strong> obey the constraints on the <code>TileImageEXT</code> <code>Storage</code> <code>Class</code> and the <code>Location</code> decoration described in <a href=\"#interfaces-fragmenttileimage\">Fragment Tile Image Interface</a>",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-StandaloneSpirv-SubgroupVoteKHR-06997",
-          "text": " If the <code>SubgroupVoteKHR</code> or <code>SubgroupBallotKHR</code> capability is not declared, <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> not be <strong>Subgroup</strong>"
+          "vuid": "VUID-StandaloneSpirv-None-08724",
+          "text": "The <code>TileImageEXT</code> <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> only be used for declaring tile image variables.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-StandaloneSpirv-Pointer-08973",
+          "text": "The <code>Storage</code> <code>Class</code> of the <code>Pointer</code> operand to <code>OpCooperativeMatrixLoadKHR</code> or <code>OpCooperativeMatrixStoreKHR</code> <strong class=\"purple\">must</strong> be limited to <code>Workgroup</code>, <code>StorageBuffer</code>, or <code>PhysicalStorageBuffer</code>.",
+          "page": "vkspec"
         }
       ]
     },
     "RuntimeSpirv": {
-      "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [
+      "core": [
         {
           "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06265",
-          "text": " If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is enabled and <a href=\"#features-vulkanMemoryModelDeviceScope\"><code>vulkanMemoryModelDeviceScope</code></a> is not enabled, <strong>Device</strong> memory scope <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is enabled and <a href=\"#features-vulkanMemoryModelDeviceScope\"><code>vulkanMemoryModelDeviceScope</code></a> is not enabled, <code>Device</code> memory scope <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06266",
-          "text": " If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is not enabled, <strong>QueueFamily</strong> memory scope <strong class=\"purple\">must</strong> not be used"
-        }
-      ],
-      "(VK_KHR_shader_clock)": [
+          "text": "If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is not enabled, <code>QueueFamily</code> memory scope <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-shaderSubgroupClock-06267",
-          "text": " If <a href=\"#features-shaderSubgroupClock\"><code>shaderSubgroupClock</code></a> is not enabled, the <code>Subgroup</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>"
+          "text": "If <a href=\"#features-shaderSubgroupClock\"><code>shaderSubgroupClock</code></a> is not enabled, the <code>Subgroup</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDeviceClock-06268",
-          "text": " If <a href=\"#features-shaderDeviceClock\"><code>shaderDeviceClock</code></a> is not enabled, the <code>Device</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
-        {
-          "vuid": "VUID-RuntimeSpirv-OpTypeImage-06269",
-          "text": " If <a href=\"#features-shaderStorageImageWriteWithoutFormat\"><code>shaderStorageImageWriteWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>"
+          "text": "If <a href=\"#features-shaderDeviceClock\"><code>shaderDeviceClock</code></a> is not enabled, the <code>Device</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-RuntimeSpirv-OpTypeImage-06270",
-          "text": " If <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>"
-        }
-      ],
-      "core": [
+          "vuid": "VUID-RuntimeSpirv-apiVersion-07954",
+          "text": "If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not supported, and <a href=\"#features-shaderStorageImageWriteWithoutFormat\"><code>shaderStorageImageWriteWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-apiVersion-07955",
+          "text": "If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not supported, and <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageWrite-07112",
-          "text": " <code>OpImageWrite</code> to any <code>Image</code> whose <code>Image</code> <code>Format</code> is not <code>Unknown</code> <strong class=\"purple\">must</strong> have the <code>Texel</code> operand contain at least as many components as the corresponding <a href=\"#VkFormat\">VkFormat</a> as given in the <a href=\"#spirvenv-image-formats\">SPIR-V Image Format compatibility table</a>"
+          "text": "<code>OpImageWrite</code> to any <code>Image</code> whose <code>Image</code> <code>Format</code> is not <code>Unknown</code> <strong class=\"purple\">must</strong> have the <code>Texel</code> operand contain at least as many components as the corresponding <a href=\"#VkFormat\">VkFormat</a> as given in the <a href=\"#spirvenv-image-formats\">SPIR-V Image Format compatibility table</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-Location-06272",
-          "text": " The sum of <code>Location</code> and the number of locations the variable it decorates consumes <strong class=\"purple\">must</strong> be less than or equal to the value for the matching {ExecutionModel} defined in <a href=\"#interfaces-iointerfaces-limits\">Shader Input and Output Locations</a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Fragment-06427",
-          "text": " When blending is enabled and one of the dual source blend modes is in use, the maximum number of output attachments written to in the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>"
+          "text": "The sum of <code>Location</code> and the number of locations the variable it decorates consumes <strong class=\"purple\">must</strong> be less than or equal to the value for the matching <code>Execution</code> <code>Model</code> defined in <a href=\"#interfaces-iointerfaces-limits\">Shader Input and Output Locations</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-Location-06428",
-          "text": " The maximum number of storage buffers, storage images, and output <code>Location</code> decorated color attachments written to in the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentCombinedOutputResources\"><code>maxFragmentCombinedOutputResources</code></a>"
+          "text": "The maximum number of storage buffers, storage images, and output <code>Location</code> decorated color attachments written to in the <code>Fragment</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentCombinedOutputResources\"><code>maxFragmentCombinedOutputResources</code></a>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-RuntimeSpirv-DescriptorSet-06323",
-          "text": " <code>DescriptorSet</code> and <code>Binding</code> decorations <strong class=\"purple\">must</strong> obey the constraints on storage class, type, and descriptor type described in <a href=\"#interfaces-resources-setandbinding\">DescriptorSet and Binding Assignment</a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-NonWritable-06340",
-          "text": " If <a href=\"#features-fragmentStoresAndAtomics\"><code>fragmentStoresAndAtomics</code></a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-NonWritable-06341",
-          "text": " If <a href=\"#features-vertexPipelineStoresAndAtomics\"><code>vertexPipelineStoresAndAtomics</code></a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06342",
-          "text": " If <a href=\"#limits-subgroupQuadOperationsInAllStages\"><code>subgroupQuadOperationsInAllStages</code></a> is <code>VK_FALSE</code>, then <a href=\"#features-subgroup-quad\">quad subgroup operations</a> <strong class=\"purple\">must</strong> not be used except for in fragment and compute stages"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Offset-06344",
-          "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Offset-06345",
-          "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Offset-06346",
-          "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Offset-06347",
-          "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-x-06429",
-          "text": " The <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-y-06430",
-          "text": " The <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-z-06431",
-          "text": " The <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-x-06432",
-          "text": " The product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupInvocations</code>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-OpEntryPoint-07754",
-          "text": " Any <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a> between the <code>OpEntryPoint</code> of two shader stages <strong class=\"purple\">must</strong> have the same type and width for each component"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-Workgroup-06530",
-          "text": " The sum of size in bytes for variables and <a href=\"#limits-maxComputeSharedMemorySize\">padding</a> in the <code>Workgroup</code> storage class in the <code>GLCompute</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxComputeSharedMemorySize\"><code>maxComputeSharedMemorySize</code></a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-OpImage-06376",
-          "text": " If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelGatherOffset\"><code>minTexelGatherOffset</code></a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-OpImage-06377",
-          "text": " If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelGatherOffset\"><code>maxTexelGatherOffset</code></a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-OpImageSample-06435",
-          "text": " If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelOffset\"><code>minTexelOffset</code></a>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-OpImageSample-06436",
-          "text": " If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelOffset\"><code>maxTexelOffset</code></a>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
-        {
           "vuid": "VUID-RuntimeSpirv-NonUniform-06274",
-          "text": " If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) <strong class=\"purple\">must</strong> be decorated with <code>NonUniform</code>"
-        }
-      ],
-      "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [
+          "text": "If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) <strong class=\"purple\">must</strong> be decorated with <code>NonUniform</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-None-06275",
-          "text": " <a href=\"#features-subgroup-extended-types\"><code>shaderSubgroupExtendedTypes</code></a> <strong class=\"purple\">must</strong> be enabled for <a href=\"#shaders-group-operations\">group operations</a> to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types"
-        }
-      ],
-      "(VK_VERSION_1_2)": [
+          "text": "<a href=\"#features-subgroup-extended-types\"><code>shaderSubgroupExtendedTypes</code></a> <strong class=\"purple\">must</strong> be enabled for <a href=\"#shaders-group-operations\">group operations</a> to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276",
-          "text": " If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Index&#8221; for <code>OpGroupNonUniformQuadBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the derivative group. Otherwise, &#8220;Index&#8221; <strong class=\"purple\">must</strong> be a constant"
+          "text": "If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Index&#8221; for <code>OpGroupNonUniformQuadBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the derivative group. Otherwise, &#8220;Index&#8221; <strong class=\"purple\">must</strong> be a constant",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277",
-          "text": " If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Id&#8221; for <code>OpGroupNonUniformBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the subgroup. Otherwise, &#8220;Id&#8221; <strong class=\"purple\">must</strong> be a constant"
-        }
-      ],
-      "(VK_KHR_shader_atomic_int64)": [
+          "text": "If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Id&#8221; for <code>OpGroupNonUniformBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the subgroup. Otherwise, &#8220;Id&#8221; <strong class=\"purple\">must</strong> be a constant",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-None-06278",
-          "text": " <a href=\"#features-shaderBufferInt64Atomics\"><code>shaderBufferInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong> or <strong>Uniform</strong>"
+          "text": "<a href=\"#features-shaderBufferInt64Atomics\"><code>shaderBufferInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>StorageBuffer</code> or <code>Uniform</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-None-06279",
-          "text": " <a href=\"#features-shaderSharedInt64Atomics\"><code>shaderSharedInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>"
-        }
-      ],
-      "(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)": [
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06280",
-          "text": " <a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong>"
+          "text": "<a href=\"#features-shaderSharedInt64Atomics\"><code>shaderSharedInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>Workgroup</code>",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-RuntimeSpirv-None-06281",
-          "text": " <a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06282",
-          "text": " <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a> or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06283",
-          "text": " <a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a> or <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomics to be supported on sparse images"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06335",
-          "text": " <a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating point atomic operations"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06336",
-          "text": " <a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit floating point atomic operations"
-        }
-      ],
-      "(VK_EXT_shader_atomic_float2)": [
-        {
           "vuid": "VUID-RuntimeSpirv-None-06284",
-          "text": " <a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicMinMax\"><code>shaderBufferFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\"><code>shaderBufferFloat64AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong>"
+          "text": "<a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicMinMax\"><code>shaderBufferFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\"><code>shaderBufferFloat64AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>StorageBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-None-06285",
-          "text": " <a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\"><code>shaderSharedFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\"><code>shaderSharedFloat64AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>"
+          "text": "<a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\"><code>shaderSharedFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\"><code>shaderSharedFloat64AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>Workgroup</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-None-06286",
-          "text": " <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>"
+          "text": "<a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>Image</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-None-06287",
-          "text": " <a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a>, or <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a>, or <a href=\"#features-sparseImageFloat32AtomicMinMax\"><code>sparseImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomics to be supported on sparse images"
+          "text": "<a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a>, or <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a>, or <a href=\"#features-sparseImageFloat32AtomicMinMax\"><code>sparseImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomics to be supported on sparse images",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-RuntimeSpirv-None-06337",
-          "text": " <a href=\"#features-shaderBufferFloat16Atomics\"><code>shaderBufferFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicAdd\"><code>shaderBufferFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat16Atomics\"><code>shaderSharedFloat16Atomics</code></a>, or <a href=\"#features-shaderSharedFloat16AtomicAdd\"><code>shaderSharedFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 16-bit floating point atomic operations"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06338",
-          "text": " <a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> or <a href=\"#features-shaderBufferFloat32AtomicMinMax\"><code>shaderBufferFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\"><code>shaderSharedFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating point atomic operations"
-        },
-        {
-          "vuid": "VUID-RuntimeSpirv-None-06339",
-          "text": " <a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\"><code>shaderBufferFloat64AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\"><code>shaderSharedFloat64AtomicMinMax</code></a>, <strong class=\"purple\">must</strong> be enabled for 64-bit floating point atomic operations"
-        }
-      ],
-      "(VK_EXT_shader_image_atomic_int64)": [
-        {
           "vuid": "VUID-RuntimeSpirv-None-06288",
-          "text": " <a href=\"#features-shaderImageInt64Atomics\"><code>shaderImageInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [
+          "text": "<a href=\"#features-shaderImageInt64Atomics\"><code>shaderImageInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <code>Storage</code> <code>Class</code> of <code>Image</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06289",
-          "text": " If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals execution mode for both 16-bit and 64-bit floating-point types"
+          "text": "If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals <code>Execution</code> <code>Mode</code> for both 16-bit and 64-bit floating-point types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06290",
-          "text": " If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals execution mode for all floating-point types"
+          "text": "If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals <code>Execution</code> <code>Mode</code> for all floating-point types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06291",
-          "text": " If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding execution mode for both 16-bit and 64-bit floating-point types"
+          "text": "If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding <code>Execution</code> <code>Mode</code> for both 16-bit and 64-bit floating-point types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06292",
-          "text": " If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding execution mode for all floating-point types"
+          "text": "If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding <code>Execution</code> <code>Mode</code> for all floating-point types",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293",
-          "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat16\"><code>shaderSignedZeroInfNanPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat16\"><code>shaderSignedZeroInfNanPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294",
-          "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat32\"><code>shaderSignedZeroInfNanPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat32\"><code>shaderSignedZeroInfNanPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295",
-          "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat64\"><code>shaderSignedZeroInfNanPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat64\"><code>shaderSignedZeroInfNanPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296",
-          "text": " If <a href=\"#limits-shaderDenormPreserveFloat16\"><code>shaderDenormPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormPreserveFloat16\"><code>shaderDenormPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297",
-          "text": " If <a href=\"#limits-shaderDenormPreserveFloat32\"><code>shaderDenormPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormPreserveFloat32\"><code>shaderDenormPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298",
-          "text": " If <a href=\"#limits-shaderDenormPreserveFloat64\"><code>shaderDenormPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormPreserveFloat64\"><code>shaderDenormPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299",
-          "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat16\"><code>shaderDenormFlushToZeroFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormFlushToZeroFloat16\"><code>shaderDenormFlushToZeroFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300",
-          "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat32\"><code>shaderDenormFlushToZeroFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormFlushToZeroFloat32\"><code>shaderDenormFlushToZeroFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301",
-          "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat64\"><code>shaderDenormFlushToZeroFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderDenormFlushToZeroFloat64\"><code>shaderDenormFlushToZeroFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat16\"><code>shaderRoundingModeRTEFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderRoundingModeRTEFloat16\"><code>shaderRoundingModeRTEFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat32\"><code>shaderRoundingModeRTEFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderRoundingModeRTEFloat32\"><code>shaderRoundingModeRTEFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat64\"><code>shaderRoundingModeRTEFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderRoundingModeRTEFloat64\"><code>shaderRoundingModeRTEFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat16\"><code>shaderRoundingModeRTZFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderRoundingModeRTZFloat16\"><code>shaderRoundingModeRTZFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat32\"><code>shaderRoundingModeRTZFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#limits-shaderRoundingModeRTZFloat32\"><code>shaderRoundingModeRTZFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307",
-          "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat64\"><code>shaderRoundingModeRTZFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used"
-        }
-      ],
-      "(VK_EXT_transform_feedback)": [
+          "text": "If <a href=\"#limits-shaderRoundingModeRTZFloat64\"><code>shaderRoundingModeRTZFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-Offset-06308",
-          "text": " The <code>Offset</code> plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with <code>XfbBuffer</code> <strong class=\"purple\">must</strong> not be greater than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferDataSize</code>"
+          "text": "The <code>Offset</code> plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with <code>XfbBuffer</code> <strong class=\"purple\">must</strong> not be greater than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackBufferDataSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-XfbBuffer-06309",
-          "text": " For any given <code>XfbBuffer</code> value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same <code>XfbBuffer</code> value, the size of the output interface variable plus the <code>Offset</code> is less than or equal to the buffer data size. For a given <code>Stream</code>, the sum of all the buffer data sizes for all buffers writing to that stream the <strong class=\"purple\">must</strong> not exceed <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreamDataSize</code>"
+          "text": "For any given <code>XfbBuffer</code> value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same <code>XfbBuffer</code> value, the size of the output interface variable plus the <code>Offset</code> is less than or equal to the buffer data size. For a given <code>Stream</code>, the sum of all the buffer data sizes for all buffers writing to that stream the <strong class=\"purple\">must</strong> not exceed <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreamDataSize</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpEmitStreamVertex-06310",
-          "text": " The Stream value to <code>OpEmitStreamVertex</code> and <code>OpEndStreamPrimitive</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
+          "text": "The Stream value to <code>OpEmitStreamVertex</code> and <code>OpEndStreamPrimitive</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311",
-          "text": " If the geometry shader emits to more than one vertex stream and <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackStreamsLinesTriangles</code> is <code>VK_FALSE</code>, then execution mode <strong class=\"purple\">must</strong> be <code>OutputPoints</code>"
+          "text": "If the geometry shader emits to more than one vertex stream and <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>transformFeedbackStreamsLinesTriangles</code> is <code>VK_FALSE</code>, then <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> be <code>OutputPoints</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-Stream-06312",
-          "text": " The stream number value to <code>Stream</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
+          "text": "The stream number value to <code>Stream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-XfbStride-06313",
-          "text": " The XFB Stride value to <code>XfbStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferDataStride</code>"
-        }
-      ],
-      "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
+          "text": "The XFB Stride value to <code>XfbStride</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackBufferDataStride</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314",
-          "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled any load or store through a physical pointer type <strong class=\"purple\">must</strong> be aligned to a multiple of the size of the largest scalar type in the pointed-to type"
+          "text": "If the <code>PhysicalStorageBuffer64</code> addressing model is enabled any load or store through a physical pointer type <strong class=\"purple\">must</strong> be aligned to a multiple of the size of the largest scalar type in the pointed-to type",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315",
-          "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled the pointer value of a memory access instruction <strong class=\"purple\">must</strong> be at least as aligned as specified by the <code>Aligned</code> memory access operand"
-        }
-      ],
-      "(VK_NV_cooperative_matrix)": [
+          "text": "If the <code>PhysicalStorageBuffer64</code> addressing model is enabled the pointer value of a memory access instruction <strong class=\"purple\">must</strong> be at least as aligned as specified by the <code>Aligned</code> memory access operand",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316",
-          "text": " For <code>OpTypeCooperativeMatrixNV</code>, the component type, scope, number of rows, and number of columns <strong class=\"purple\">must</strong> match one of the matrices in any of the supported <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>"
+          "text": "For <code>OpTypeCooperativeMatrixNV</code>, the component type, scope, number of rows, and number of columns <strong class=\"purple\">must</strong> match one of the matrices in any of the supported <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317",
-          "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>AType</code>"
+          "text": "For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>AType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318",
-          "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>B</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>BType</code>"
+          "text": "For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>B</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>BType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319",
-          "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>C</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>CType</code>"
+          "text": "For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>C</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>CType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320",
-          "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>Result</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>DType</code>"
+          "text": "For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>Result</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>DType</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321",
-          "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code>, <code>B</code>, <code>C</code>, and <code>Result</code> <strong class=\"purple\">must</strong> all have a scope of <code>scope</code>"
+          "text": "For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code>, <code>B</code>, <code>C</code>, and <code>Result</code> <strong class=\"purple\">must</strong> all have a scope of <code>scope</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322",
-          "text": " <code>OpTypeCooperativeMatrixNV</code> and <code>OpCooperativeMatrix*</code> instructions <strong class=\"purple\">must</strong> not be used in shader stages not included in <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>::<code>cooperativeMatrixSupportedStages</code>"
+          "text": "<code>OpTypeCooperativeMatrixNV</code> and <code>OpCooperativeMatrix*</code> instructions <strong class=\"purple\">must</strong> not be used in shader stages not included in <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>::<code>cooperativeMatrixSupportedStages</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974",
+          "text": "For <code>OpTypeCooperativeMatrixKHR</code>, the component type, scope, number of rows, and number of columns <strong class=\"purple\">must</strong> match one of the matrices in any of the supported <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-MSize-08975",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the type of <code>A</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>KSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>AType</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08976",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, when the component type of <code>A</code> is a signed integer type, the <code>MatrixASignedComponents</code> cooperative matrix operand <strong class=\"purple\">must</strong> be present.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-KSize-08977",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the type of <code>B</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>KSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>BType</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08978",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, when the component type of <code>B</code> is a signed integer type, the <code>MatrixBSignedComponents</code> cooperative matrix operand <strong class=\"purple\">must</strong> be present.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-MSize-08979",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the type of <code>C</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>CType</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08980",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, when the component type of <code>C</code> is a signed integer type, the <code>MatrixCSignedComponents</code> cooperative matrix operand <strong class=\"purple\">must</strong> be present.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-MSize-08981",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the type of <code>Result</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>ResultType</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08982",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, when the component type of <code>Result</code> is a signed integer type, the <code>MatrixResultSignedComponents</code> cooperative matrix operand <strong class=\"purple\">must</strong> be present.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-saturatingAccumulation-08983",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the <code>SaturatingAccumulation</code> cooperative matrix operand <strong class=\"purple\">must</strong> be present if and only if <a href=\"#VkCooperativeMatrixPropertiesKHR\">VkCooperativeMatrixPropertiesKHR</a>::<code>saturatingAccumulation</code> is <code>VK_TRUE</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-scope-08984",
+          "text": "For <code>OpCooperativeMatrixMulAddKHR</code>, the type of <code>A</code>, <code>B</code>, <code>C</code>, and <code>Result</code> <strong class=\"purple\">must</strong> all have a scope of <code>scope</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985",
+          "text": "<code>OpTypeCooperativeMatrixKHR</code> and <code>OpCooperativeMatrix*</code> instructions <strong class=\"purple\">must</strong> not be used in shader stages not included in <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>::<code>cooperativeMatrixSupportedStages</code>.",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-DescriptorSet-06323",
+          "text": "<code>DescriptorSet</code> and <code>Binding</code> decorations <strong class=\"purple\">must</strong> obey the constraints on <code>Storage</code> <code>Class</code>, type, and descriptor type described in <a href=\"#interfaces-resources-setandbinding\">DescriptorSet and Binding Assignment</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324",
-          "text": " For <code>OpCooperativeMatrixLoadNV</code> and <code>OpCooperativeMatrixStoreNV</code> instructions, the <code>Pointer</code> and <code>Stride</code> operands <strong class=\"purple\">must</strong> be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on <code>ColumnMajor</code>) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)"
-        }
-      ],
-      "(VK_NV_mesh_shader)": [
+          "text": "For <code>OpCooperativeMatrixLoadNV</code> and <code>OpCooperativeMatrixStoreNV</code> instructions, the <code>Pointer</code> and <code>Stride</code> operands <strong class=\"purple\">must</strong> be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on <code>ColumnMajor</code>) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-MeshNV-07113",
-          "text": " For mesh shaders using the <code>MeshNV</code> {ExecutionModel} the <code>OutputVertices</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputVertices</code>"
+          "text": "For mesh shaders using the <code>MeshNV</code> <code>Execution</code> <code>Model</code> the <code>OutputVertices</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>::<code>maxMeshOutputVertices</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshNV-07114",
-          "text": " For mesh shaders using the <code>MeshNV</code> {ExecutionModel} the <code>OutputPrimitivesNV</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputPrimitives</code>"
-        }
-      ],
-      "(VK_EXT_mesh_shader)": [
+          "text": "For mesh shaders using the <code>MeshNV</code> <code>Execution</code> <code>Model</code> the <code>OutputPrimitivesNV</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>::<code>maxMeshOutputPrimitives</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07115",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>OutputVertices</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshOutputVertices</code>"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>OutputVertices</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshOutputVertices</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07332",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the &#8220;Vertex Count&#8221; operand of <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>OutputVertices</code> <code>OpExecutionMode</code>"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the &#8220;Vertex Count&#8221; operand of <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>OutputVertices</code> <code>OpExecutionMode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07116",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>OutputPrimitivesEXT</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshOutputPrimitives</code>"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>OutputPrimitivesEXT</code> <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshOutputPrimitives</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07333",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the &#8220;Primitive Count&#8221; operand of <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>OutputPrimitivesEXT</code> <code>OpExecutionMode</code>"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the &#8220;Primitive Count&#8221; operand of <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>OutputPrimitivesEXT</code> <code>OpExecutionMode</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07117",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be called exactly once under dynamically uniform conditions"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be called exactly once under dynamically uniform conditions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07118",
-          "text": " In mesh shaders using the <code>MeshEXT</code> {ExecutionModel} <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be called at most once under dynamically uniform conditions"
+          "text": "In mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <code>OpSetMeshOutputsEXT</code> <strong class=\"purple\">must</strong> be called at most once under dynamically uniform conditions",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07291",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupSize</code>[0]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxTaskWorkGroupSize</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07292",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupSize</code>[1]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxTaskWorkGroupSize</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07293",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupSize</code>[2]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxTaskWorkGroupSize</code>[2]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07294",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxTaskWorkGroupInvocations</code>"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxTaskWorkGroupInvocations</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07295",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupSize</code>[0]"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupSize</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07296",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupSize</code>[1]"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupSize</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07297",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupSize</code>[2]"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupSize</code>[2]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-MeshEXT-07298",
-          "text": " For mesh shaders using the <code>MeshEXT</code> {ExecutionModel} the product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupInvocations</code>"
+          "text": "For mesh shaders using the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> the product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupInvocations</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07299",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the value of the &#8220;Group Count X&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[0]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the value of the &#8220;Group Count X&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupCount</code>[0]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07300",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the value of the &#8220;Group Count Y&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[1]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the value of the &#8220;Group Count Y&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupCount</code>[1]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07301",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the value of the &#8220;Group Count Z&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupCount</code>[2]"
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the value of the &#8220;Group Count Z&#8221; operand of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupCount</code>[2]",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-TaskEXT-07302",
-          "text": " In task shaders using the <code>TaskEXT</code> {ExecutionModel} the product of the &#8220;Group Count&#8221; operands of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesEXT</code>::<code>maxMeshWorkGroupTotalCount</code>"
-        }
-      ],
-      "(VK_KHR_portability_subset)": [
+          "text": "In task shaders using the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> the product of the &#8220;Group Count&#8221; operands of <code>OpEmitMeshTasksEXT</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>::<code>maxMeshWorkGroupTotalCount</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxMeshSharedMemorySize-08754",
+          "text": "The sum of size in bytes for variables and <a href=\"#workgroup-padding\">padding</a> in the <code>Workgroup</code> <code>Storage</code> <code>Class</code> in the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxMeshSharedMemorySize\"><code>maxMeshSharedMemorySize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxMeshPayloadAndSharedMemorySize-08755",
+          "text": "The sum of size in bytes for variables and <a href=\"#workgroup-padding\">padding</a> in the <code>TaskPayloadWorkgroupEXT</code> or <code>Workgroup</code> <code>Storage</code> <code>Class</code> in the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxMeshPayloadAndSharedMemorySize\"><code>maxMeshPayloadAndSharedMemorySize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxMeshOutputMemorySize-08756",
+          "text": "The sum of size in bytes for variables in the <code>Output</code> <code>Storage</code> <code>Class</code> in the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxMeshOutputMemorySize\"><code>maxMeshOutputMemorySize</code></a> according to the formula in <a href=\"#mesh-output\">Mesh Shader Output</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxMeshPayloadAndOutputMemorySize-08757",
+          "text": "The sum of size in bytes for variables and in the <code>TaskPayloadWorkgroupEXT</code> or <code>Output</code> <code>Storage</code> <code>Class</code> in the <code>MeshEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxMeshPayloadAndOutputMemorySize\"><code>maxMeshPayloadAndOutputMemorySize</code></a> according to the formula in <a href=\"#mesh-output\">Mesh Shader Output</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxTaskPayloadSize-08758",
+          "text": "The sum of size in bytes for variables and in the <code>TaskPayloadWorkgroupEXT</code> <code>Storage</code> <code>Class</code> in the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTaskPayloadSize\"><code>maxTaskPayloadSize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759",
+          "text": "The sum of size in bytes for variables and <a href=\"#workgroup-padding\">padding</a> in the <code>Workgroup</code> <code>Storage</code> <code>Class</code> in the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTaskSharedMemorySize\"><code>maxTaskSharedMemorySize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760",
+          "text": "The sum of size in bytes for variables and <a href=\"#workgroup-padding\">padding</a> in the <code>TaskPayloadWorkgroupEXT</code> or <code>Workgroup</code> <code>Storage</code> <code>Class</code> in the <code>TaskEXT</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTaskPayloadAndSharedMemorySize\"><code>maxTaskPayloadAndSharedMemorySize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986",
+          "text": "For <code>OpCooperativeMatrixLoadKHR</code> and <code>OpCooperativeMatrixStoreKHR</code> instructions, the <code>Pointer</code> and <code>Stride</code> operands <strong class=\"purple\">must</strong> be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on <code>ColumnMajor</code>) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size).",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325",
-          "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>shaderSampleRateInterpolationFunctions</code> is <code>VK_FALSE</code>, then <code>GLSL.std.450</code> fragment interpolation functions are not supported by the implementation and <code>OpCapability</code> <strong class=\"purple\">must</strong> not be set to <code>InterpolationFunction</code>"
+          "text": "If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>shaderSampleRateInterpolationFunctions</code> is <code>VK_FALSE</code>, then <code>GLSL.std.450</code> fragment interpolation functions are not supported by the implementation and <code>OpCapability</code> <strong class=\"purple\">must</strong> not be set to <code>InterpolationFunction</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-tessellationShader-06326",
-          "text": " If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationIsolines</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>IsoLines</code>"
+          "text": "If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationIsolines</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>IsoLines</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-tessellationShader-06327",
-          "text": " If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationPointMode</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>PointMode</code>"
-        }
-      ],
-      "(VK_KHR_8bit_storage)": [
+          "text": "If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationPointMode</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>PointMode</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-storageBuffer8BitAccess-06328",
-          "text": " If <a href=\"#features-storageBuffer8BitAccess\"><code>storageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have storage class of <strong>StorageBuffer</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>"
+          "text": "If <a href=\"#features-storageBuffer8BitAccess\"><code>storageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have <code>Storage</code> <code>Class</code> of <code>StorageBuffer</code>, <code>ShaderRecordBufferKHR</code>, or <code>PhysicalStorageBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329",
-          "text": " If <a href=\"#features-uniformAndStorageBuffer8BitAccess\"><code>uniformAndStorageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <strong>Uniform</strong> storage class with the <strong>Block</strong> decoration <strong class=\"purple\">must</strong> not have an 8-bit integer member"
+          "text": "If <a href=\"#features-uniformAndStorageBuffer8BitAccess\"><code>uniformAndStorageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <code>Uniform</code> <code>Storage</code> <code>Class</code> with the <code>Block</code> decoration <strong class=\"purple\">must</strong> not have an 8-bit integer member",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-storagePushConstant8-06330",
-          "text": " If <a href=\"#features-storagePushConstant8\"><code>storagePushConstant8</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have storage class of <strong>PushConstant</strong>"
-        }
-      ],
-      "(VK_KHR_16bit_storage)": [
+          "text": "If <a href=\"#features-storagePushConstant8\"><code>storagePushConstant8</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have <code>Storage</code> <code>Class</code> of <code>PushConstant</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-storageBuffer16BitAccess-06331",
-          "text": " If <a href=\"#features-storageBuffer16BitAccess\"><code>storageBuffer16BitAccess</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have storage class of <strong>StorageBuffer</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>"
+          "text": "If <a href=\"#features-storageBuffer16BitAccess\"><code>storageBuffer16BitAccess</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have <code>Storage</code> <code>Class</code> of <code>StorageBuffer</code>, <code>ShaderRecordBufferKHR</code>, or <code>PhysicalStorageBuffer</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332",
-          "text": " If <a href=\"#features-uniformAndStorageBuffer16BitAccess\"><code>uniformAndStorageBuffer16BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <strong>Uniform</strong> storage class with the <strong>Block</strong> decoration <strong class=\"purple\">must</strong> not have 16-bit integer or 16-bit floating-point members"
+          "text": "If <a href=\"#features-uniformAndStorageBuffer16BitAccess\"><code>uniformAndStorageBuffer16BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <code>Uniform</code> <code>Storage</code> <code>Class</code> with the <code>Block</code> decoration <strong class=\"purple\">must</strong> not have 16-bit integer or 16-bit floating-point members",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-storagePushConstant16-06333",
-          "text": " If <a href=\"#features-storagePushConstant16\"><code>storagePushConstant16</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have storage class of <strong>PushConstant</strong>"
+          "text": "If <a href=\"#features-storagePushConstant16\"><code>storagePushConstant16</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have <code>Storage</code> <code>Class</code> of <code>PushConstant</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-storageInputOutput16-06334",
-          "text": " If <a href=\"#features-storageInputOutput16\"><code>storageInputOutput16</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have storage class of <strong>Input</strong> or <strong>Output</strong>"
-        }
-      ],
-      "(VK_VERSION_1_1)": [
+          "text": "If <a href=\"#features-storageInputOutput16\"><code>storageInputOutput16</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have <code>Storage</code> <code>Class</code> of <code>Input</code> or <code>Output</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-None-06337",
+          "text": "<a href=\"#features-shaderBufferFloat16Atomics\"><code>shaderBufferFloat16Atomics</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicAdd\"><code>shaderBufferFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\"><code>shaderBufferFloat16AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat16Atomics\"><code>shaderSharedFloat16Atomics</code></a>, or <a href=\"#features-shaderSharedFloat16AtomicAdd\"><code>shaderSharedFloat16AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat16AtomicMinMax\"><code>shaderSharedFloat16AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 16-bit floating point atomic operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-None-06338",
+          "text": "<a href=\"#features-shaderBufferFloat32Atomics\"><code>shaderBufferFloat32Atomics</code></a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\"><code>shaderBufferFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat32Atomics\"><code>shaderSharedFloat32Atomics</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\"><code>shaderSharedFloat32AtomicAdd</code></a>, or <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> or <a href=\"#features-shaderBufferFloat32AtomicMinMax\"><code>shaderBufferFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\"><code>shaderSharedFloat32AtomicMinMax</code></a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating point atomic operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-None-06339",
+          "text": "<a href=\"#features-shaderBufferFloat64Atomics\"><code>shaderBufferFloat64Atomics</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\"><code>shaderBufferFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderSharedFloat64Atomics\"><code>shaderSharedFloat64Atomics</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\"><code>shaderSharedFloat64AtomicAdd</code></a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\"><code>shaderBufferFloat64AtomicMinMax</code></a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\"><code>shaderSharedFloat64AtomicMinMax</code></a>, <strong class=\"purple\">must</strong> be enabled for 64-bit floating point atomic operations",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-NonWritable-06340",
+          "text": "If <a href=\"#features-fragmentStoresAndAtomics\"><code>fragmentStoresAndAtomics</code></a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-NonWritable-06341",
+          "text": "If <a href=\"#features-vertexPipelineStoresAndAtomics\"><code>vertexPipelineStoresAndAtomics</code></a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-None-06342",
+          "text": "If <a href=\"#limits-subgroupQuadOperationsInAllStages\"><code>subgroupQuadOperationsInAllStages</code></a> is <code>VK_FALSE</code>, then <a href=\"#features-subgroup-quad\">quad subgroup operations</a> <strong class=\"purple\">must</strong> not be used except for in fragment and compute stages",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-None-06343",
-          "text": " <a href=\"#shaders-group-operations\">Group operations</a> with <a href=\"#shaders-scope-subgroup\">subgroup scope</a> <strong class=\"purple\">must</strong> not be used if the shader stage is not in <a href=\"#limits-subgroupSupportedStages\"><code>subgroupSupportedStages</code></a>"
-        }
-      ],
-      "(VK_KHR_ray_query)": [
+          "text": "<a href=\"#shaders-group-operations\">Group operations</a> with <a href=\"#shaders-scope-subgroup\">subgroup scope</a> <strong class=\"purple\">must</strong> not be used if the shader stage is not in <a href=\"#limits-subgroupSupportedStages\"><code>subgroupSupportedStages</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-Offset-06344",
+          "text": "The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:<br> <span class=\"eq\">frag<sub>width</sub> × <a href=\"#limits-minInterpolationOffset\"><code>minInterpolationOffset</code></a></span><br> where <span class=\"eq\">frag<sub>width</sub></span> is the width of the current fragment in pixels",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-Offset-06345",
+          "text": "The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to<br> <span class=\"eq\">frag<sub>width</sub> × (<a href=\"#limits-maxInterpolationOffset\"><code>maxInterpolationOffset</code></a> +  ULP ) - ULP</span><br> where <span class=\"eq\">frag<sub>width</sub></span> is the width of the current fragment in pixels and <span class=\"eq\">ULP = 1 / 2^<a href=\"#limits-subPixelInterpolationOffsetBits\"><code>subPixelInterpolationOffsetBits</code></a>^</span>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-Offset-06346",
+          "text": "The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to<br> <span class=\"eq\">frag<sub>height</sub> × <a href=\"#limits-minInterpolationOffset\"><code>minInterpolationOffset</code></a></span><br> where <span class=\"eq\">frag<sub>height</sub></span> is the height of the current fragment in pixels",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-Offset-06347",
+          "text": "The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to<br> <span class=\"eq\">frag<sub>height</sub> × (<a href=\"#limits-maxInterpolationOffset\"><code>maxInterpolationOffset</code></a> +  ULP ) - ULP</span><br> where <span class=\"eq\">frag<sub>height</sub></span> is the height of the current fragment in pixels and <span class=\"eq\">ULP = 1 / 2^<a href=\"#limits-subPixelInterpolationOffsetBits\"><code>subPixelInterpolationOffsetBits</code></a>^</span>.",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891",
-          "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>"
+          "text": "For <code>OpRayQueryInitializeKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353",
-          "text": " For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Hit</code> <code>T</code> <strong class=\"purple\">must</strong> satisfy the condition <span class=\"eq\"><code>RayTmin</code> {leq} <code>Hit</code> <code>T</code> {leq} <code>RayTmax</code></span>, where <code>RayTmin</code> is equal to the value returned by <code>OpRayQueryGetRayTMinKHR</code> with the same ray query object, and <code>RayTmax</code> is equal to the value of <code>OpRayQueryGetIntersectionTKHR</code> for the current committed intersection with the same ray query object"
-        }
-      ],
-      "(VK_KHR_ray_query)+(VK_NV_ray_tracing_motion_blur)": [
+          "text": "For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Hit</code> <code>T</code> <strong class=\"purple\">must</strong> satisfy the condition <span class=\"eq\"><code>RayTmin</code> ≤ <code>Hit</code> <code>T</code> ≤ <code>RayTmax</code></span>, where <code>RayTmin</code> is equal to the value returned by <code>OpRayQueryGetRayTMinKHR</code> with the same ray query object, and <code>RayTmax</code> is equal to the value of <code>OpRayQueryGetIntersectionTKHR</code> for the current committed intersection with the same ray query object",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354",
-          "text": " For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> not be built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>"
-        }
-      ],
-      "(VK_KHR_ray_tracing_pipeline)": [
+          "text": "For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> not be built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-flags-08761",
+          "text": "For <code>OpRayQueryGetIntersectionTriangleVertexPositionsKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR</code> in <code>flags</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06355",
-          "text": " For <code>OpTraceRayKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values"
+          "text": "For <code>OpTraceRayKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06356",
-          "text": " For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values"
+          "text": "For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06552",
-          "text": " For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>"
+          "text": "For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06892",
-          "text": " For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>"
+          "text": "For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06893",
-          "text": " For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>"
+          "text": "For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06553",
-          "text": " For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipTrianglesKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> set"
+          "text": "For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipTrianglesKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06554",
-          "text": " For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipAABBsKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> set"
+          "text": "For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipAABBsKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06357",
-          "text": " For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand"
+          "text": "For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06358",
-          "text": " For <code>OpTraceRayKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs"
+          "text": "For <code>OpTraceRayKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06359",
-          "text": " For <code>OpTraceRayKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>"
+          "text": "For <code>OpTraceRayKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpReportIntersectionKHR-06998",
-          "text": " The value of the &#8220;Hit Kind&#8221; operand of <code>OpReportIntersectionKHR</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,127]</span>"
-        }
-      ],
-      "(VK_NV_ray_tracing_motion_blur)": [
+          "text": "The value of the &#8220;Hit Kind&#8221; operand of <code>OpReportIntersectionKHR</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,127]</span>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06360",
-          "text": " For <code>OpTraceRayKHR</code> instructions, if <code>Acceleration</code> <code>Structure</code> was built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>, the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
+          "text": "For <code>OpTraceRayKHR</code> instructions, if <code>Acceleration</code> <code>Structure</code> was built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>, the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06361",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06362",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06363",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06364",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06365",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06366",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions the <code>time</code> operand <strong class=\"purple\">must</strong> be between 0.0 and 1.0"
+          "text": "For <code>OpTraceRayMotionNV</code> instructions the <code>time</code> operand <strong class=\"purple\">must</strong> be between 0.0 and 1.0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06367",
-          "text": " For <code>OpTraceRayMotionNV</code> instructions the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
-        }
-      ],
-      "(VK_NV_ray_tracing_invocation_reorder)": [
+          "text": "For <code>OpTraceRayMotionNV</code> instructions the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704",
-          "text": " For <code>OpHitObjectTraceRayMotionNV</code> instructions, if <code>Acceleration</code> <code>Structure</code> was built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>, the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
+          "text": "For <code>OpHitObjectTraceRayMotionNV</code> instructions, if <code>Acceleration</code> <code>Structure</code> was built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>, the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07709",
-          "text": " For <code>OpHitObjectTraceRayMotionNV</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>"
+          "text": "For <code>OpHitObjectTraceRayMotionNV</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions the <code>time</code> operand <strong class=\"purple\">must</strong> be between 0.0 and 1.0"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions the <code>time</code> operand <strong class=\"purple\">must</strong> be between 0.0 and 1.0",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07711",
-          "text": " For <code>OpHitObjectTraceRayMotionNV</code> instructions the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
+          "text": "For <code>OpHitObjectTraceRayMotionNV</code> instructions the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>SkipTrianglesKHR</code>, <code>CullBackFacingTrianglesKHR</code>, and <code>CullFrontFacingTrianglesKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain more than one of <code>OpaqueKHR</code>, <code>NoOpaqueKHR</code>, <code>CullOpaqueKHR</code>, and <code>CullNoOpaqueKHR</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipTrianglesKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> set"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipTrianglesKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07716",
-          "text": " For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipAABBsKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> set"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
-        {
-          "vuid": "VUID-RuntimeSpirv-LocalSizeId-06433",
-          "text": " The execution mode <code>LocalSizeId</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "For <code>OpHitObjectTraceRayNV</code> and <code>OpHitObjectTraceRayMotionNV</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipAABBsKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> set",
+          "page": "vkspec"
         },
         {
-          "vuid": "VUID-RuntimeSpirv-OpTypeVector-06816",
-          "text": " Any <code>OpTypeVector</code> output interface variables <strong class=\"purple\">must</strong> not have a higher <code>Component</code> <code>Count</code> than a matching <code>OpTypeVector</code> input interface variable"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+          "vuid": "VUID-RuntimeSpirv-x-06429",
+          "text": "In compute shaders using the <code>GLCompute</code> <code>Execution</code> <code>Model</code> the <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxComputeWorkGroupSize</code>[0]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-y-06430",
+          "text": "In compute shaders using the <code>GLCompute</code> <code>Execution</code> <code>Model</code> the <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxComputeWorkGroupSize</code>[1]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-z-06431",
+          "text": "In compute shaders using the <code>GLCompute</code> <code>Execution</code> <code>Model</code> the <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxComputeWorkGroupSize</code>[2]",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-x-06432",
+          "text": "In compute shaders using the <code>GLCompute</code> <code>Execution</code> <code>Model</code> the product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxComputeWorkGroupInvocations</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-LocalSizeId-06434",
-          "text": " If execution mode <code>LocalSizeId</code> is used, <a href=\"#features-maintenance4\"><code>maintenance4</code></a> <strong class=\"purple\">must</strong> be enabled"
+          "text": "If <code>Execution</code> <code>Mode</code> <code>LocalSizeId</code> is used, <a href=\"#features-maintenance4\"><code>maintenance4</code></a> <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-maintenance4-06817",
-          "text": " If <a href=\"#features-maintenance4\"><code>maintenance4</code></a> is not enabled, any <code>OpTypeVector</code> output interface variables <strong class=\"purple\">must</strong> not have a higher <code>Component</code> <code>Count</code> than a matching <code>OpTypeVector</code> input interface variable"
-        }
-      ],
-      "(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
+          "text": "If <a href=\"#features-maintenance4\"><code>maintenance4</code></a> is not enabled, any <code>OpTypeVector</code> output interface variables <strong class=\"purple\">must</strong> not have a higher <code>Component</code> <code>Count</code> than a matching <code>OpTypeVector</code> input interface variable",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpEntryPoint-08743",
+          "text": "Any <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a> shared between the <code>OpEntryPoint</code> of two shader stages, and declared with <code>Input</code> as its <code>Storage</code> <code>Class</code> for the subsequent shader stage, <strong class=\"purple\">must</strong> have all <code>Location</code> slots and <code>Component</code> words declared in the preceding shader stage&#8217;s <code>OpEntryPoint</code> with <code>Output</code> as the <code>Storage</code> <code>Class</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpEntryPoint-07754",
+          "text": "Any <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a> between the <code>OpEntryPoint</code> of two shader stages <strong class=\"purple\">must</strong> have the same type and width for each <code>Component</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpVariable-08746",
+          "text": "Any <code>OpVariable</code>, <code>Block</code>-decorated <code>OpTypeStruct</code>, or <code>Block</code>-decorated <code>OpTypeStruct</code> members shared between the <code>OpEntryPoint</code> of two shader stages <strong class=\"purple\">must</strong> have matching decorations as defined in <a href=\"#interfaces-iointerfaces-matching\">interface matching</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-Workgroup-06530",
+          "text": "The sum of size in bytes for variables and <a href=\"#workgroup-padding\">padding</a> in the <code>Workgroup</code> <code>Storage</code> <code>Class</code> in the <code>GLCompute</code> <code>Execution</code> <code>Model</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxComputeSharedMemorySize\"><code>maxComputeSharedMemorySize</code></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372",
-          "text": " If <a href=\"#features-shaderZeroInitializeWorkgroupMemory\"><code>shaderZeroInitializeWorkgroupMemory</code></a> is not enabled, any <code>OpVariable</code> with <strong>Workgroup</strong> as its <strong>Storage Class</strong> <strong class=\"purple\">must</strong> not have an <code>Initializer</code> operand"
-        }
-      ],
-      "!(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
+          "text": "If <a href=\"#features-shaderZeroInitializeWorkgroupMemory\"><code>shaderZeroInitializeWorkgroupMemory</code></a> is not enabled, any <code>OpVariable</code> with <code>Workgroup</code> as its <code>Storage</code> <code>Class</code> <strong class=\"purple\">must</strong> not have an <code>Initializer</code> operand",
+          "page": "vkspec"
+        },
         {
-          "vuid": "VUID-RuntimeSpirv-OpVariable-06373",
-          "text": " Any <code>OpVariable</code> with <strong>Workgroup</strong> as its <strong>Storage Class</strong> <strong class=\"purple\">must</strong> not have an <code>Initializer</code> operand"
-        }
-      ],
-      "(VK_QCOM_render_pass_shader_resolve)": [
+          "vuid": "VUID-RuntimeSpirv-OpImage-06376",
+          "text": "If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelGatherOffset\"><code>minTexelGatherOffset</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImage-06377",
+          "text": "If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelGatherOffset\"><code>maxTexelGatherOffset</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageSample-06435",
+          "text": "If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelOffset\"><code>minTexelOffset</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageSample-06436",
+          "text": "If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelOffset\"><code>maxTexelOffset</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-samples-08725",
+          "text": "If an <code>OpTypeImage</code> has an <code>MS</code> operand 0, its bound image <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> as <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-samples-08726",
+          "text": "If an <code>OpTypeImage</code> has an <code>MS</code> operand 1, its bound image <strong class=\"purple\">must</strong> not have been created with <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> as <code>VK_SAMPLE_COUNT_1_BIT</code>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-SampleRateShading-06378",
-          "text": " If the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the SPIR-V fragment shader Capability <code>SampleRateShading</code> <strong class=\"purple\">must</strong> not be enabled"
-        }
-      ],
-      "(VK_KHR_shader_subgroup_uniform_control_flow)": [
+          "text": "If the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the SPIR-V fragment shader Capability <code>SampleRateShading</code> <strong class=\"purple\">must</strong> not be enabled",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379",
-          "text": " The execution mode <code>SubgroupUniformControlFlowKHR</code> <strong class=\"purple\">must</strong> not be applied to an entry point unless <a href=\"#features-shaderSubgroupUniformControlFlow\"><code>shaderSubgroupUniformControlFlow</code></a> is enabled and the corresponding shader stage bit is set in subgroup <a href=\"#limits-subgroup-supportedStages\"><code>supportedStages</code></a> and the entry point does not execute any <a href=\"#ray-tracing-repack\"><em>invocation repack instructions</em></a>"
-        }
-      ],
-      "(VK_AMD_shader_early_and_late_fragment_tests)": [
+          "text": "The <code>Execution</code> <code>Mode</code> <code>SubgroupUniformControlFlowKHR</code> <strong class=\"purple\">must</strong> not be applied to an entry point unless <a href=\"#features-shaderSubgroupUniformControlFlow\"><code>shaderSubgroupUniformControlFlow</code></a> is enabled and the corresponding shader stage bit is set in subgroup <a href=\"#limits-subgroup-supportedStages\"><code>supportedStages</code></a> and the entry point does not execute any <a href=\"#ray-tracing-repack\"><em>invocation repack instructions</em></a>",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>EarlyAndLateFragmentTestsEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>EarlyAndLateFragmentTestsEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> feature is not enabled, the <code>StencilRefUnchangedFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> feature is not enabled, the <code>StencilRefUnchangedFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefUnchangedBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefUnchangedBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefGreaterFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefGreaterFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefGreaterBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefGreaterBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefLessFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefLessFrontEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773",
-          "text": " If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefLessBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used"
-        }
-      ],
-      "(VK_QCOM_image_processing)": [
+          "text": "If <a href=\"#features-shaderEarlyAndLateFragmentTests\"><code>shaderEarlyAndLateFragmentTests</code></a> is not enabled, the <code>StencilRefLessBackEXT</code> <code>Execution</code> <code>Mode</code> <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06979",
-          "text": " If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Texture</code> <code>Sampled</code> <code>Image</code> and <code>Weight</code> <code>Image</code> parameters <strong class=\"purple\">must</strong> both be <em>dynamically uniform</em> for the quad"
+          "text": "If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Texture</code> <code>Sampled</code> <code>Image</code> and <code>Weight</code> <code>Image</code> parameters <strong class=\"purple\">must</strong> both be <em>dynamically uniform</em> for the quad",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06980",
-          "text": " If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Weight</code> <code>Image</code> parameter <strong class=\"purple\">must</strong> be of storage class <code>UniformConstant</code> and type <code>OpTypeImage</code> with <code>Depth</code>=0, <code>Dim</code>=<code>2D</code>, <code>Arrayed</code>=1, <code>MS</code>=0, and <code>Sampled</code>=1"
+          "text": "If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Weight</code> <code>Image</code> parameter <strong class=\"purple\">must</strong> be of <code>Storage</code> <code>Class</code> <code>UniformConstant</code> and type <code>OpTypeImage</code> with <code>Depth</code>=0, <code>Dim</code>=<code>2D</code>, <code>Arrayed</code>=1, <code>MS</code>=0, and <code>Sampled</code>=1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06981",
-          "text": " If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Weight</code> <code>Image</code> parameter <strong class=\"purple\">must</strong> be decorated with <code>WeightTextureQCOM</code>"
+          "text": "If an <code>OpImageWeightedSampleQCOM</code> operation is used, then the <code>Weight</code> <code>Image</code> parameter <strong class=\"purple\">must</strong> be decorated with <code>WeightTextureQCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSADQCOM-06982",
-          "text": " If an <code>OpImageBlockMatchSADQCOM</code> or <code>OpImageBlockMatchSSDQCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code>, <code>reference</code> <code>sampled</code> <code>image</code>, and <code>Block</code> <code>Size</code> parameters <strong class=\"purple\">must</strong> both be <em>dynamically uniform</em> for the quad"
+          "text": "If an <code>OpImageBlockMatchSADQCOM</code> or <code>OpImageBlockMatchSSDQCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code>, <code>reference</code> <code>sampled</code> <code>image</code>, and <code>Block</code> <code>Size</code> parameters <strong class=\"purple\">must</strong> both be <em>dynamically uniform</em> for the quad",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983",
-          "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be of storage class <code>UniformConstant</code> and type <code>OpTypeImage</code> with <code>Depth</code>=0, <code>Dim</code>=<code>2D</code>, <code>Arrayed</code>=0, <code>MS</code>=0, and <code>Sampled</code>=1"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be of storage class <code>UniformConstant</code> and type <code>OpTypeImage</code> with <code>Depth</code>=0, <code>Dim</code>=<code>2D</code>, <code>Arrayed</code>=0, <code>MS</code>=0, and <code>Sampled</code>=1",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984",
-          "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be decorated with <code>BlockMatchTextureQCOM</code>"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be decorated with <code>BlockMatchTextureQCOM</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985",
-          "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created using an identical sampler object"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created using an identical sampler object",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986",
-          "text": "    If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code>    operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and    <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been    created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with a sampler object with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987",
-          "text": "    If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code>    operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and    <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been    created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with a sampler object with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988",
-          "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>Block</code> <code>Size</code> less than or equal to <a href=\"#limits-blockmatch-maxblocksize\"><code>maxBlockMatchRegion</code></a>"
+          "text": "If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>Block</code> <code>Size</code> less than or equal to <a href=\"#limits-blockmatch-maxblocksize\"><code>maxBlockMatchRegion</code></a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989",
-          "text": " If an <code>OpImageBoxFilterQCOM</code> operation is used, then <code>Box</code> <code>Size.y</code> <strong class=\"purple\">must</strong> be equal to or greater than 1.0 and less than or equal to <a href=\"#limits-boxfilter-maxblocksize\"><code>maxBoxFilterBlockSize</code></a>.<code>height</code>"
+          "text": "If an <code>OpImageBoxFilterQCOM</code> operation is used, then <code>Box</code> <code>Size.y</code> <strong class=\"purple\">must</strong> be equal to or greater than 1.0 and less than or equal to <a href=\"#limits-boxfilter-maxblocksize\"><code>maxBoxFilterBlockSize</code></a>.<code>height</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990",
-          "text": " If an <code>OpImageBoxFilterQCOM</code> operation is used, then <code>Sampled</code> <code>Texture</code> <code>Image</code> and <code>Box</code> <code>Size</code> parameters <strong class=\"purple\">must</strong> be <em>dynamically uniform</em>"
+          "text": "If an <code>OpImageBoxFilterQCOM</code> operation is used, then <code>Sampled</code> <code>Texture</code> <code>Image</code> and <code>Box</code> <code>Size</code> parameters <strong class=\"purple\">must</strong> be <em>dynamically uniform</em>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpEntryPoint-08727",
+          "text": "Each <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> not have more than one variable decorated with <code>InputAttachmentIndex</code> per image aspect of the attachment image bound to it, either explicitly or implicitly as described by <a href=\"#interfaces-inputattachment\">input attachment interface</a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728",
+          "text": "If <a href=\"#features-shaderTileImageColorReadAccess\"><code>shaderTileImageColorReadAccess</code></a> is not enabled, <code>OpColorAttachmentReadEXT</code> operation <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729",
+          "text": "If <a href=\"#features-shaderTileImageDepthReadAccess\"><code>shaderTileImageDepthReadAccess</code></a> is not enabled, <code>OpDepthAttachmentReadEXT</code> operation <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730",
+          "text": "If <a href=\"#features-shaderTileImageStencilReadAccess\"><code>shaderTileImageStencilReadAccess</code></a> is not enabled, <code>OpStencilAttachmentReadEXT</code> operation <strong class=\"purple\">must</strong> not be used",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-minSampleShading-08731",
+          "text": "If <a href=\"#primsrast-sampleshading\">sample shading</a> is enabled and <code>minSampleShading</code> is 1.0, the <code>sample</code> operand of any <code>OpColorAttachmentReadEXT</code>, <code>OpDepthAttachmentReadEXT</code>, or <code>OpStencilAttachmentReadEXT</code> operation <strong class=\"purple\">must</strong> evaluate to the value of the <a href=\"#primsrast-multisampling-coverage-mask\">coverage index</a> for any given fragment invocation",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-minSampleShading-08732",
+          "text": "If <a href=\"#primsrast-sampleshading\">sample shading</a> is enabled and any of the <code>OpColorAttachmentReadEXT</code>, <code>OpDepthAttachmentReadEXT</code>, or <code>OpStencilAttachmentReadEXT</code> operations are used, then <code>minSampleShading</code> <strong class=\"purple\">must</strong> be 1.0",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-MeshEXT-09218",
+          "text": "In mesh shaders using the <code>MeshEXT</code> or <code>MeshNV</code> <code>Execution</code> <code>Model</code> and the <code>OutputPoints</code> <code>Execution</code> <code>Mode</code>, if <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is not enabled, and if the number of output points is greater than 0, a <code>PointSize</code> decorated variable <strong class=\"purple\">must</strong> be written to for each output point",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maintenance5-09190",
+          "text": "If <a href=\"#features-maintenance5\"><code>maintenance5</code></a> is enabled and a <code>PointSize</code> decorated variable is written to, all execution paths <strong class=\"purple\">must</strong> write to a <code>PointSize</code> decorated variable",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191",
+          "text": "The <code>ShaderEnqueueAMDX</code> capability <strong class=\"purple\">must</strong> only be used in shaders with the <code>GLCompute</code> execution model",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-NodePayloadAMDX-09192",
+          "text": "Variables in the <code>NodePayloadAMDX</code> storage class <strong class=\"purple\">must</strong> only be declared in the <code>GLCompute</code> execution model",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193",
+          "text": "Variables declared in the <code>NodePayloadAMDX</code> storage class <strong class=\"purple\">must</strong> not be larger than the <a href=\"#limits-maxExecutionGraphShaderPayloadSize\"><code>maxExecutionGraphShaderPayloadSize</code></a> limit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194",
+          "text": "Variables declared in the <code>NodeOutputPayloadAMDX</code> storage class <strong class=\"purple\">must</strong> not be larger than the <a href=\"#limits-maxExecutionGraphShaderPayloadSize\"><code>maxExecutionGraphShaderPayloadSize</code></a> limit",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195",
+          "text": "For a given entry point, the sum of the size of any variable in the <code>NodePayloadAMDX</code> storage class, and the combined size of all statically initialized variables in the <code>NodeOutputPayloadAMDX</code> storage class <strong class=\"purple\">must</strong> not be greater than <a href=\"#limits-maxExecutionGraphShaderPayloadSize\"><code>maxExecutionGraphShaderPayloadSize</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196",
+          "text": "Shaders <strong class=\"purple\">must</strong> not statically initialize more than <a href=\"#limits-maxExecutionGraphShaderPayloadCount\"><code>maxExecutionGraphShaderPayloadCount</code></a> variables in the <code>NodeOutputPayloadAMDX</code> storage class",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197",
+          "text": "Shaders <strong class=\"purple\">must</strong> not include more than <a href=\"#limits-maxExecutionGraphShaderOutputNodes\"><code>maxExecutionGraphShaderOutputNodes</code></a> instances of <code>OpInitializeNodePayloadsAMDX</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code>, <code>reference</code> <code>sampled</code> <code>image</code>, and <code>Block</code> <code>Size</code> parameters <strong class=\"purple\">must</strong> both be <em>dynamically uniform</em> for the quad",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09220",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be of storage class <code>UniformConstant</code> and type <code>OpTypeImage</code> with <code>Depth</code>=0, <code>Dim</code>=<code>2D</code>, <code>Arrayed</code>=0, <code>MS</code>=0, and <code>Sampled</code>=1",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09221",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then the <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> be decorated with <code>BlockMatchTextureQCOM</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09222",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created using an identical sampler object",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09223",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with a sampler object with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchWindow-09224",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with sampler object with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-maxBlockMatchRegion-09225",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> operation is used, then <code>Block</code> <code>Size</code> less than or equal to <a href=\"#limits-blockmatch-maxblocksize\"><code>maxBlockMatchRegion</code></a>",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-RuntimeSpirv-pNext-09226",
+          "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> <strong class=\"purple\">must</strong> have been created using asampler object that included <a href=\"#VkSamplerBlockMatchWindowCreateInfoQCOM\">VkSamplerBlockMatchWindowCreateInfoQCOM</a> in the <code>pNext</code> chain.",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateCuFunctionNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateCuFunctionNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuFunctionNVX-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuFunctionCreateInfoNVX\">VkCuFunctionCreateInfoNVX</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuFunctionCreateInfoNVX\">VkCuFunctionCreateInfoNVX</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuFunctionNVX-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuFunctionNVX-pFunction-parameter",
-          "text": " <code>pFunction</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
+          "text": "<code>pFunction</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkCuFunctionCreateInfoNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-VkCuFunctionCreateInfoNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuFunctionCreateInfoNVX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuFunctionCreateInfoNVX-module-parameter",
-          "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuFunctionCreateInfoNVX-pName-parameter",
-          "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
+          "text": "<code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyCuFunctionNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyCuFunctionNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuFunctionNVX-function-parameter",
-          "text": " <code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuFunctionNVX-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuFunctionNVX-function-parent",
-          "text": " <code>function</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCreateCuModuleNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-vkCreateCuModuleNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuModuleNVX-pCreateInfo-parameter",
-          "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuModuleCreateInfoNVX\">VkCuModuleCreateInfoNVX</a> structure"
+          "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuModuleCreateInfoNVX\">VkCuModuleCreateInfoNVX</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuModuleNVX-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCreateCuModuleNVX-pModule-parameter",
-          "text": " <code>pModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
+          "text": "<code>pModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkCuModuleCreateInfoNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-VkCuModuleCreateInfoNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuModuleCreateInfoNVX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter",
-          "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
-        },
-        {
-          "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength",
-          "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+          "text": "If <code>dataSize</code> is not <code>0</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
     "vkDestroyCuModuleNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-vkDestroyCuModuleNVX-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuModuleNVX-module-parameter",
-          "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuModuleNVX-pAllocator-parameter",
-          "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
+          "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkDestroyCuModuleNVX-module-parent",
-          "text": " <code>module</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
+          "text": "<code>module</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkCmdCuLaunchKernelNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameter",
-          "text": " <code>pLaunchInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuLaunchInfoNVX\">VkCuLaunchInfoNVX</a> structure"
+          "text": "<code>pLaunchInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuLaunchInfoNVX\">VkCuLaunchInfoNVX</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recording",
-          "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+          "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpool",
-          "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
+          "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdCuLaunchKernelNVX-videocoding",
-          "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+          "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+          "page": "vkspec"
         }
       ]
     },
     "VkCuLaunchInfoNVX": {
-      "(VK_NVX_binary_import)": [
+      "core": [
         {
           "vuid": "VUID-VkCuLaunchInfoNVX-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuLaunchInfoNVX-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuLaunchInfoNVX-function-parameter",
-          "text": " <code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
+          "text": "<code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuLaunchInfoNVX-pParams-parameter",
-          "text": " If <code>paramCount</code> is not <code>0</code>, <code>pParams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>paramCount</code> bytes"
+          "text": "If <code>paramCount</code> is not <code>0</code>, <code>pParams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>paramCount</code> bytes",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkCuLaunchInfoNVX-pExtras-parameter",
-          "text": " If <code>extraCount</code> is not <code>0</code>, <code>pExtras</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>extraCount</code> bytes"
+          "text": "If <code>extraCount</code> is not <code>0</code>, <code>pExtras</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>extraCount</code> bytes",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceAmigoProfilingFeaturesSEC": {
-      "(VK_SEC_amigo_profiling)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkAmigoProfilingSubmitInfoSEC": {
-      "(VK_SEC_amigo_profiling)": [
+      "core": [
         {
           "vuid": "VUID-VkAmigoProfilingSubmitInfoSEC-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC</code>",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorSetLayoutHostMappingInfoVALVE": {
-      "(VK_VALVE_descriptor_set_host_mapping)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameter",
-          "text": " <code>pBindingReference</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetBindingReferenceVALVE\">VkDescriptorSetBindingReferenceVALVE</a> structure"
+          "text": "<code>pBindingReference</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetBindingReferenceVALVE\">VkDescriptorSetBindingReferenceVALVE</a> structure",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pHostMapping-parameter",
-          "text": " <code>pHostMapping</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayoutHostMappingInfoVALVE\">VkDescriptorSetLayoutHostMappingInfoVALVE</a> structure"
+          "text": "<code>pHostMapping</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayoutHostMappingInfoVALVE\">VkDescriptorSetLayoutHostMappingInfoVALVE</a> structure",
+          "page": "vkspec"
         }
       ]
     },
     "vkGetDescriptorSetHostMappingVALVE": {
-      "(VK_VALVE_descriptor_set_host_mapping)": [
+      "core": [
         {
           "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
+          "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameter",
-          "text": " <code>descriptorSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
+          "text": "<code>descriptorSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter",
-          "text": " <code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value"
+          "text": "<code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent",
+          "text": "<code>descriptorSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE": {
-      "(VK_VALVE_descriptor_set_host_mapping)": [
+      "core": [
         {
           "vuid": "VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE</code>",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetBindingReferenceVALVE": {
-      "(VK_VALVE_descriptor_set_host_mapping)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameter",
-          "text": " <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
+          "text": "<code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle",
+          "page": "vkspec"
         }
       ]
     },
     "VkDescriptorSetLayoutHostMappingInfoVALVE": {
-      "(VK_VALVE_descriptor_set_host_mapping)": [
+      "core": [
         {
           "vuid": "VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE</code>"
+          "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE</code>",
+          "page": "vkspec"
         },
         {
           "vuid": "VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNext",
-          "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+          "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+          "page": "vkspec"
         }
       ]
     }
diff --git a/registry/video.xml b/registry/video.xml
index 5071db9..38b087e 100644
--- a/registry/video.xml
+++ b/registry/video.xml
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright 2021-2022 The Khronos Group Inc.
+Copyright 2021-2024 The Khronos Group Inc.
 SPDX-License-Identifier: Apache-2.0 OR MIT
     </comment>
 
     <comment>
-This file, video.xml, is NOT a normative part of the Vulkan Specification.
-It includes a machine-readable definition of data structures and
-enumerations that are associated with externally-provided video standards,
-and are non-normatively referred to by Khronos extensions to Vulkan.
+This file, video.xml, provides the machine readable definition of data
+structures and enumerations that are related to the externally-provided
+video compression standards.
 
 The current public version of video.xml is maintained in the default branch
 (currently named main) of the Khronos Vulkan GitHub project.
@@ -17,32 +16,38 @@
 
     <types comment="Video type definitions">
             <!-- base types -->
-        <type name="stdint" category="include">#include &lt;stdint.h&gt;</type>
+        <type name="stdint" category="include">#if !defined(VK_NO_STDINT_H)
+    #include &lt;stdint.h&gt;
+#endif</type>
         <type name="uint32_t" requires="stdint"/>
         <type name="uint16_t" requires="stdint"/>
         <type name="uint8_t" requires="stdint"/>
         <type name="int32_t" requires="stdint"/>
         <type name="int8_t" requires="stdint"/>
 
+        <type category="include" name="vk_video/vulkan_video_codecs_common.h">#include "vulkan_video_codecs_common.h"</type>
+        <type category="include" name="vk_video/vulkan_video_codec_h264std.h">#include "vulkan_video_codec_h264std.h"</type>
+        <type category="include" name="vk_video/vulkan_video_codec_h265std.h">#include "vulkan_video_codec_h265std.h"</type>
+
             <!-- vulkan_video_codecs_common macros -->
         <type category="define">#define <name>VK_MAKE_VIDEO_STD_VERSION</name>(major, minor, patch) \
     ((((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
 
             <!-- vulkan_video_codec_h264std_decode.h macros -->
-        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 8) // Patch version should always be set to 0</type>
+        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
 
             <!-- vulkan_video_codec_h264std_encode.h macros -->
-        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 8) // Patch version should always be set to 0</type>
+        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
 
             <!-- vulkan_video_codec_h265std_decode.h macros -->
-        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9) // Patch version should always be set to 0</type>
+        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
 
             <!-- vulkan_video_codec_h265std_encode.h macros -->
-        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9) // Patch version should always be set to 0</type>
+        <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
 
             <!-- vulkan_video_codec_h264std.h enumerated types -->
         <type name="StdVideoH264ChromaFormatIdc" category="enum"/>
@@ -226,7 +231,7 @@
         <type category="struct" name="StdVideoDecodeH264ReferenceInfoFlags">
             <member><type>uint32_t</type>                             <name>top_field_flag</name> : 1<comment>Reference is used for top field reference.</comment></member>
             <member><type>uint32_t</type>                             <name>bottom_field_flag</name> : 1<comment>Reference is used for bottom field reference.</comment></member>
-            <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
+            <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
             <member><type>uint32_t</type>                             <name>is_non_existing</name> : 1<comment>Must be handled in accordance with 8.2.5.2: Decoding process for gaps in frame_num</comment></member>
         </type>
         <type category="struct" name="StdVideoDecodeH264ReferenceInfo">
@@ -268,21 +273,24 @@
         <type category="struct" name="StdVideoEncodeH264SliceHeaderFlags">
             <member><type>uint32_t</type>                             <name>direct_spatial_mv_pred_flag</name> : 1</member>
             <member><type>uint32_t</type>                             <name>num_ref_idx_active_override_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>no_output_of_prior_pics_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>adaptive_ref_pic_marking_mode_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>no_prior_references_available_flag</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 30</member>
         </type>
         <type category="struct" name="StdVideoEncodeH264PictureInfoFlags">
-            <member><type>uint32_t</type>                             <name>idr_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>is_reference_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
+            <member><type>uint32_t</type>                             <name>IdrPicFlag</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>is_reference</name> : 1<comment>A reference picture, i.e. a picture with nal_ref_idc not equal to 0, as defined in clause 3.136</comment></member>
+            <member><type>uint32_t</type>                             <name>no_output_of_prior_pics_flag</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>long_term_reference_flag</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>adaptive_ref_pic_marking_mode_flag</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 27</member>
         </type>
         <type category="struct" name="StdVideoEncodeH264ReferenceInfoFlags">
-            <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
+            <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 31</member>
         </type>
-        <type category="struct" name="StdVideoEncodeH264RefMgmtFlags">
-            <member><type>uint32_t</type>                             <name>ref_pic_list_modification_l0_flag</name> : 1</member>
-            <member><type>uint32_t</type>                             <name>ref_pic_list_modification_l1_flag</name> : 1</member>
+        <type category="struct" name="StdVideoEncodeH264ReferenceListsInfoFlags">
+            <member><type>uint32_t</type>                             <name>ref_pic_list_modification_flag_l0</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>ref_pic_list_modification_flag_l1</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 30</member>
         </type>
         <type category="struct" name="StdVideoEncodeH264RefListModEntry">
             <member><type>StdVideoH264ModificationOfPicNumsIdc</type> <name>modification_of_pic_nums_idc</name></member>
@@ -290,47 +298,57 @@
             <member><type>uint16_t</type>                             <name>long_term_pic_num</name></member>
         </type>
         <type category="struct" name="StdVideoEncodeH264RefPicMarkingEntry">
-            <member><type>StdVideoH264MemMgmtControlOp</type>         <name>operation</name></member>
+            <member><type>StdVideoH264MemMgmtControlOp</type>         <name>memory_management_control_operation</name></member>
             <member><type>uint16_t</type>                             <name>difference_of_pic_nums_minus1</name></member>
             <member><type>uint16_t</type>                             <name>long_term_pic_num</name></member>
             <member><type>uint16_t</type>                             <name>long_term_frame_idx</name></member>
             <member><type>uint16_t</type>                             <name>max_long_term_frame_idx_plus1</name></member>
         </type>
-        <type category="struct" name="StdVideoEncodeH264RefMemMgmtCtrlOperations">
-            <member><type>StdVideoEncodeH264RefMgmtFlags</type>              <name>flags</name></member>
+        <type category="struct" name="StdVideoEncodeH264ReferenceListsInfo">
+            <member><type>StdVideoEncodeH264ReferenceListsInfoFlags</type>   <name>flags</name></member>
+            <member><type>uint8_t</type>                                     <name>num_ref_idx_l0_active_minus1</name></member>
+            <member><type>uint8_t</type>                                     <name>num_ref_idx_l1_active_minus1</name></member>
+            <member><type>uint8_t</type>                                     <name>RefPicList0</name>[STD_VIDEO_H264_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H264_NO_REFERENCE_PICTURE</comment></member>
+            <member><type>uint8_t</type>                                     <name>RefPicList1</name>[STD_VIDEO_H264_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H264_NO_REFERENCE_PICTURE</comment></member>
             <member><type>uint8_t</type>                                     <name>refList0ModOpCount</name></member>
-            <member>const <type>StdVideoEncodeH264RefListModEntry</type>*    <name>pRefList0ModOperations</name></member>
             <member><type>uint8_t</type>                                     <name>refList1ModOpCount</name></member>
-            <member>const <type>StdVideoEncodeH264RefListModEntry</type>*    <name>pRefList1ModOperations</name></member>
             <member><type>uint8_t</type>                                     <name>refPicMarkingOpCount</name></member>
-            <member>const <type>StdVideoEncodeH264RefPicMarkingEntry</type>* <name>pRefPicMarkingOperations</name></member>
+            <member><type>uint8_t</type>                                     <name>reserved1</name>[7]<comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member>const <type>StdVideoEncodeH264RefListModEntry</type>*    <name>pRefList0ModOperations</name><comment>Must be a valid pointer to an array with size refList0ModOpCount if ref_pic_list_modification_flag_l0 is set and contains the RefList0 modification parameters as defined in section 7.4.3.1</comment></member>
+            <member>const <type>StdVideoEncodeH264RefListModEntry</type>*    <name>pRefList1ModOperations</name><comment>Must be a valid pointer to an array with size refList1ModOpCount if ref_pic_list_modification_flag_l1 is set and contains the RefList1 modification parameters as defined in section 7.4.3.1</comment></member>
+            <member>const <type>StdVideoEncodeH264RefPicMarkingEntry</type>* <name>pRefPicMarkingOperations</name><comment>Must be a valid pointer to an array with size refPicMarkingOpCount and contains the reference picture markings as defined in section 7.4.3.3</comment></member>
         </type>
         <type category="struct" name="StdVideoEncodeH264PictureInfo">
             <member><type>StdVideoEncodeH264PictureInfoFlags</type>   <name>flags</name></member>
             <member><type>uint8_t</type>                              <name>seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
             <member><type>uint8_t</type>                              <name>pic_parameter_set_id</name><comment>Selecting PPS from the Picture Parameters for all StdVideoEncodeH264SliceHeader(s)</comment></member>
-            <member><type>StdVideoH264PictureType</type>              <name>pictureType</name></member>
+            <member><type>uint16_t</type>                             <name>idr_pic_id</name></member>
+            <member><type>StdVideoH264PictureType</type>              <name>primary_pic_type</name></member>
             <member><type>uint32_t</type>                             <name>frame_num</name></member>
-            <member><type>int32_t</type>                              <name>PicOrderCnt</name></member>
+            <member><type>int32_t</type>                              <name>PicOrderCnt</name><comment>Picture order count, as defined in 8.2</comment></member>
+            <member><type>uint8_t</type>                              <name>temporal_id</name><comment>Temporal identifier of the picture, as defined in G.7.3.1.1 / G.7.4.1.1</comment></member>
+            <member><type>uint8_t</type>                              <name>reserved1</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member>const <type>StdVideoEncodeH264ReferenceListsInfo</type>* <name>pRefLists</name></member>
         </type>
         <type category="struct" name="StdVideoEncodeH264ReferenceInfo">
             <member><type>StdVideoEncodeH264ReferenceInfoFlags</type> <name>flags</name></member>
-            <member><type>uint32_t</type>                             <name>FrameNum</name></member>
-            <member><type>int32_t</type>                              <name>PicOrderCnt</name></member>
+            <member><type>StdVideoH264PictureType</type>              <name>primary_pic_type</name></member>
+            <member><type>uint32_t</type>                             <name>FrameNum</name><comment>Frame number, as defined in 8.2</comment></member>
+            <member><type>int32_t</type>                              <name>PicOrderCnt</name><comment>Picture order count, as defined in 8.2</comment></member>
             <member><type>uint16_t</type>                             <name>long_term_pic_num</name></member>
             <member><type>uint16_t</type>                             <name>long_term_frame_idx</name></member>
+            <member><type>uint8_t</type>                              <name>temporal_id</name><comment>Temporal identifier of the picture, as defined in G.7.3.1.1 / G.7.4.1.1</comment></member>
         </type>
         <type category="struct" name="StdVideoEncodeH264SliceHeader">
             <member><type>StdVideoEncodeH264SliceHeaderFlags</type>   <name>flags</name></member>
             <member><type>uint32_t</type>                             <name>first_mb_in_slice</name></member>
             <member><type>StdVideoH264SliceType</type>                <name>slice_type</name></member>
-            <member><type>uint16_t</type>                             <name>idr_pic_id</name></member>
-            <member><type>uint8_t</type>                              <name>num_ref_idx_l0_active_minus1</name></member>
-            <member><type>uint8_t</type>                              <name>num_ref_idx_l1_active_minus1</name></member>
-            <member><type>StdVideoH264CabacInitIdc</type>             <name>cabac_init_idc</name></member>
-            <member><type>StdVideoH264DisableDeblockingFilterIdc</type> <name>disable_deblocking_filter_idc</name></member>
             <member><type>int8_t</type>                               <name>slice_alpha_c0_offset_div2</name></member>
             <member><type>int8_t</type>                               <name>slice_beta_offset_div2</name></member>
+            <member><type>int8_t</type>                               <name>slice_qp_delta</name></member>
+            <member><type>uint8_t</type>                              <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member><type>StdVideoH264CabacInitIdc</type>             <name>cabac_init_idc</name></member>
+            <member><type>StdVideoH264DisableDeblockingFilterIdc</type> <name>disable_deblocking_filter_idc</name></member>
             <member>const <type>StdVideoEncodeH264WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
         </type>
 
@@ -433,8 +451,8 @@
             <member><type>uint16_t</type>                             <name>used_by_curr_pic_flag</name><comment>each bit represents a used_by_curr_pic_flag[j] syntax</comment></member>
             <member><type>uint16_t</type>                             <name>used_by_curr_pic_s0_flag</name><comment>each bit represents a used_by_curr_pic_s0_flag[i] syntax</comment></member>
             <member><type>uint16_t</type>                             <name>used_by_curr_pic_s1_flag</name><comment>each bit represents a used_by_curr_pic_s1_flag[i] syntax</comment></member>
-            <member><type>uint16_t</type>                              <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
-	    <member><type>uint8_t</type>                              <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member><type>uint16_t</type>                             <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member><type>uint8_t</type>                              <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
             <member><type>uint8_t</type>                              <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
             <member><type>uint8_t</type>                              <name>num_negative_pics</name></member>
             <member><type>uint8_t</type>                              <name>num_positive_pics</name></member>
@@ -681,9 +699,9 @@
             <member><type>int32_t</type>                              <name>PicOrderCntVal</name></member>
             <member><type>uint16_t</type>                             <name>NumBitsForSTRefPicSetInSlice</name><comment>number of bits used in st_ref_pic_set() when short_term_ref_pic_set_sps_flag is 0otherwise set to 0.</comment></member>
             <member><type>uint16_t</type>                             <name>reserved</name></member>
-            <member><type>uint8_t</type>                              <name>RefPicSetStCurrBefore</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
-            <member><type>uint8_t</type>                              <name>RefPicSetStCurrAfter</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
-            <member><type>uint8_t</type>                              <name>RefPicSetLtCurr</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
+            <member><type>uint8_t</type>                              <name>RefPicSetStCurrBefore</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE</comment></member>
+            <member><type>uint8_t</type>                              <name>RefPicSetStCurrAfter</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE</comment></member>
+            <member><type>uint8_t</type>                              <name>RefPicSetLtCurr</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR or STD_VIDEO_H265_NO_REFERENCE_PICTURE</comment></member>
         </type>
         <type category="struct" name="StdVideoDecodeH265ReferenceInfoFlags">
             <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
@@ -696,10 +714,10 @@
 
         <!-- vulkan_video_codec_h265std_encode.h structs -->
         <type category="struct" name="StdVideoEncodeH265WeightTableFlags">
-            <member><type>uint16_t</type> <name>luma_weight_l0_flag</name><comment>bit 0 - num_ref_idx_l0_active_minus1</comment></member>
-            <member><type>uint16_t</type> <name>chroma_weight_l0_flag</name><comment>bit 0 - num_ref_idx_l0_active_minus1</comment></member>
-            <member><type>uint16_t</type> <name>luma_weight_l1_flag</name><comment>bit 0 - num_ref_idx_l1_active_minus1</comment></member>
-            <member><type>uint16_t</type> <name>chroma_weight_l1_flag</name><comment>bit 0 - num_ref_idx_l1_active_minus1</comment></member>
+            <member><type>uint16_t</type> <name>luma_weight_l0_flag</name><comment>each bit n represents the nth entry in reference list l0, n &lt;= num_ref_idx_l0_active_minus1</comment></member>
+            <member><type>uint16_t</type> <name>chroma_weight_l0_flag</name><comment>each bit n represents the nth entry in reference list l0, n &lt;= num_ref_idx_l0_active_minus1</comment></member>
+            <member><type>uint16_t</type> <name>luma_weight_l1_flag</name><comment>each bit n represents the nth entry in reference list l1, n &lt;= num_ref_idx_l1_active_minus1</comment></member>
+            <member><type>uint16_t</type> <name>chroma_weight_l1_flag</name><comment>each bit n represents the nth entry in reference list l1, n &lt;= num_ref_idx_l1_active_minus1</comment></member>
         </type>
 
         <type category="struct" name="StdVideoEncodeH265WeightTable">
@@ -720,7 +738,7 @@
             <member><type>int8_t</type>                              <name>delta_chroma_offset_l1</name>[<enum>STD_VIDEO_H265_MAX_NUM_LIST_REF</enum>][<enum>STD_VIDEO_H265_MAX_CHROMA_PLANES</enum>]<comment>[i][j]: valid entry range for i is [0, num_ref_idx_l1_active_minus1]; j = 0 for Cb, j = 1 for Cr</comment></member>
         </type>
 
-        <type category="struct" name="StdVideoEncodeH265SliceSegmentLongTermRefPics">
+        <type category="struct" name="StdVideoEncodeH265LongTermRefPics">
             <member><type>uint8_t</type>                              <name>num_long_term_sps</name></member>
             <member><type>uint8_t</type>                              <name>num_long_term_pics</name></member>
             <member><type>uint8_t</type>                              <name>lt_idx_sps</name>[<enum>STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS</enum>]</member>
@@ -732,11 +750,7 @@
 
         <type category="struct" name="StdVideoEncodeH265SliceSegmentHeaderFlags">
             <member><type>uint32_t</type>  <name>first_slice_segment_in_pic_flag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>no_output_of_prior_pics_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>dependent_slice_segment_flag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>pic_output_flag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>short_term_ref_pic_set_sps_flag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>slice_temporal_mvp_enable_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>slice_sao_luma_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>slice_sao_chroma_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>num_ref_idx_active_override_flag</name> : 1</member>
@@ -747,15 +761,13 @@
             <member><type>uint32_t</type>  <name>slice_deblocking_filter_disabled_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>collocated_from_l0_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>slice_loop_filter_across_slices_enabled_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>reserved</name> : 20</member>
         </type>
         <type category="struct" name="StdVideoEncodeH265SliceSegmentHeader">
             <member><type>StdVideoEncodeH265SliceSegmentHeaderFlags</type>   <name>flags</name></member>
             <member><type>StdVideoH265SliceType</type>                <name>slice_type</name></member>
             <member><type>uint32_t</type>                             <name>slice_segment_address</name></member>
-            <member><type>uint8_t</type>                              <name>short_term_ref_pic_set_idx</name></member>
             <member><type>uint8_t</type>                              <name>collocated_ref_idx</name></member>
-            <member><type>uint8_t</type>                              <name>num_ref_idx_l0_active_minus1</name><comment>[0, 14]</comment></member>
-            <member><type>uint8_t</type>                              <name>num_ref_idx_l1_active_minus1</name><comment>[0, 14]</comment></member>
             <member><type>uint8_t</type>                              <name>MaxNumMergeCand</name></member>
             <member><type>int8_t</type>                               <name>slice_cb_qp_offset</name><comment>[-12, 12]</comment></member>
             <member><type>int8_t</type>                               <name>slice_cr_qp_offset</name><comment>[-12, 12]</comment></member>
@@ -764,46 +776,61 @@
             <member><type>int8_t</type>                               <name>slice_act_y_qp_offset</name></member>
             <member><type>int8_t</type>                               <name>slice_act_cb_qp_offset</name></member>
             <member><type>int8_t</type>                               <name>slice_act_cr_qp_offset</name></member>
-            <member>const <type>StdVideoH265ShortTermRefPicSet</type>*<name>pShortTermRefPicSet</name><comment>Must be a valid pointer if short_term_ref_pic_set_sps_flag is not set</comment></member>
-            <member>const <type>StdVideoEncodeH265SliceSegmentLongTermRefPics</type>*<name>pLongTermRefPics</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:long_term_ref_pics_present_flag is set</comment></member>
+            <member><type>int8_t</type>                               <name>slice_qp_delta</name></member>
+            <member><type>uint16_t</type>                             <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
             <member>const <type>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
         </type>
-        <type category="struct" name="StdVideoEncodeH265ReferenceModificationFlags">
+        <type category="struct" name="StdVideoEncodeH265ReferenceListsInfoFlags">
             <member><type>uint32_t</type>                             <name>ref_pic_list_modification_flag_l0</name> : 1</member>
             <member><type>uint32_t</type>                             <name>ref_pic_list_modification_flag_l1</name> : 1</member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 30</member>
         </type>
-        <type category="struct" name="StdVideoEncodeH265ReferenceModifications">
-            <member><type>StdVideoEncodeH265ReferenceModificationFlags</type> <name>flags</name></member>
-            <member><type>uint8_t</type>                              <name>referenceList0ModificationsCount</name><comment>num_ref_idx_l0_active_minus1</comment></member>
-            <member>const <type>uint8_t</type>*                       <name>pReferenceList0Modifications</name><comment>list_entry_l0</comment></member>
-            <member><type>uint8_t</type>                              <name>referenceList1ModificationsCount</name><comment>num_ref_idx_l1_active_minus1</comment></member>
-            <member>const <type>uint8_t</type>*                       <name>pReferenceList1Modifications</name><comment>list_entry_l1</comment></member>
+        <type category="struct" name="StdVideoEncodeH265ReferenceListsInfo">
+            <member><type>StdVideoEncodeH265ReferenceListsInfoFlags</type> <name>flags</name></member>
+            <member><type>uint8_t</type>                              <name>num_ref_idx_l0_active_minus1</name></member>
+            <member><type>uint8_t</type>                              <name>num_ref_idx_l1_active_minus1</name></member>
+            <member><type>uint8_t</type>                              <name>RefPicList0</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H265_NO_REFERENCE_PICTURE</comment></member>
+            <member><type>uint8_t</type>                              <name>RefPicList1</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures or STD_VIDEO_H265_NO_REFERENCE_PICTURE</comment></member>
+            <member><type>uint8_t</type>                              <name>list_entry_l0</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]</member>
+            <member><type>uint8_t</type>                              <name>list_entry_l1</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]</member>
         </type>
         <type category="struct" name="StdVideoEncodeH265PictureInfoFlags">
-            <member><type>uint32_t</type>  <name>is_reference_flag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>IrapPicFlag</name> : 1</member>
-            <member><type>uint32_t</type>  <name>long_term_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>is_reference</name> : 1<comment>A reference picture, as defined in clause 3.132</comment></member>
+            <member><type>uint32_t</type>  <name>IrapPicFlag</name> : 1<comment>A reference picture, as defined in clause 3.73</comment></member>
+            <member><type>uint32_t</type>  <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
             <member><type>uint32_t</type>  <name>discardable_flag</name> : 1</member>
             <member><type>uint32_t</type>  <name>cross_layer_bla_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>pic_output_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>no_output_of_prior_pics_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>short_term_ref_pic_set_sps_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>slice_temporal_mvp_enabled_flag</name> : 1</member>
+            <member><type>uint32_t</type>  <name>reserved</name> : 23</member>
         </type>
         <type category="struct" name="StdVideoEncodeH265PictureInfo">
             <member><type>StdVideoEncodeH265PictureInfoFlags</type>   <name>flags</name></member>
-            <member><type>StdVideoH265PictureType</type>              <name>PictureType</name></member>
+            <member><type>StdVideoH265PictureType</type>              <name>pic_type</name></member>
             <member><type>uint8_t</type>                              <name>sps_video_parameter_set_id</name><comment>Selecting VPS id from the Video Parameters Set</comment></member>
             <member><type>uint8_t</type>                              <name>pps_seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
             <member><type>uint8_t</type>                              <name>pps_pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member>
-            <member><type>int32_t</type>                              <name>PicOrderCntVal</name></member>
-            <member><type>uint8_t</type>                              <name>TemporalId</name></member>
+            <member><type>uint8_t</type>                              <name>short_term_ref_pic_set_idx</name></member>
+            <member><type>int32_t</type>                              <name>PicOrderCntVal</name><comment>Picture order count derived as specified in 8.3.1</comment></member>
+            <member><type>uint8_t</type>                              <name>TemporalId</name><comment>Temporal ID, as defined in 7.4.2.2</comment></member>
+            <member><type>uint8_t</type>                              <name>reserved1</name>[7]<comment>Reserved for future use and must be initialized with 0.</comment></member>
+            <member>const <type>StdVideoEncodeH265ReferenceListsInfo</type>* <name>pRefLists</name></member>
+            <member>const <type>StdVideoH265ShortTermRefPicSet</type>* <name>pShortTermRefPicSet</name><comment>Must be a valid pointer if short_term_ref_pic_set_sps_flag is not set</comment></member>
+            <member>const <type>StdVideoEncodeH265LongTermRefPics</type>* <name>pLongTermRefPics</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
         </type>
         <type category="struct" name="StdVideoEncodeH265ReferenceInfoFlags">
             <member><type>uint32_t</type>                             <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
             <member><type>uint32_t</type>                             <name>unused_for_reference</name> : 1<comment>A picture that is marked as "unused for reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
+            <member><type>uint32_t</type>                             <name>reserved</name> : 30</member>
         </type>
 
         <type category="struct" name="StdVideoEncodeH265ReferenceInfo">
             <member><type>StdVideoEncodeH265ReferenceInfoFlags</type> <name>flags</name></member>
-            <member><type>int32_t</type>                              <name>PicOrderCntVal</name></member>
-            <member><type>uint8_t</type>                              <name>TemporalId</name></member>
+            <member><type>StdVideoH265PictureType</type>              <name>pic_type</name></member>
+            <member><type>int32_t</type>                              <name>PicOrderCntVal</name><comment>Picture order count derived as specified in 8.3.1</comment></member>
+            <member><type>uint8_t</type>                              <name>TemporalId</name><comment>Temporal ID, as defined in 7.4.2.2</comment></member>
         </type>
     </types>
 
@@ -1016,6 +1043,7 @@
         <extension name="vulkan_video_codecs_common" comment="protect with VULKAN_VIDEO_CODEC_COMMON_H_" supported="vulkan">
             <require>
                 <type name="VK_MAKE_VIDEO_STD_VERSION"/>
+                <type name="stdint"/>
             </require>
         </extension>
         <extension name="vulkan_video_codec_h264std" comment="protect with VULKAN_VIDEO_CODEC_H264STD_H_" supported="vulkan">
@@ -1029,6 +1057,7 @@
                 <enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS"   value="64"/>
                 <enum name="STD_VIDEO_H264_MAX_NUM_LIST_REF"                value="32"/>
                 <enum name="STD_VIDEO_H264_MAX_CHROMA_PLANES"               value="2"/>
+                <enum name="STD_VIDEO_H264_NO_REFERENCE_PICTURE"            value="0xFF"/>
 
                 <type name="StdVideoH264ChromaFormatIdc"/>
                 <type name="StdVideoH264ProfileIdc"/>
@@ -1058,8 +1087,8 @@
             <require>
                 <type name="vk_video/vulkan_video_codec_h264std.h"/>
 
-                <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8"/>
-                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8"/>
+                <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0"/>
+                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0"/>
                 <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME"  value="&quot;VK_STD_vulkan_video_codec_h264_decode&quot;"/>
 
                 <enum name="STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE" value="2"/>
@@ -1075,8 +1104,8 @@
             <require>
                 <type name="vk_video/vulkan_video_codec_h264std.h"/>
 
-                <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
-                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
+                <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0"/>
+                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0"/>
                 <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME"  value="&quot;VK_STD_vulkan_video_codec_h264_encode&quot;"/>
 
                 <type name="StdVideoEncodeH264WeightTableFlags"/>
@@ -1084,10 +1113,10 @@
                 <type name="StdVideoEncodeH264SliceHeaderFlags"/>
                 <type name="StdVideoEncodeH264PictureInfoFlags"/>
                 <type name="StdVideoEncodeH264ReferenceInfoFlags"/>
-                <type name="StdVideoEncodeH264RefMgmtFlags"/>
+                <type name="StdVideoEncodeH264ReferenceListsInfoFlags"/>
                 <type name="StdVideoEncodeH264RefListModEntry"/>
                 <type name="StdVideoEncodeH264RefPicMarkingEntry"/>
-                <type name="StdVideoEncodeH264RefMemMgmtCtrlOperations"/>
+                <type name="StdVideoEncodeH264ReferenceListsInfo"/>
                 <type name="StdVideoEncodeH264PictureInfo"/>
                 <type name="StdVideoEncodeH264ReferenceInfo"/>
                 <type name="StdVideoEncodeH264SliceHeader"/>
@@ -1119,6 +1148,7 @@
                 <enum name="STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS"                  value="32"/>
                 <enum name="STD_VIDEO_H265_MAX_LONG_TERM_PICS"                          value="16"/>
                 <enum name="STD_VIDEO_H265_MAX_DELTA_POC"                               value="48"/>
+                <enum name="STD_VIDEO_H265_NO_REFERENCE_PICTURE"                        value="0xFF"/>
 
                 <type name="StdVideoH265ChromaFormatIdc"/>
                 <type name="StdVideoH265ProfileIdc"/>
@@ -1131,12 +1161,17 @@
                 <type name="StdVideoH265HrdFlags"/>
                 <type name="StdVideoH265HrdParameters"/>
                 <type name="StdVideoH265VpsFlags"/>
+                <type name="StdVideoH265ProfileTierLevelFlags"/>
+                <type name="StdVideoH265ProfileTierLevel"/>
                 <type name="StdVideoH265VideoParameterSet"/>
                 <type name="StdVideoH265ScalingLists"/>
                 <type name="StdVideoH265SpsVuiFlags"/>
                 <type name="StdVideoH265SequenceParameterSetVui"/>
                 <type name="StdVideoH265PredictorPaletteEntries"/>
                 <type name="StdVideoH265SpsFlags"/>
+                <type name="StdVideoH265ShortTermRefPicSetFlags"/>
+                <type name="StdVideoH265ShortTermRefPicSet"/>
+                <type name="StdVideoH265LongTermRefPicsSps"/>
                 <type name="StdVideoH265SequenceParameterSet"/>
                 <type name="StdVideoH265PpsFlags"/>
                 <type name="StdVideoH265PictureParameterSet"/>
@@ -1146,8 +1181,8 @@
             <require>
                 <type name="vk_video/vulkan_video_codec_h265std.h"/>
 
-                <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9"/>
-                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9"/>
+                <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0"/>
+                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0"/>
                 <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME"  value="&quot;VK_STD_vulkan_video_codec_h265_decode&quot;"/>
 
                 <enum name="STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE"    value="8"/>
@@ -1162,17 +1197,18 @@
             <require>
                 <type name="vk_video/vulkan_video_codec_h265std.h"/>
 
-                <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
-                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
+                <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0"/>
+                <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION"    value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0"/>
                 <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME"  value="&quot;VK_STD_vulkan_video_codec_h265_encode&quot;"/>
 
                 <type name="StdVideoEncodeH265WeightTableFlags"/>
                 <type name="StdVideoEncodeH265WeightTable"/>
                 <type name="StdVideoEncodeH265SliceSegmentHeaderFlags"/>
                 <type name="StdVideoEncodeH265SliceSegmentHeader"/>
-                <type name="StdVideoEncodeH265ReferenceModificationFlags"/>
-                <type name="StdVideoEncodeH265ReferenceModifications"/>
+                <type name="StdVideoEncodeH265ReferenceListsInfoFlags"/>
+                <type name="StdVideoEncodeH265ReferenceListsInfo"/>
                 <type name="StdVideoEncodeH265PictureInfoFlags"/>
+                <type name="StdVideoEncodeH265LongTermRefPics"/>
                 <type name="StdVideoEncodeH265PictureInfo"/>
                 <type name="StdVideoEncodeH265ReferenceInfoFlags"/>
                 <type name="StdVideoEncodeH265ReferenceInfo"/>
diff --git a/registry/vk.xml b/registry/vk.xml
index 37dd6af..fa39728 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright 2015-2022 The Khronos Group Inc.
+Copyright 2015-2024 The Khronos Group Inc.
 
 SPDX-License-Identifier: Apache-2.0 OR MIT
     </comment>
@@ -32,12 +32,13 @@
         <platform name="metal" protect="VK_USE_PLATFORM_METAL_EXT" comment="Metal on CoreAnimation on Apple platforms"/>
         <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/>
         <platform name="ggp" protect="VK_USE_PLATFORM_GGP" comment="Google Games Platform"/>
+        <platform name="sci" protect="VK_USE_PLATFORM_SCI" comment="NVIDIA SCI"/>
         <platform name="provisional" protect="VK_ENABLE_BETA_EXTENSIONS" comment="Enable declarations for beta/provisional extensions"/>
         <platform name="screen" protect="VK_USE_PLATFORM_SCREEN_QNX" comment="QNX Screen Graphics Subsystem"/>
     </platforms>
 
     <tags comment="Vulkan vendor/author tags for extensions and layers">
-        <tag name="IMG"         author="Imagination Technologies"      contact="Michael Worcester @michaelworcester"/>
+        <tag name="IMG"         author="Imagination Technologies"      contact="Andrew Garrard @fluppeteer"/>
         <tag name="AMD"         author="Advanced Micro Devices, Inc."  contact="Daniel Rakos @drakos-amd"/>
         <tag name="AMDX"        author="Advanced Micro Devices, Inc."  contact="Daniel Rakos @drakos-amd"/>
         <tag name="ARM"         author="ARM Limited"                   contact="Jan-Harald Fredriksen @janharaldfredriksen-arm"/>
@@ -66,14 +67,15 @@
         <tag name="KHR"         author="Khronos"                       contact="Tom Olson @tomolson"/>
         <tag name="KHX"         author="Khronos"                       contact="Tom Olson @tomolson"/>
         <tag name="EXT"         author="Multivendor"                   contact="Jon Leech @oddhack"/>
-        <tag name="MESA"        author="Mesa open source project"      contact="Chad Versace @chadversary, Daniel Stone @fooishbar, David Airlie @airlied, Jason Ekstrand @jekstrand"/>
+        <tag name="MESA"        author="Mesa open source project"      contact="Lina Versace @versalinyaa, Daniel Stone @fooishbar, David Airlie @airlied, Faith Ekstrand @gfxstrand"/>
         <tag name="INTEL"       author="Intel Corporation"             contact="Slawek Grajewski @sgrajewski"/>
         <tag name="HUAWEI"      author="Huawei Technologies Co. Ltd."  contact="Pan Gao @PanGao-h, Juntao Li @Lawrenceleehw"/>
         <tag name="VALVE"       author="Valve Corporation"             contact="Pierre-Loup Griffais @plagman, Joshua Ashton @Joshua-Ashton, Hans-Kristian Arntzen @HansKristian-Work"/>
-        <tag name="QNX"         author="BlackBerry Limited"            contact="Mike Gorchak @mgorchak-blackberry"/>
+        <tag name="QNX"         author="BlackBerry Limited"            contact="Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry"/>
         <tag name="JUICE"       author="Juice Technologies, Inc."      contact="David McCloskey @damcclos, Dean Beeler @canadacow"/>
         <tag name="FB"          author="Facebook, Inc"                 contact="Artem Bolgar @artyom17"/>
-        <tag name="RASTERGRID"  author="RasterGrid Kft."               contact="Daniel Rakos @aqnuep1"/>
+        <tag name="RASTERGRID"  author="RasterGrid Kft."               contact="Daniel Rakos @aqnuep"/>
+        <tag name="MSFT"        author="Microsoft Corporation"         contact="Jesse Natalie @jenatali"/>
     </tags>
 
     <types comment="Vulkan type definitions">
@@ -90,6 +92,8 @@
         <type category="include" name="zircon/types.h"/>
         <type category="include" name="ggp_c/vulkan_types.h"/>
         <type category="include" name="screen/screen.h"/>
+        <type category="include" name="nvscisync.h"/>
+        <type category="include" name="nvscibuf.h"/>
             <comment>
                 In the current header structure, each platform's interfaces
                 are confined to a platform-specific header (vulkan_xlib.h,
@@ -130,45 +134,63 @@
         <type requires="ggp_c/vulkan_types.h" name="GgpFrameToken"/>
         <type requires="screen/screen.h" name="_screen_context"/>
         <type requires="screen/screen.h" name="_screen_window"/>
+        <type requires="screen/screen.h" name="_screen_buffer"/>
+        <type requires="nvscisync.h" name="NvSciSyncAttrList"/>
+        <type requires="nvscisync.h" name="NvSciSyncObj"/>
+        <type requires="nvscisync.h" name="NvSciSyncFence"/>
+        <type requires="nvscibuf.h" name="NvSciBufAttrList"/>
+        <type requires="nvscibuf.h" name="NvSciBufObj"/>
 
-        <type category="define">// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
+        <type category="define" deprecated="true">// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
 #define <name>VK_MAKE_VERSION</name>(major, minor, patch) \
-    ((((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
-        <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
-#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) &gt;&gt; 22)</type>
-        <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
-#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
-        <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
+    ((((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</type>
+        <type category="define" deprecated="true">// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
+#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) &gt;&gt; 22U)</type>
+        <type category="define" deprecated="true">// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
+#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</type>
+        <type category="define" deprecated="true">// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
 #define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
 
         <type category="define">#define <name>VK_MAKE_API_VERSION</name>(variant, major, minor, patch) \
-    ((((uint32_t)(variant)) &lt;&lt; 29) | (((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
-        <type category="define">#define <name>VK_API_VERSION_VARIANT</name>(version) ((uint32_t)(version) &gt;&gt; 29)</type>
-        <type category="define">#define <name>VK_API_VERSION_MAJOR</name>(version) (((uint32_t)(version) &gt;&gt; 22) &amp; 0x7FU)</type>
-        <type category="define">#define <name>VK_API_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
+    ((((uint32_t)(variant)) &lt;&lt; 29U) | (((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</type>
+        <type category="define">#define <name>VK_API_VERSION_VARIANT</name>(version) ((uint32_t)(version) &gt;&gt; 29U)</type>
+        <type category="define">#define <name>VK_API_VERSION_MAJOR</name>(version) (((uint32_t)(version) &gt;&gt; 22U) &amp; 0x7FU)</type>
+        <type category="define">#define <name>VK_API_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</type>
         <type category="define">#define <name>VK_API_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
 
+        <type category="define" requires="VK_HEADER_VERSION">// Vulkan SC variant number
+#define <name>VKSC_API_VARIANT</name> 1</type>
+
         <type category="define">// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
-//#define <name>VK_API_VERSION</name> <type>VK_MAKE_VERSION</type>(1, 0, 0) // Patch version should always be set to 0</type>
-        <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.0 version number
+//#define <name>VK_API_VERSION</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 0, 0) // Patch version should always be set to 0</type>
+        <type category="define">// Vulkan 1.0 version number
 #define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 0, 0)// Patch version should always be set to 0</type>
-        <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.1 version number
+        <type category="define">// Vulkan 1.1 version number
 #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 1, 0)// Patch version should always be set to 0</type>
-        <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.2 version number
+        <type category="define">// Vulkan 1.2 version number
 #define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, 0)// Patch version should always be set to 0</type>
         <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.3 version number
 #define <name>VK_API_VERSION_1_3</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, 0)// Patch version should always be set to 0</type>
-        <type category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 237</type>
-        <type 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 category="define" requires="VKSC_API_VARIANT">// Vulkan SC 1.0 version number
+#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 category="define">
+        <type api="vulkan" category="define">// Version of this file
+#define <name>VK_HEADER_VERSION</name> 275</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
+#define <name>VK_HEADER_VERSION</name> 14</type>
+        <type api="vulkansc" category="define" requires="VKSC_API_VARIANT">// Complete version of this file
+#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION)</type>
+
+        <type api="vulkan" category="define">
 #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
+        <type api="vulkansc" category="define" comment="Extra parenthesis are a MISRA-C requirement that exposes a bug in MSVC">
+#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* (object);</type>
 
         <type category="define" name="VK_USE_64_BIT_PTR_DEFINES">
 #ifndef VK_USE_64_BIT_PTR_DEFINES
-    #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) &amp;&amp; !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
+    #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) &amp;&amp; !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) &amp;&amp; __riscv_xlen == 64)
         #define VK_USE_64_BIT_PTR_DEFINES 1
     #else
         #define VK_USE_64_BIT_PTR_DEFINES 0
@@ -189,7 +211,7 @@
 #ifndef VK_NULL_HANDLE
     #define VK_NULL_HANDLE 0
 #endif</type>
-        <type category="define" requires="VK_NULL_HANDLE" name="VK_DEFINE_NON_DISPATCHABLE_HANDLE">
+        <type api="vulkan" category="define" requires="VK_NULL_HANDLE" name="VK_DEFINE_NON_DISPATCHABLE_HANDLE">
 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
     #if (VK_USE_64_BIT_PTR_DEFINES==1)
         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
@@ -197,6 +219,14 @@
         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
     #endif
 #endif</type>
+        <type api="vulkansc" category="define" requires="VK_NULL_HANDLE" name="VK_DEFINE_NON_DISPATCHABLE_HANDLE" comment="Extra parenthesis are a MISRA-C requirement that exposes a bug in MSVC">
+#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
+    #if (VK_USE_64_BIT_PTR_DEFINES==1)
+        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *(object);
+    #else
+        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t (object);
+    #endif
+#endif</type>
 
         <type category="basetype">struct <name>ANativeWindow</name>;</type>
         <type category="basetype">struct <name>AHardwareBuffer</name>;</type>
@@ -267,9 +297,11 @@
         <type requires="VkSamplerCreateFlagBits"          category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type>
         <type requires="VkPipelineLayoutCreateFlagBits"   category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineLayoutCreateFlags</name>;</type>
         <type requires="VkPipelineCacheCreateFlagBits"    category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCacheCreateFlags</name>;</type>
-        <type requires="VkPipelineDepthStencilStateCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDepthStencilStateCreateFlags</name>;</type>
+        <type api="vulkan" requires="VkPipelineDepthStencilStateCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDepthStencilStateCreateFlags</name>;</type>
+        <type api="vulkansc" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDepthStencilStateCreateFlags</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDynamicStateCreateFlags</name>;</type>
-        <type requires="VkPipelineColorBlendStateCreateFlagBits"   category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineColorBlendStateCreateFlags</name>;</type>
+        <type api="vulkan" requires="VkPipelineColorBlendStateCreateFlagBits"   category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineColorBlendStateCreateFlags</name>;</type>
+        <type api="vulkansc" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineColorBlendStateCreateFlags</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineMultisampleStateCreateFlags</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateCreateFlags</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportStateCreateFlags</name>;</type>
@@ -307,6 +339,7 @@
         <type requires="VkCommandBufferUsageFlagBits"     category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferUsageFlags</name>;</type>
         <type requires="VkQueryPipelineStatisticFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPipelineStatisticFlags</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryMapFlags</name>;</type>
+        <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryUnmapFlagsKHR</name>;</type>
         <type requires="VkImageAspectFlagBits"            category="bitmask">typedef <type>VkFlags</type> <name>VkImageAspectFlags</name>;</type>
         <type requires="VkSparseMemoryBindFlagBits"       category="bitmask">typedef <type>VkFlags</type> <name>VkSparseMemoryBindFlags</name>;</type>
         <type requires="VkSparseImageFormatFlagBits"      category="bitmask">typedef <type>VkFlags</type> <name>VkSparseImageFormatFlags</name>;</type>
@@ -342,6 +375,7 @@
         <type requires="VkPipelineCompilerControlFlagBitsAMD" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCompilerControlFlagsAMD</name>;</type>
         <type requires="VkShaderCorePropertiesFlagBitsAMD" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderCorePropertiesFlagsAMD</name>;</type>
         <type requires="VkDeviceDiagnosticsConfigFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceDiagnosticsConfigFlagsNV</name>;</type>
+        <type requires="VkRefreshObjectFlagBitsKHR"       category="bitmask">typedef <type>VkFlags</type> <name>VkRefreshObjectFlagsKHR</name>;</type>
         <type bitvalues="VkAccessFlagBits2"               category="bitmask">typedef <type>VkFlags64</type> <name>VkAccessFlags2</name>;</type>
         <type                                             category="bitmask" name="VkAccessFlags2KHR" alias="VkAccessFlags2"/>
         <type bitvalues="VkPipelineStageFlagBits2"        category="bitmask">typedef <type>VkFlags64</type> <name>VkPipelineStageFlags2</name>;</type>
@@ -356,6 +390,8 @@
         <type requires="VkBuildMicromapFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildMicromapFlagsEXT</name>;</type>
         <type requires="VkMicromapCreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkMicromapCreateFlagsEXT</name>;</type>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkDirectDriverLoadingFlagsLUNARG</name>;</type>
+        <type bitvalues="VkPipelineCreateFlagBits2KHR"    category="bitmask">typedef <type>VkFlags64</type> <name>VkPipelineCreateFlags2KHR</name>;</type>
+        <type bitvalues="VkBufferUsageFlagBits2KHR"       category="bitmask">typedef <type>VkFlags64</type> <name>VkBufferUsageFlags2KHR</name>;</type>
 
             <comment>WSI extensions</comment>
         <type requires="VkCompositeAlphaFlagBitsKHR"      category="bitmask">typedef <type>VkFlags</type> <name>VkCompositeAlphaFlagsKHR</name>;</type>
@@ -431,6 +467,7 @@
         <type requires="VkSubmitFlagBits"                 category="bitmask">typedef <type>VkFlags</type> <name>VkSubmitFlags</name>;</type>
         <type                                             category="bitmask" name="VkSubmitFlagsKHR"                          alias="VkSubmitFlags"/>
         <type                                             category="bitmask">typedef <type>VkFlags</type> <name>VkImageFormatConstraintsFlagsFUCHSIA</name>;</type>
+        <type requires="VkHostImageCopyFlagBitsEXT"       category="bitmask">typedef <type>VkFlags</type> <name>VkHostImageCopyFlagsEXT</name>;</type>
         <type requires="VkImageConstraintsInfoFlagBitsFUCHSIA"   category="bitmask">typedef <type>VkFlags</type> <name>VkImageConstraintsInfoFlagsFUCHSIA</name>;</type>
         <type requires="VkGraphicsPipelineLibraryFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkGraphicsPipelineLibraryFlagsEXT</name>;</type>
         <type requires="VkImageCompressionFlagBitsEXT"          category="bitmask">typedef <type>VkFlags</type> <name>VkImageCompressionFlagsEXT</name>;</type>
@@ -441,8 +478,11 @@
         <type requires="VkOpticalFlowUsageFlagBitsNV"           category="bitmask">typedef <type>VkFlags</type>   <name>VkOpticalFlowUsageFlagsNV</name>;</type>
         <type requires="VkOpticalFlowSessionCreateFlagBitsNV"   category="bitmask">typedef <type>VkFlags</type>   <name>VkOpticalFlowSessionCreateFlagsNV</name>;</type>
         <type requires="VkOpticalFlowExecuteFlagBitsNV"         category="bitmask">typedef <type>VkFlags</type>   <name>VkOpticalFlowExecuteFlagsNV</name>;</type>
+        <type requires="VkFrameBoundaryFlagBitsEXT"       category="bitmask">typedef <type>VkFlags</type> <name>VkFrameBoundaryFlagsEXT</name>;</type>
         <type requires="VkPresentScalingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkPresentScalingFlagsEXT</name>;</type>
         <type requires="VkPresentGravityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkPresentGravityFlagsEXT</name>;</type>
+        <type requires="VkShaderCreateFlagBitsEXT"        category="bitmask">typedef <type>VkFlags</type> <name>VkShaderCreateFlagsEXT</name>;</type>
+        <type bitvalues="VkPhysicalDeviceSchedulingControlsFlagBitsARM" category="bitmask">typedef <type>VkFlags64</type> <name>VkPhysicalDeviceSchedulingControlsFlagsARM</name>;</type>
 
             <comment>Video Core extension</comment>
         <type requires="VkVideoCodecOperationFlagBitsKHR"           category="bitmask">typedef <type>VkFlags</type> <name>VkVideoCodecOperationFlagsKHR</name>;</type>
@@ -459,29 +499,30 @@
         <type                                                       category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeFlagsKHR</name>;</type>
 
             <comment>Video Decode H.264 extension</comment>
-        <type requires="VkVideoDecodeH264PictureLayoutFlagBitsEXT"  category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH264PictureLayoutFlagsEXT</name>;</type>
+        <type requires="VkVideoDecodeH264PictureLayoutFlagBitsKHR"  category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH264PictureLayoutFlagsKHR</name>;</type>
 
             <comment>Video Encode Core extension</comment>
         <type                                                       category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFlagsKHR</name>;</type>
         <type requires="VkVideoEncodeUsageFlagBitsKHR"              category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeUsageFlagsKHR</name>;</type>
         <type requires="VkVideoEncodeContentFlagBitsKHR"            category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeContentFlagsKHR</name>;</type>
         <type requires="VkVideoEncodeCapabilityFlagBitsKHR"         category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeCapabilityFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeFeedbackFlagBitsKHR"           category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFeedbackFlagsKHR</name>;</type>
         <type                                                       category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlFlagsKHR</name>;</type>
         <type requires="VkVideoEncodeRateControlModeFlagBitsKHR"    category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlModeFlagsKHR</name>;</type>
         <type requires="VkVideoChromaSubsamplingFlagBitsKHR"        category="bitmask">typedef <type>VkFlags</type> <name>VkVideoChromaSubsamplingFlagsKHR</name>;</type>
         <type requires="VkVideoComponentBitDepthFlagBitsKHR"        category="bitmask">typedef <type>VkFlags</type> <name>VkVideoComponentBitDepthFlagsKHR</name>;</type>
 
             <comment>Video Encode H.264 extension</comment>
-        <type requires="VkVideoEncodeH264CapabilityFlagBitsEXT"     category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CapabilityFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH264InputModeFlagBitsEXT"      category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264InputModeFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH264OutputModeFlagBitsEXT"     category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264OutputModeFlagsEXT</name>;</type>
+        <type requires="VkVideoEncodeH264CapabilityFlagBitsKHR"             category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CapabilityFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH264StdFlagBitsKHR"                    category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264StdFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH264RateControlFlagBitsKHR"            category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264RateControlFlagsKHR</name>;</type>
 
             <comment>Video Encode H.265 extension</comment>
-        <type requires="VkVideoEncodeH265CapabilityFlagBitsEXT"     category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH265InputModeFlagBitsEXT"      category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265InputModeFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH265OutputModeFlagBitsEXT"     category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH265CtbSizeFlagBitsEXT"        category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsEXT</name>;</type>
-        <type requires="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT"        category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsEXT</name>;</type>
+        <type requires="VkVideoEncodeH265CapabilityFlagBitsKHR"             category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH265StdFlagBitsKHR"                    category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265StdFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH265RateControlFlagBitsKHR"            category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265RateControlFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH265CtbSizeFlagBitsKHR"                category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsKHR</name>;</type>
+        <type requires="VkVideoEncodeH265TransformBlockSizeFlagBitsKHR"     category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsKHR</name>;</type>
 
             <comment>Types which can be void pointers or class pointers, selected at compile time</comment>
         <type category="handle"                           objtypeenum="VK_OBJECT_TYPE_INSTANCE"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
@@ -526,6 +567,7 @@
         <type category="handle" parent="VkDevice"         objtypeenum="VK_OBJECT_TYPE_CU_FUNCTION_NVX"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCuFunctionNVX</name>)</type>
         <type category="handle" parent="VkDevice"         objtypeenum="VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkOpticalFlowSessionNV</name>)</type>
         <type category="handle" parent="VkDevice"         objtypeenum="VK_OBJECT_TYPE_MICROMAP_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkMicromapEXT</name>)</type>
+        <type category="handle" parent="VkDevice"         objtypeenum="VK_OBJECT_TYPE_SHADER_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkShaderEXT</name>)</type>
 
             <comment>WSI extensions</comment>
         <type category="handle" parent="VkPhysicalDevice" objtypeenum="VK_OBJECT_TYPE_DISPLAY_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type>
@@ -539,6 +581,9 @@
         <type category="handle" parent="VkDevice"          objtypeenum="VK_OBJECT_TYPE_VIDEO_SESSION_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkVideoSessionKHR</name>)</type>
         <type category="handle" parent="VkVideoSessionKHR" objtypeenum="VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkVideoSessionParametersKHR</name>)</type>
 
+            <comment>VK_NV_external_sci_sync2</comment>
+        <type category="handle" parent="VkDevice"          objtypeenum="VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSemaphoreSciSyncPoolNV</name>)</type>
+
             <comment>Types generated from corresponding enums tags below</comment>
         <type name="VkAttachmentLoadOp" category="enum"/>
         <type name="VkAttachmentStoreOp" category="enum"/>
@@ -641,7 +686,8 @@
         <type name="VkShaderInfoTypeAMD" category="enum"/>
         <type name="VkQueueGlobalPriorityKHR" category="enum"/>
         <type name="VkQueueGlobalPriorityEXT" category="enum"                      alias="VkQueueGlobalPriorityKHR"/>
-        <type name="VkTimeDomainEXT" category="enum"/>
+        <type name="VkTimeDomainKHR" category="enum"/>
+        <type name="VkTimeDomainEXT" category="enum" alias="VkTimeDomainKHR"/>
         <type name="VkConservativeRasterizationModeEXT" category="enum"/>
         <type name="VkResolveModeFlagBits" category="enum"/>
         <type category="enum" name="VkResolveModeFlagBitsKHR"                      alias="VkResolveModeFlagBits"/>
@@ -671,8 +717,6 @@
         <type name="VkAccelerationStructureCompatibilityKHR" category="enum"/>
         <type name="VkShaderGroupShaderKHR" category="enum"/>
         <type name="VkMemoryOverallocationBehaviorAMD" category="enum"/>
-        <type name="VkScopeNV" category="enum"/>
-        <type name="VkComponentTypeNV" category="enum"/>
         <type name="VkDeviceDiagnosticsConfigFlagBitsNV" category="enum"/>
         <type name="VkPipelineCreationFeedbackFlagBits" category="enum"/>
         <type category="enum" name="VkPipelineCreationFeedbackFlagBitsEXT"         alias="VkPipelineCreationFeedbackFlagBits"/>
@@ -692,6 +736,13 @@
         <type name="VkShaderModuleCreateFlagBits" category="enum"/>
         <type name="VkPipelineCompilerControlFlagBitsAMD" category="enum"/>
         <type name="VkShaderCorePropertiesFlagBitsAMD" category="enum"/>
+        <type name="VkRefreshObjectFlagBitsKHR" category="enum"/>
+        <type name="VkFaultLevel" category="enum"/>
+        <type name="VkFaultType" category="enum"/>
+        <type name="VkFaultQueryBehavior" category="enum"/>
+        <type name="VkPipelineMatchControl" category="enum"/>
+        <type name="VkSciSyncClientTypeNV" category="enum"/>
+        <type name="VkSciSyncPrimitiveTypeNV" category="enum"/>
         <type name="VkToolPurposeFlagBits" category="enum"/>
         <type category="enum" name="VkToolPurposeFlagBitsEXT"                      alias="VkToolPurposeFlagBits"/>
         <type name="VkFragmentShadingRateNV" category="enum"/>
@@ -702,7 +753,9 @@
         <type name="VkPipelineStageFlagBits2" category="enum"/>
         <type category="enum" name="VkPipelineStageFlagBits2KHR"                   alias="VkPipelineStageFlagBits2"/>
         <type name="VkProvokingVertexModeEXT" category="enum"/>
+        <type name="VkPipelineCacheValidationVersion" category="enum"/>
         <type name="VkImageFormatConstraintsFlagBitsFUCHSIA" category="enum"/>
+        <type name="VkHostImageCopyFlagBitsEXT" category="enum"/>
         <type name="VkImageConstraintsInfoFlagBitsFUCHSIA" category="enum"/>
         <type name="VkFormatFeatureFlagBits2" category="enum"/>
         <type category="enum" name="VkFormatFeatureFlagBits2KHR"                   alias="VkFormatFeatureFlagBits2"/>
@@ -725,8 +778,22 @@
         <type name="VkOpacityMicromapFormatEXT" category="enum"/>
         <type name="VkOpacityMicromapSpecialIndexEXT" category="enum"/>
         <type name="VkDeviceFaultVendorBinaryHeaderVersionEXT" category="enum"/>
+        <type name="VkFrameBoundaryFlagBitsEXT" category="enum"/>
         <type name="VkMemoryDecompressionMethodFlagBitsNV" category="enum"/>
+        <type name="VkDepthBiasRepresentationEXT" category="enum"/>
         <type name="VkDirectDriverLoadingModeLUNARG" category="enum"/>
+        <type name="VkPipelineCreateFlagBits2KHR" category="enum"/>
+        <type name="VkBufferUsageFlagBits2KHR" category="enum"/>
+        <type name="VkDisplacementMicromapFormatNV" category="enum"/>
+        <type name="VkShaderCreateFlagBitsEXT" category="enum"/>
+        <type name="VkShaderCodeTypeEXT" category="enum"/>
+        <type name="VkScopeKHR" category="enum"/>
+        <type name="VkComponentTypeKHR" category="enum"/>
+        <type category="enum" name="VkScopeNV"                                     alias="VkScopeKHR"/>
+        <type category="enum" name="VkComponentTypeNV"                             alias="VkComponentTypeKHR"/>
+        <type name="VkCubicFilterWeightsQCOM" category="enum"/>
+        <type name="VkBlockMatchWindowCompareModeQCOM" category="enum"/>
+        <type name="VkLayeredDriverUnderlyingApiMSFT" category="enum"/>
 
             <comment>WSI extensions</comment>
         <type name="VkColorSpaceKHR" category="enum"/>
@@ -800,6 +867,10 @@
         <type name="VkDeviceFaultAddressTypeEXT" category="enum"/>
         <type name="VkPresentScalingFlagBitsEXT" category="enum"/>
         <type name="VkPresentGravityFlagBitsEXT" category="enum"/>
+        <type name="VkLayerSettingTypeEXT" category="enum"/>
+        <type name="VkLatencyMarkerNV" category="enum"/>
+        <type name="VkOutOfBandQueueTypeNV" category="enum"/>
+        <type name="VkPhysicalDeviceSchedulingControlsFlagBitsARM" category="enum"/>
 
             <comment>Enumerated types in the header, but not used by the API</comment>
         <type name="VkVendorId" category="enum"/>
@@ -823,7 +894,7 @@
         <type name="VkVideoDecodeCapabilityFlagBitsKHR" category="enum"/>
 
             <comment>Video H.264 Decode extensions</comment>
-        <type name="VkVideoDecodeH264PictureLayoutFlagBitsEXT" category="enum"/>
+        <type name="VkVideoDecodeH264PictureLayoutFlagBitsKHR" category="enum"/>
 
             <comment>Video H.265 Decode extensions</comment>
 
@@ -832,21 +903,20 @@
         <type name="VkVideoEncodeContentFlagBitsKHR" category="enum"/>
         <type name="VkVideoEncodeTuningModeKHR" category="enum"/>
         <type name="VkVideoEncodeCapabilityFlagBitsKHR" category="enum"/>
+        <type name="VkVideoEncodeFeedbackFlagBitsKHR" category="enum"/>
         <type name="VkVideoEncodeRateControlModeFlagBitsKHR" category="enum"/>
 
            <comment>Video H.264 Encode extensions</comment>
-        <type name="VkVideoEncodeH264CapabilityFlagBitsEXT"     category="enum"/>
-        <type name="VkVideoEncodeH264InputModeFlagBitsEXT"      category="enum"/>
-        <type name="VkVideoEncodeH264OutputModeFlagBitsEXT"     category="enum"/>
-        <type name="VkVideoEncodeH264RateControlStructureEXT"   category="enum"/>
+        <type name="VkVideoEncodeH264CapabilityFlagBitsKHR"             category="enum"/>
+        <type name="VkVideoEncodeH264StdFlagBitsKHR"                    category="enum"/>
+        <type name="VkVideoEncodeH264RateControlFlagBitsKHR"            category="enum"/>
 
            <comment>Video H.265 Encode extensions</comment>
-        <type name="VkVideoEncodeH265CapabilityFlagBitsEXT"     category="enum"/>
-        <type name="VkVideoEncodeH265InputModeFlagBitsEXT"      category="enum"/>
-        <type name="VkVideoEncodeH265OutputModeFlagBitsEXT"     category="enum"/>
-        <type name="VkVideoEncodeH265RateControlStructureEXT"   category="enum"/>
-        <type name="VkVideoEncodeH265CtbSizeFlagBitsEXT"        category="enum"/>
-        <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT"        category="enum"/>
+        <type name="VkVideoEncodeH265CapabilityFlagBitsKHR"             category="enum"/>
+        <type name="VkVideoEncodeH265StdFlagBitsKHR"                    category="enum"/>
+        <type name="VkVideoEncodeH265RateControlFlagBitsKHR"            category="enum"/>
+        <type name="VkVideoEncodeH265CtbSizeFlagBitsKHR"                category="enum"/>
+        <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsKHR"     category="enum"/>
 
         <comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment>
         <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)(
@@ -895,6 +965,12 @@
     const <type>VkDebugUtilsMessengerCallbackDataEXT</type>*      pCallbackData,
     <type>void</type>*                                            pUserData);</type>
 
+            <comment>The PFN_vkFaultCallbackFunction type is used by VKSC_VERSION_1_0</comment>
+        <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkFaultCallbackFunction</name>)(
+    <type>VkBool32</type>                                    unrecordedFaults,
+    <type>uint32_t</type>                                    faultCount,
+    const <type>VkFaultData</type>*                          pFaults);</type>
+
             <comment>The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension</comment>
         <type category="funcpointer" requires="VkDeviceMemoryReportCallbackDataEXT">typedef void (VKAPI_PTR *<name>PFN_vkDeviceMemoryReportCallbackEXT</name>)(
     const <type>VkDeviceMemoryReportCallbackDataEXT</type>*  pCallbackData,
@@ -1011,8 +1087,8 @@
             <member optional="true"><type>VkDeviceCreateFlags</type>    <name>flags</name></member>
             <member><type>uint32_t</type>        <name>queueCreateInfoCount</name></member>
             <member len="queueCreateInfoCount">const <type>VkDeviceQueueCreateInfo</type>* <name>pQueueCreateInfos</name></member>
-            <member optional="true"><type>uint32_t</type>               <name>enabledLayerCount</name></member>
-            <member len="enabledLayerCount,null-terminated">const <type>char</type>* const*      <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member>
+            <member optional="true" deprecated="ignored"><type>uint32_t</type>               <name>enabledLayerCount</name></member>
+            <member len="enabledLayerCount,null-terminated" deprecated="ignored">const <type>char</type>* const*      <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member>
             <member optional="true"><type>uint32_t</type>               <name>enabledExtensionCount</name></member>
             <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const*      <name>ppEnabledExtensionNames</name></member>
             <member optional="true">const <type>VkPhysicalDeviceFeatures</type>* <name>pEnabledFeatures</name></member>
@@ -1122,12 +1198,17 @@
             <member><type>uint32_t</type>               <name>dstArrayElement</name><comment>Array element within the destination binding to copy to</comment></member>
             <member><type>uint32_t</type>               <name>descriptorCount</name><comment>Number of descriptors to write (determines the size of the array pointed by pDescriptors)</comment></member>
         </type>
+        <type category="struct" name="VkBufferUsageFlags2CreateInfoKHR" structextends="VkBufferViewCreateInfo,VkBufferCreateInfo,VkPhysicalDeviceExternalBufferInfo,VkDescriptorBufferBindingInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBufferUsageFlags2KHR</type>         <name>usage</name></member>
+        </type>
         <type category="struct" name="VkBufferCreateInfo">
             <member values="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member optional="true"><type>VkBufferCreateFlags</type>    <name>flags</name><comment>Buffer creation flags</comment></member>
             <member><type>VkDeviceSize</type>           <name>size</name><comment>Specified in bytes</comment></member>
-            <member><type>VkBufferUsageFlags</type>     <name>usage</name><comment>Buffer usage flags</comment></member>
+            <member noautovalidity="true"><type>VkBufferUsageFlags</type>     <name>usage</name><comment>Buffer usage flags</comment></member>
             <member><type>VkSharingMode</type>          <name>sharingMode</name></member>
             <member optional="true"><type>uint32_t</type>               <name>queueFamilyIndexCount</name></member>
             <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>*        <name>pQueueFamilyIndices</name></member>
@@ -1368,19 +1449,32 @@
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member optional="true"><type>VkPipelineShaderStageCreateFlags</type>    <name>flags</name></member>
             <member><type>VkShaderStageFlagBits</type>  <name>stage</name><comment>Shader stage</comment></member>
-            <member optional="true"><type>VkShaderModule</type>         <name>module</name><comment>Module containing entry point</comment></member>
-            <member len="null-terminated">const <type>char</type>*            <name>pName</name><comment>Null-terminated entry point name</comment></member>
+            <member optional="true"><type>VkShaderModule</type> <name>module</name><comment>Module containing entry point</comment></member>
+            <member api="vulkan" len="null-terminated">const <type>char</type>* <name>pName</name><comment>Null-terminated entry point name</comment></member>
+            <member api="vulkansc" optional="true" len="null-terminated">const <type>char</type>* <name>pName</name><comment>Null-terminated entry point name</comment></member>
             <member optional="true">const <type>VkSpecializationInfo</type>* <name>pSpecializationInfo</name></member>
         </type>
         <type category="struct" name="VkComputePipelineCreateInfo">
             <member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
+            <member noautovalidity="true" optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
             <member><type>VkPipelineShaderStageCreateInfo</type> <name>stage</name></member>
             <member><type>VkPipelineLayout</type>       <name>layout</name><comment>Interface layout of the pipeline</comment></member>
             <member noautovalidity="true" optional="true"><type>VkPipeline</type>      <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
             <member><type>int32_t</type>                <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
         </type>
+        <type category="struct" name="VkComputePipelineIndirectBufferInfoNV">
+            <member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*   <name>pNext</name></member>
+            <member><type>VkDeviceAddress</type>               <name>deviceAddress</name></member>
+            <member><type>VkDeviceSize</type>                  <name>size</name></member>
+            <member><type>VkDeviceAddress</type>               <name>pipelineDeviceAddressCaptureReplay</name></member>
+        </type>
+        <type category="struct" name="VkPipelineCreateFlags2CreateInfoKHR" structextends="VkComputePipelineCreateInfo,VkGraphicsPipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkPipelineCreateFlags2KHR</type>      <name>flags</name></member>
+        </type>
         <type category="struct" name="VkVertexInputBindingDescription">
             <member><type>uint32_t</type>               <name>binding</name><comment>Vertex buffer binding id</comment></member>
             <member><type>uint32_t</type>               <name>stride</name><comment>Distance between vertices in bytes (0 = no advancement)</comment></member>
@@ -1502,9 +1596,10 @@
         <type category="struct" name="VkGraphicsPipelineCreateInfo">
             <member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
-            <member noautovalidity="true" optional="true"><type>uint32_t</type>               <name>stageCount</name></member>
-            <member noautovalidity="true" len="stageCount" optional="true">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
+            <member noautovalidity="true" optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
+            <member noautovalidity="true" optional="true"><type>uint32_t</type> <name>stageCount</name></member>
+            <member api="vulkan" noautovalidity="true" len="stageCount" optional="true">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
+            <member api="vulkansc" noautovalidity="true" len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
             <member noautovalidity="true" optional="true">const <type>VkPipelineVertexInputStateCreateInfo</type>* <name>pVertexInputState</name></member>
             <member noautovalidity="true" optional="true">const <type>VkPipelineInputAssemblyStateCreateInfo</type>* <name>pInputAssemblyState</name></member>
             <member noautovalidity="true" optional="true">const <type>VkPipelineTessellationStateCreateInfo</type>* <name>pTessellationState</name></member>
@@ -1524,7 +1619,8 @@
             <member values="VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member optional="true"><type>VkPipelineCacheCreateFlags</type>    <name>flags</name></member>
-            <member optional="true"><type>size_t</type>                 <name>initialDataSize</name><comment>Size of initial data to populate cache, in bytes</comment></member>
+            <member api="vulkan" optional="true"><type>size_t</type>           <name>initialDataSize</name><comment>Size of initial data to populate cache, in bytes</comment></member>
+            <member api="vulkansc"><type>size_t</type>                         <name>initialDataSize</name><comment>Size of initial data to populate cache, in bytes</comment></member>
             <member len="initialDataSize">const <type>void</type>*            <name>pInitialData</name><comment>Initial data to populate cache</comment></member>
         </type>
         <type category="struct" name="VkPipelineCacheHeaderVersionOne">
@@ -1535,12 +1631,36 @@
             <member><type>uint32_t</type>               <name>deviceID</name></member>
             <member><type>uint8_t</type>                <name>pipelineCacheUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
         </type>
+        <type category="struct" name="VkPipelineCacheStageValidationIndexEntry">
+            <comment>The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.</comment>
+            <member><type>uint64_t</type>               <name>codeSize</name></member>
+            <member><type>uint64_t</type>               <name>codeOffset</name></member>
+        </type>
+        <type category="struct" name="VkPipelineCacheSafetyCriticalIndexEntry">
+            <comment>The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.</comment>
+            <member><type>uint8_t</type>                <name>pipelineIdentifier</name>[<enum>VK_UUID_SIZE</enum>]</member>
+            <member><type>uint64_t</type>               <name>pipelineMemorySize</name></member>
+            <member><type>uint64_t</type>               <name>jsonSize</name></member>
+            <member><type>uint64_t</type>               <name>jsonOffset</name></member>
+            <member><type>uint32_t</type>               <name>stageIndexCount</name></member>
+            <member><type>uint32_t</type>               <name>stageIndexStride</name></member>
+            <member><type>uint64_t</type>               <name>stageIndexOffset</name></member>
+        </type>
+        <type category="struct" name="VkPipelineCacheHeaderVersionSafetyCriticalOne">
+            <comment>The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.</comment>
+            <member><type>VkPipelineCacheHeaderVersionOne</type>        <name>headerVersionOne</name></member>
+            <member><type>VkPipelineCacheValidationVersion</type>       <name>validationVersion</name></member>
+            <member><type>uint32_t</type>                               <name>implementationData</name></member>
+            <member><type>uint32_t</type>                               <name>pipelineIndexCount</name></member>
+            <member><type>uint32_t</type>                               <name>pipelineIndexStride</name></member>
+            <member><type>uint64_t</type>                               <name>pipelineIndexOffset</name></member>
+        </type>
         <type category="struct" name="VkPushConstantRange">
             <member><type>VkShaderStageFlags</type>     <name>stageFlags</name><comment>Which stages use the range</comment></member>
             <member><type>uint32_t</type>               <name>offset</name><comment>Start of the range, in bytes</comment></member>
             <member><type>uint32_t</type>               <name>size</name><comment>Size of the range, in bytes</comment></member>
         </type>
-        <type category="struct" name="VkPipelineLayoutCreateInfo">
+        <type category="struct" name="VkPipelineLayoutCreateInfo" structextends="VkBindDescriptorSetsInfoKHR,VkPushConstantsInfoKHR,VkPushDescriptorSetInfoKHR,VkPushDescriptorSetWithTemplateInfoKHR,VkSetDescriptorBufferOffsetsInfoEXT,VkBindDescriptorBufferEmbeddedSamplersInfoEXT">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member optional="true"><type>VkPipelineLayoutCreateFlags</type>    <name>flags</name></member>
@@ -1743,7 +1863,7 @@
             <member limittype="bitmask"><type>VkBool32</type>           <name>residencyStandard2DBlockShape</name><comment>Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
             <member limittype="bitmask"><type>VkBool32</type>           <name>residencyStandard2DMultisampleBlockShape</name><comment>Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
             <member limittype="bitmask"><type>VkBool32</type>           <name>residencyStandard3DBlockShape</name><comment>Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
-            <member limittype="bitmask"><type>VkBool32</type>           <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member>
+            <member limittype="not"><type>VkBool32</type>           <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member>
             <member limittype="bitmask"><type>VkBool32</type>           <name>residencyNonResidentStrict</name><comment>Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded</comment></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true">
@@ -2083,7 +2203,8 @@
             <member><type>VkCompositeAlphaFlagBitsKHR</type>      <name>compositeAlpha</name><comment>The alpha blending mode used when compositing this surface with other surfaces in the window system</comment></member>
             <member><type>VkPresentModeKHR</type>                 <name>presentMode</name><comment>Which presentation mode to use for presents on this swap chain</comment></member>
             <member><type>VkBool32</type>                         <name>clipped</name><comment>Specifies whether presentable images may be affected by window clip regions</comment></member>
-            <member optional="true"><type>VkSwapchainKHR</type>   <name>oldSwapchain</name><comment>Existing swap chain to replace, if any</comment></member>
+            <member api="vulkan" optional="true"><type>VkSwapchainKHR</type>                         <name>oldSwapchain</name><comment>Existing swap chain to replace, if any</comment></member>
+            <member api="vulkansc" noautovalidity="true" optional="true"><type>VkSwapchainKHR</type> <name>oldSwapchain</name><comment>Existing swap chain to replace, if any</comment></member>
         </type>
         <type category="struct" name="VkPresentInfoKHR">
             <member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
@@ -2116,6 +2237,27 @@
             <member optional="true"><type>uint32_t</type>                         <name>disabledValidationFeatureCount</name><comment>Number of validation features to disable</comment></member>
             <member len="disabledValidationFeatureCount">const <type>VkValidationFeatureDisableEXT</type>* <name>pDisabledValidationFeatures</name><comment>Validation features to disable</comment></member>
         </type>
+        <type category="struct" name="VkLayerSettingsCreateInfoEXT" allowduplicate="true" structextends="VkInstanceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"><type>VkStructureType</type>  <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT</comment></member>
+            <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>                         <name>settingCount</name><comment>Number of settings to configure</comment></member>
+            <member len="settingCount">const <type>VkLayerSettingEXT</type>* <name>pSettings</name><comment>Validation features to enable</comment></member>
+        </type>
+        <type category="struct" name="VkLayerSettingEXT">
+            <member len="null-terminated">const <type>char</type>* <name>pLayerName</name></member>
+            <member len="null-terminated">const <type>char</type>* <name>pSettingName</name></member>
+            <member><type>VkLayerSettingTypeEXT</type>       <name>type</name><comment>The type of the object</comment></member>
+            <member optional="true"><type>uint32_t</type>                         <name>valueCount</name><comment>Number of values of the setting</comment></member>
+            <member len="valueCount">const <type>void</type>* <name>pValues</name><comment>Values to pass for a setting</comment></member>
+        </type>
+        <type category="struct" name="VkApplicationParametersEXT" allowduplicate="true" structextends="VkApplicationInfo,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*        <name>pNext</name></member>
+            <member><type>uint32_t</type>                           <name>vendorID</name></member>
+            <member optional="true"><type>uint32_t</type>           <name>deviceID</name></member>
+            <member><type>uint32_t</type>                           <name>key</name></member>
+            <member><type>uint64_t</type>                           <name>value</name></member>
+        </type>
         <type category="struct" name="VkPipelineRasterizationStateRasterizationOrderAMD" structextends="VkPipelineRasterizationStateCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
@@ -2187,6 +2329,35 @@
             <member optional="true">const <type>SECURITY_ATTRIBUTES</type>*       <name>pAttributes</name></member>
             <member optional="true"><type>DWORD</type>                            <name>dwAccess</name></member>
         </type>
+        <type category="struct" name="VkExportMemorySciBufInfoNV" structextends="VkMemoryAllocateInfo">
+            <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                 <name>pNext</name></member>
+            <member><type>NvSciBufAttrList</type>                            <name>pAttributes</name></member>
+        </type>
+        <type category="struct" name="VkImportMemorySciBufInfoNV" structextends="VkMemoryAllocateInfo">
+            <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkExternalMemoryHandleTypeFlagBits</type>     <name>handleType</name></member>
+            <member><type>NvSciBufObj</type>                            <name>handle</name></member>
+        </type>
+        <type category="struct" name="VkMemoryGetSciBufInfoNV">
+            <member values="VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkDeviceMemory</type>                         <name>memory</name></member>
+            <member><type>VkExternalMemoryHandleTypeFlagBits</type>     <name>handleType</name></member>
+        </type>
+        <type category="struct" name="VkMemorySciBufPropertiesNV">
+            <member values="VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>uint32_t</type>                               <name>memoryTypeBits</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalMemorySciBufFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                       <name>pNext</name></member>
+            <member><type>VkBool32</type>                                    <name>sciBufImport</name></member>
+            <member><type>VkBool32</type>                                    <name>sciBufExport</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalSciBufFeaturesNV"  alias="VkPhysicalDeviceExternalMemorySciBufFeaturesNV"/>
         <type category="struct" name="VkWin32KeyedMutexAcquireReleaseInfoNV" structextends="VkSubmitInfo,VkSubmitInfo2">
             <member values="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
@@ -2203,6 +2374,13 @@
             <member optional="true"><type>void</type>*    <name>pNext</name></member>
             <member><type>VkBool32</type>                       <name>deviceGeneratedCommands</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*          <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>deviceGeneratedCompute</name></member>
+            <member><type>VkBool32</type>                       <name>deviceGeneratedComputePipelines</name></member>
+            <member><type>VkBool32</type>                       <name>deviceGeneratedComputeCaptureReplay</name></member>
+        </type>
         <type category="struct" name="VkDevicePrivateDataCreateInfo" allowduplicate="true" structextends="VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                            <name>pNext</name></member>
@@ -2323,10 +2501,19 @@
             <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                 <name>pNext</name></member>
             <member><type>VkPipelineBindPoint</type>         <name>pipelineBindPoint</name></member>
-            <member><type>VkPipeline</type>                  <name>pipeline</name></member>
+            <member optional="true"><type>VkPipeline</type>  <name>pipeline</name></member>
             <member><type>VkIndirectCommandsLayoutNV</type>  <name>indirectCommandsLayout</name></member>
             <member><type>uint32_t</type>                    <name>maxSequencesCount</name></member>
         </type>
+        <type category="struct" name="VkPipelineIndirectDeviceAddressInfoNV">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*   <name>pNext</name></member>
+            <member><type>VkPipelineBindPoint</type>           <name>pipelineBindPoint</name></member>
+            <member><type>VkPipeline</type>                    <name>pipeline</name></member>
+        </type>
+        <type category="struct" name="VkBindPipelineIndirectCommandNV">
+            <member><type>VkDeviceAddress</type>               <name>pipelineAddress</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceFeatures2" structextends="VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                            <name>pNext</name></member>
@@ -2456,7 +2643,7 @@
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
             <member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name></member>
-            <member><type>VkBufferUsageFlags</type>               <name>usage</name></member>
+            <member optional="true" noautovalidity="true"><type>VkBufferUsageFlags</type> <name>usage</name></member>
             <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceExternalBufferInfoKHR"                   alias="VkPhysicalDeviceExternalBufferInfo"/>
@@ -2698,6 +2885,80 @@
             <member><type>VkFence</type>                                <name>fence</name></member>
             <member><type>VkExternalFenceHandleTypeFlagBits</type>   <name>handleType</name></member>
         </type>
+        <type category="struct" name="VkExportFenceSciSyncInfoNV" structextends="VkFenceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>NvSciSyncAttrList</type>                      <name>pAttributes</name></member>
+        </type>
+        <type category="struct" name="VkImportFenceSciSyncInfoNV">
+            <member values="VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member externsync="true"><type>VkFence</type>              <name>fence</name></member>
+            <member><type>VkExternalFenceHandleTypeFlagBits</type>      <name>handleType</name></member>
+            <member><type>void</type>*                                  <name>handle</name></member>
+        </type>
+        <type category="struct" name="VkFenceGetSciSyncInfoNV">
+            <member values="VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkFence</type>                                <name>fence</name></member>
+            <member><type>VkExternalFenceHandleTypeFlagBits</type>      <name>handleType</name></member>
+        </type>
+        <type category="struct" name="VkExportSemaphoreSciSyncInfoNV" structextends="VkSemaphoreCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>NvSciSyncAttrList</type>                      <name>pAttributes</name></member>
+        </type>
+        <type category="struct" name="VkImportSemaphoreSciSyncInfoNV">
+            <member values="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member externsync="true"><type>VkSemaphore</type>          <name>semaphore</name></member>
+            <member><type>VkExternalSemaphoreHandleTypeFlagBits</type>  <name>handleType</name></member>
+            <member><type>void</type>*                                  <name>handle</name></member>
+        </type>
+        <type category="struct" name="VkSemaphoreGetSciSyncInfoNV">
+            <member values="VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkSemaphore</type>                            <name>semaphore</name></member>
+            <member><type>VkExternalSemaphoreHandleTypeFlagBits</type>  <name>handleType</name></member>
+        </type>
+        <type category="struct" name="VkSciSyncAttributesInfoNV">
+            <member values="VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkSciSyncClientTypeNV</type>                  <name>clientType</name></member>
+            <member><type>VkSciSyncPrimitiveTypeNV</type>               <name>primitiveType</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalSciSyncFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncFence</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncSemaphore</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncImport</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncExport</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalSciSync2FeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncFence</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncSemaphore2</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncImport</name></member>
+            <member><type>VkBool32</type>                               <name>sciSyncExport</name></member>
+        </type>
+        <type category="struct" name="VkSemaphoreSciSyncPoolCreateInfoNV">
+            <member values="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>NvSciSyncObj</type>                           <name>handle</name></member>
+        </type>
+        <type category="struct" name="VkSemaphoreSciSyncCreateInfoNV" structextends="VkSemaphoreCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkSemaphoreSciSyncPoolNV</type>               <name>semaphorePool</name></member>
+            <member>const <type>NvSciSyncFence</type>*                  <name>pFence</name></member>
+        </type>
+        <type category="struct" name="VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV" allowduplicate="true" structextends="VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>uint32_t</type>                               <name>semaphoreSciSyncPoolRequestCount</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceMultiviewFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                            <name>pNext</name></member>
@@ -3180,6 +3441,12 @@
             <member optional="true">const <type>void</type>* <name>pNext</name></member>
             <member><type>VkImageUsageFlags</type> <name>usage</name></member>
         </type>
+        <type category="struct" name="VkImageViewSlicedCreateInfoEXT" structextends="VkImageViewCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>uint32_t</type> <name>sliceOffset</name></member>
+            <member><type>uint32_t</type> <name>sliceCount</name></member>
+        </type>
         <type category="struct" name="VkImageViewUsageCreateInfoKHR"                           alias="VkImageViewUsageCreateInfo"/>
         <type category="struct" name="VkPipelineTessellationDomainOriginStateCreateInfo" structextends="VkPipelineTessellationStateCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
@@ -3436,6 +3703,42 @@
             <member limittype="max"><type>VkDeviceSize</type>                     <name>maxBufferSize</name></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceMaintenance4PropertiesKHR" alias="VkPhysicalDeviceMaintenance4Properties"/>
+        <type category="struct" name="VkPhysicalDeviceMaintenance5FeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member><type>VkBool32</type>                                         <name>maintenance5</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceMaintenance5PropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>earlyFragmentMultisampleCoverageAfterSampleCounting</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>earlyFragmentSampleMaskTestBeforeSampleCounting</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>depthStencilSwizzleOneSupport</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>polygonModePointSize</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>nonStrictSinglePixelWideLinesUseParallelogram</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>nonStrictWideLinesUseParallelogram</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceMaintenance6FeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member><type>VkBool32</type>                                         <name>maintenance6</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceMaintenance6PropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member><type>VkBool32</type>                                         <name>blockTexelViewCompatibleMultipleLayers</name></member>
+            <member><type>uint32_t</type>                                         <name>maxCombinedImageSamplerDescriptorCount</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>                     <name>fragmentShadingRateClampCombinerInputs</name></member>
+        </type>
+        <type category="struct" name="VkRenderingAreaInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                                <name>pNext</name></member>
+            <member><type>uint32_t</type>                                                                   <name>viewMask</name></member>
+            <member optional="true"><type>uint32_t</type>                                                   <name>colorAttachmentCount</name></member>
+            <member noautovalidity="true" len="colorAttachmentCount">const <type>VkFormat</type>*           <name>pColorAttachmentFormats</name></member>
+            <member noautovalidity="true"><type>VkFormat</type>                                             <name>depthAttachmentFormat</name></member>
+            <member noautovalidity="true"><type>VkFormat</type>                                             <name>stencilAttachmentFormat</name></member>
+        </type>
         <type category="struct" name="VkDescriptorSetLayoutSupport" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*            <name>pNext</name></member>
@@ -3496,7 +3799,6 @@
             <member><type>int</type> <name>format</name></member>
             <member><type>int</type> <name>usage</name></member>
             <member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
-            <member><type>uint64_t</type> <name>usage3</name></member>
         </type>
         <type category="struct" name="VkSwapchainImageCreateInfoANDROID">
             <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
@@ -3508,12 +3810,6 @@
             <member optional="true">const <type>void</type>* <name>pNext</name></member>
             <member><type>VkBool32</type> <name>sharedImage</name></member>
         </type>
-        <type category="struct" name="VkGrallocUsageInfoANDROID">
-            <member values="VK_STRUCTURE_TYPE_GRALLOC_USAGE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>* <name>pNext</name></member>
-            <member><type>VkFormat</type> <name>format</name></member>
-            <member><type>VkImageUsageFlags</type> <name>imageUsage</name></member>
-        </type>
         <type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true">
             <member><type>uint32_t</type> <name>numUsedVgprs</name></member>
             <member><type>uint32_t</type> <name>numUsedSgprs</name></member>
@@ -3621,7 +3917,7 @@
             <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>* <name>pNext</name></member>
             <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
-            <member optional="false"><type>void</type>* <name>pHostPointer</name></member>
+            <member><type>void</type>* <name>pHostPointer</name></member>
         </type>
         <type category="struct" name="VkMemoryHostPointerPropertiesEXT" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -3646,11 +3942,12 @@
             <member limittype="bitmask"><type>VkBool32</type>               <name>fullyCoveredFragmentShaderInputVariable</name><comment>true if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable</comment></member>
             <member limittype="bitmask"><type>VkBool32</type>               <name>conservativeRasterizationPostDepthCoverage</name><comment>true if the implementation supports both conservative rasterization and post depth coverage sample coverage mask</comment></member>
         </type>
-        <type category="struct" name="VkCalibratedTimestampInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkCalibratedTimestampInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member><type>VkTimeDomainEXT</type>        <name>timeDomain</name></member>
+            <member><type>VkTimeDomainKHR</type>                        <name>timeDomain</name></member>
         </type>
+        <type category="struct" name="VkCalibratedTimestampInfoEXT" alias="VkCalibratedTimestampInfoKHR"/>
         <type category="struct" name="VkPhysicalDeviceShaderCorePropertiesAMD" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*    <name>pNext</name></member>
@@ -3875,21 +4172,29 @@
             <member><type>uint64_t</type>               <name>value</name></member>
         </type>
         <type category="struct" name="VkSemaphoreSignalInfoKHR"                                alias="VkSemaphoreSignalInfo"/>
-        <type category="struct" name="VkVertexInputBindingDivisorDescriptionEXT">
+        <type category="struct" name="VkVertexInputBindingDivisorDescriptionKHR">
             <member><type>uint32_t</type>          <name>binding</name></member>
             <member><type>uint32_t</type>          <name>divisor</name></member>
         </type>
-        <type category="struct" name="VkPipelineVertexInputDivisorStateCreateInfoEXT" structextends="VkPipelineVertexInputStateCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVertexInputBindingDivisorDescriptionEXT" alias="VkVertexInputBindingDivisorDescriptionKHR"/>
+        <type category="struct" name="VkPipelineVertexInputDivisorStateCreateInfoKHR" structextends="VkPipelineVertexInputStateCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                         <name>pNext</name></member>
             <member><type>uint32_t</type>                            <name>vertexBindingDivisorCount</name></member>
-            <member len="vertexBindingDivisorCount">const <type>VkVertexInputBindingDivisorDescriptionEXT</type>*      <name>pVertexBindingDivisors</name></member>
+            <member len="vertexBindingDivisorCount">const <type>VkVertexInputBindingDivisorDescriptionKHR</type>*      <name>pVertexBindingDivisors</name></member>
         </type>
+        <type category="struct" name="VkPipelineVertexInputDivisorStateCreateInfoEXT" alias="VkPipelineVertexInputDivisorStateCreateInfoKHR"/>
         <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                  <name>pNext</name></member>
             <member limittype="max"><type>uint32_t</type>               <name>maxVertexAttribDivisor</name><comment>max value of vertex attribute divisor</comment></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member limittype="max"><type>uint32_t</type>               <name>maxVertexAttribDivisor</name><comment>max value of vertex attribute divisor</comment></member>
+            <member limittype="max"><type>VkBool32</type>               <name>supportsNonZeroFirstInstance</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDevicePCIBusInfoPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                  <name>pNext</name></member>
@@ -3936,7 +4241,7 @@
             <member optional="true">const <type>void</type>*                         <name>pNext</name></member>
             <member><type>VkBool32</type>                            <name>conditionalRenderingEnable</name><comment>Whether this secondary command buffer may be executed during an active conditional rendering</comment></member>
         </type>
-        <type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
+        <type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo,VkAttachmentDescription2,VkGraphicsPipelineCreateInfo,VkCommandBufferInheritanceInfo">
             <member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                              <name>pNext</name></member>
             <member><type>uint64_t</type>                           <name>externalFormat</name></member>
@@ -4002,12 +4307,13 @@
             <member><type>VkBool32</type>                            <name>shaderImageFloat32AtomicMinMax</name></member>
             <member><type>VkBool32</type>                            <name>sparseImageFloat32AtomicMinMax</name></member>
         </type>
-        <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*        <name>pNext</name></member>
             <member><type>VkBool32</type>                           <name>vertexAttributeInstanceRateDivisor</name></member>
             <member><type>VkBool32</type>                           <name>vertexAttributeInstanceRateZeroDivisor</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT" alias="VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR"/>
         <type category="struct" name="VkQueueFamilyCheckpointPropertiesNV" structextends="VkQueueFamilyProperties2" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*           <name>pNext</name></member>
@@ -4278,7 +4584,7 @@
         <type category="struct" name="VkRayTracingPipelineCreateInfoNV">
             <member values="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
+            <member noautovalidity="true" optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
             <member><type>uint32_t</type>               <name>stageCount</name></member>
             <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
             <member><type>uint32_t</type>               <name>groupCount</name></member>
@@ -4291,7 +4597,7 @@
         <type category="struct" name="VkRayTracingPipelineCreateInfoKHR">
             <member values="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
+            <member noautovalidity="true" optional="true"><type>VkPipelineCreateFlags</type>  <name>flags</name><comment>Pipeline creation flags</comment></member>
             <member optional="true"><type>uint32_t</type> <name>stageCount</name></member>
             <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
             <member optional="true"><type>uint32_t</type> <name>groupCount</name></member>
@@ -4500,7 +4806,7 @@
             <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>* <name>pNext</name></member>
             <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
-            <member optional="false"><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member>
+            <member><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member>
             <member len="drmFormatModifierPlaneCount">const <type>VkSubresourceLayout</type>* <name>pPlaneLayouts</name></member>
         </type>
         <type category="struct" name="VkImageDrmFormatModifierPropertiesEXT" returnedonly="true">
@@ -4750,7 +5056,7 @@
             <member><type>uint64_t</type>                            <name>duration</name></member>
         </type>
         <type category="struct" name="VkPipelineCreationFeedbackEXT" alias="VkPipelineCreationFeedback"/>
-        <type category="struct" name="VkPipelineCreationFeedbackCreateInfo" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR">
+        <type category="struct" name="VkPipelineCreationFeedbackCreateInfo" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR,VkExecutionGraphPipelineCreateInfoAMDX">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*         <name>pNext</name></member>
             <member><type>VkPipelineCreationFeedback</type>*         <name>pPipelineCreationFeedback</name><comment>Output pipeline creation feedback.</comment></member>
@@ -4841,6 +5147,11 @@
             <member optional="true">const <type>void</type>*         <name>pNext</name></member>
             <member><type>uint32_t</type>            <name>counterPassIndex</name><comment>Index for which counter pass to submit</comment></member>
         </type>
+        <type category="struct" name="VkPerformanceQueryReservationInfoKHR" allowduplicate="true" structextends="VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*         <name>pNext</name></member>
+            <member><type>uint32_t</type>            <name>maxPerformanceQueriesPerPool</name><comment>Maximum number of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR queries in a query pool</comment></member>
+        </type>
         <type category="struct" name="VkHeadlessSurfaceCreateInfoEXT">
             <member values="VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
@@ -5052,12 +5363,13 @@
             <member limittype="bitmask"><type>VkShaderStageFlags</type>         <name>requiredSubgroupSizeStages</name><comment>The shader stages that support specifying a subgroup size</comment></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceSubgroupSizeControlPropertiesEXT" alias="VkPhysicalDeviceSubgroupSizeControlProperties"/>
-        <type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo" returnedonly="true" structextends="VkPipelineShaderStageCreateInfo">
+        <type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo" returnedonly="true" structextends="VkPipelineShaderStageCreateInfo,VkShaderCreateInfoEXT">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*  <name>pNext</name></member>
             <member><type>uint32_t</type>               <name>requiredSubgroupSize</name></member>
         </type>
         <type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT" alias="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
+        <type category="struct" name="VkShaderRequiredSubgroupSizeCreateInfoEXT" alias="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
         <type category="struct" name="VkSubpassShadingPipelineCreateInfoHUAWEI" returnedonly="true" structextends="VkComputePipelineCreateInfo">
             <member values="VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                  <name>pNext</name></member>
@@ -5069,6 +5381,14 @@
             <member optional="true"><type>void</type>*                  <name>pNext</name></member>
             <member limittype="max,pot"><type>uint32_t</type>               <name>maxSubpassShadingWorkgroupSizeAspectRatio</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member limittype="max,pot"><type>uint32_t</type>           <name>maxWorkGroupCount</name>[3]</member>
+            <member limittype="max,pot"><type>uint32_t</type>           <name>maxWorkGroupSize</name>[3]</member>
+            <member limittype="max"><type>uint32_t</type>               <name>maxOutputClusterCount</name></member>
+            <member limittype="exact"><type>VkDeviceSize</type>         <name>indirectBufferOffsetAlignment</name></member>
+        </type>
         <type category="struct" name="VkMemoryOpaqueCaptureAddressAllocateInfo" structextends="VkMemoryAllocateInfo">
             <member values="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                   <name>pNext</name></member>
@@ -5320,7 +5640,7 @@
             <member limittype="exact"><type>VkBool32</type>                  <name>uniformTexelBufferOffsetSingleTexelAlignment</name></member>
             <member limittype="max"><type>VkDeviceSize</type>                   <name>maxBufferSize</name></member>
         </type>
-        <type category="struct" name="VkPipelineCompilerControlCreateInfoAMD" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo">
+        <type category="struct" name="VkPipelineCompilerControlCreateInfoAMD" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkExecutionGraphPipelineCreateInfoAMDX">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"><type>VkStructureType</type>   <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                                                            <name>pNext</name></member>
             <member optional="true"><type>VkPipelineCompilerControlFlagsAMD</type>                                      <name>compilerControlFlags</name></member>
@@ -5330,6 +5650,19 @@
             <member optional="true"><type>void</type>*        <name>pNext</name></member>
             <member><type>VkBool32</type>                           <name>deviceCoherentMemory</name></member>
         </type>
+        <type category="struct" name="VkFaultData" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_FAULT_DATA"><type>VkStructureType</type> <name>sType</name></member>
+            <member noautovalidity="true" optional="true"><type>void</type>* <name>pNext</name></member>
+            <member><type>VkFaultLevel</type>                    <name>faultLevel</name></member>
+            <member><type>VkFaultType</type>                     <name>faultType</name></member>
+        </type>
+        <type category="struct" name="VkFaultCallbackInfo" structextends="VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*        <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>           <name>faultCount</name></member>
+            <member optional="true" len="faultCount"><type>VkFaultData</type>*<name>pFaults</name></member>
+            <member><type>PFN_vkFaultCallbackFunction</type>        <name>pfnFaultCallback</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceToolProperties" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>* <name>pNext</name></member>
@@ -5377,6 +5710,10 @@
             <member noautovalidity="true"><type>VkDeviceAddress</type>            <name>deviceAddress</name></member>
             <member noautovalidity="true">const <type>void</type>*                <name>hostAddress</name></member>
         </type>
+        <type category="union" name="VkDeviceOrHostAddressConstAMDX">
+            <member noautovalidity="true"><type>VkDeviceAddress</type>            <name>deviceAddress</name></member>
+            <member noautovalidity="true">const <type>void</type>*                <name>hostAddress</name></member>
+        </type>
         <type category="struct" name="VkAccelerationStructureGeometryTrianglesDataKHR">
             <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                   <name>pNext</name></member>
@@ -5507,6 +5844,17 @@
             <member optional="true"><type>uint32_t</type>                               <name>libraryCount</name></member>
             <member len="libraryCount">const <type>VkPipeline</type>*                   <name>pLibraries</name></member>
         </type>
+        <type category="struct" name="VkRefreshObjectKHR">
+            <member><type>VkObjectType</type>                                       <name>objectType</name></member>
+            <member objecttype="objectType" externsync="true"><type>uint64_t</type> <name>objectHandle</name></member>
+            <member optional="true"><type>VkRefreshObjectFlagsKHR</type>            <name>flags</name></member>
+        </type>
+        <type category="struct" name="VkRefreshObjectListKHR">
+            <member values="VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                        <name>pNext</name></member>
+            <member><type>uint32_t</type>                                           <name>objectCount</name></member>
+            <member len="objectCount">const <type>VkRefreshObjectKHR</type>*        <name>pObjects</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceExtendedDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*        <name>pNext</name></member>
@@ -5600,6 +5948,13 @@
             <member optional="true">const <type>void</type>*                                         <name>pNext</name></member>
             <member optional="true"><type>VkDeviceDiagnosticsConfigFlagsNV</type>    <name>flags</name></member>
         </type>
+        <type category="struct" name="VkPipelineOfflineCreateInfo" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR,VkRayTracingPipelineCreateInfoNV">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
+            <member><type>uint8_t</type>                                       <name>pipelineIdentifier</name>[<enum>VK_UUID_SIZE</enum>]</member>
+            <member><type>VkPipelineMatchControl</type>                        <name>matchControl</name></member>
+            <member><type>VkDeviceSize</type>                                  <name>poolEntrySize</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*          <name>pNext</name></member>
@@ -5673,6 +6028,17 @@
             <member optional="true"><type>void</type>*              <name>pNext</name></member>
             <member><type>VkBool32</type>                           <name>subpassShading</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"><type>VkStructureType</type>  <name>sType</name></member>
+            <member optional="true"><type>void</type>*<name>pNext</name></member>
+            <member><type>VkBool32</type> <name>clustercullingShader</name></member>
+            <member><type>VkBool32</type> <name>multiviewClusterCullingShader</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI" structextends="VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"><type>VkStructureType</type>  <name>sType</name></member>
+            <member optional="true"><type>void</type>*<name>pNext</name></member>
+            <member><type>VkBool32</type> <name>clusterShadingRate</name></member>
+        </type>
         <type category="struct" name="VkBufferCopy2">
             <member values="VK_STRUCTURE_TYPE_BUFFER_COPY_2"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*        <name>pNext</name></member>
@@ -5874,6 +6240,16 @@
             <member><type>VkBool32</type>                                        <name>image2DViewOf3D</name></member>
             <member><type>VkBool32</type>                                        <name>sampler2DViewOf3D</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*                     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>imageSlicedViewOf3D</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>attachmentFeedbackLoopDynamicState</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
@@ -6034,6 +6410,180 @@
             <member><type>VkBool32</type>                           <name>synchronization2</name></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceSynchronization2FeaturesKHR" alias="VkPhysicalDeviceSynchronization2Features"/>
+        <type category="struct" name="VkPhysicalDeviceHostImageCopyFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member><type>VkBool32</type>                     <name>hostImageCopy</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceHostImageCopyPropertiesEXT" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                                                        <name>pNext</name></member>
+            <member optional="true" limittype="noauto"><type>uint32_t</type>                                  <name>copySrcLayoutCount</name></member>
+            <member optional="true" limittype="noauto" len="copySrcLayoutCount"><type>VkImageLayout</type>*   <name>pCopySrcLayouts</name></member>
+            <member optional="true" limittype="noauto"><type>uint32_t</type>                                  <name>copyDstLayoutCount</name></member>
+            <member optional="true" limittype="noauto" len="copyDstLayoutCount"><type>VkImageLayout</type>*   <name>pCopyDstLayouts</name></member>
+            <member optional="true" limittype="noauto"><type>uint8_t</type>                                   <name>optimalTilingLayoutUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
+            <member limittype="bitmask"><type>VkBool32</type>                                                 <name>identicalMemoryTypeRequirements</name></member>
+        </type>
+        <type category="struct" name="VkMemoryToImageCopyEXT">
+            <member values="VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
+            <member>const <type>void</type>*                                    <name>pHostPointer</name></member>
+            <member><type>uint32_t</type>                                       <name>memoryRowLength</name><comment>Specified in texels</comment></member>
+            <member><type>uint32_t</type>                                       <name>memoryImageHeight</name></member>
+            <member><type>VkImageSubresourceLayers</type>                       <name>imageSubresource</name></member>
+            <member><type>VkOffset3D</type>                                     <name>imageOffset</name></member>
+            <member><type>VkExtent3D</type>                                     <name>imageExtent</name></member>
+        </type>
+        <type category="struct" name="VkImageToMemoryCopyEXT">
+            <member values="VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
+            <member><type>void</type>*                                          <name>pHostPointer</name></member>
+            <member><type>uint32_t</type>                                       <name>memoryRowLength</name><comment>Specified in texels</comment></member>
+            <member><type>uint32_t</type>                                       <name>memoryImageHeight</name></member>
+            <member><type>VkImageSubresourceLayers</type>                       <name>imageSubresource</name></member>
+            <member><type>VkOffset3D</type>                                     <name>imageOffset</name></member>
+            <member><type>VkExtent3D</type>                                     <name>imageExtent</name></member>
+        </type>
+        <type category="struct" name="VkCopyMemoryToImageInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                <name>pNext</name></member>
+            <member optional="true"><type>VkHostImageCopyFlagsEXT</type>    <name>flags</name></member>
+            <member><type>VkImage</type>                                    <name>dstImage</name></member>
+            <member><type>VkImageLayout</type>                              <name>dstImageLayout</name></member>
+            <member><type>uint32_t</type>                                   <name>regionCount</name></member>
+            <member len="regionCount">const <type>VkMemoryToImageCopyEXT</type>* <name>pRegions</name></member>
+        </type>
+        <type category="struct" name="VkCopyImageToMemoryInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                <name>pNext</name></member>
+            <member optional="true"><type>VkHostImageCopyFlagsEXT</type>    <name>flags</name></member>
+            <member><type>VkImage</type>                                    <name>srcImage</name></member>
+            <member><type>VkImageLayout</type>                              <name>srcImageLayout</name></member>
+            <member><type>uint32_t</type>                                   <name>regionCount</name></member>
+            <member len="regionCount">const <type>VkImageToMemoryCopyEXT</type>* <name>pRegions</name></member>
+        </type>
+        <type category="struct" name="VkCopyImageToImageInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                <name>pNext</name></member>
+            <member optional="true"><type>VkHostImageCopyFlagsEXT</type>    <name>flags</name></member>
+            <member><type>VkImage</type>                                    <name>srcImage</name></member>
+            <member><type>VkImageLayout</type>                              <name>srcImageLayout</name></member>
+            <member><type>VkImage</type>                                    <name>dstImage</name></member>
+            <member><type>VkImageLayout</type>                              <name>dstImageLayout</name></member>
+            <member><type>uint32_t</type>                                   <name>regionCount</name></member>
+            <member len="regionCount">const <type>VkImageCopy2</type>*      <name>pRegions</name></member>
+        </type>
+        <type category="struct" name="VkHostImageLayoutTransitionInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*  <name>pNext</name></member>
+            <member><type>VkImage</type>                      <name>image</name></member>
+            <member><type>VkImageLayout</type>                <name>oldLayout</name></member>
+            <member><type>VkImageLayout</type>                <name>newLayout</name></member>
+            <member><type>VkImageSubresourceRange</type>      <name>subresourceRange</name></member>
+        </type>
+        <type category="struct" name="VkSubresourceHostMemcpySizeEXT" returnedonly="true" structextends="VkSubresourceLayout2KHR">
+            <member values="VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>                 <name>size</name><comment>Specified in bytes</comment></member>
+        </type>
+        <type category="struct" name="VkHostImageCopyDevicePerformanceQueryEXT" returnedonly="true" structextends="VkImageFormatProperties2">
+            <member values="VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member><type>VkBool32</type>                     <name>optimalDeviceAccess</name><comment>Specifies if device access is optimal</comment></member>
+            <member><type>VkBool32</type>                     <name>identicalMemoryLayout</name><comment>Specifies if memory layout is identical</comment></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceVulkanSC10Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*          <name>pNext</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>deviceNoDynamicHostAllocations</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>deviceDestroyFreesMemory</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>commandPoolMultipleCommandBuffersRecording</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>commandPoolResetCommandBuffer</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>commandBufferSimultaneousUse</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>secondaryCommandBufferNullOrImagelessFramebuffer</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>recycleDescriptorSetMemory</name></member>
+            <member limittype="bitmask"><type>VkBool32</type>   <name>recyclePipelineMemory</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxRenderPassSubpasses</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxRenderPassDependencies</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxSubpassInputAttachments</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxSubpassPreserveAttachments</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxFramebufferAttachments</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxDescriptorSetLayoutBindings</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxQueryFaultCount</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxCallbackFaultCount</name></member>
+            <member limittype="max"><type>uint32_t</type>       <name>maxCommandPoolCommandBuffers</name></member>
+            <member limittype="max"><type>VkDeviceSize</type>   <name>maxCommandBufferSize</name></member>
+        </type>
+        <type category="struct" name="VkPipelinePoolSize">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>                   <name>poolEntrySize</name></member>
+            <member><type>uint32_t</type>                       <name>poolEntryCount</name></member>
+        </type>
+        <type category="struct" name="VkDeviceObjectReservationCreateInfo" allowduplicate="true" structextends="VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>pipelineCacheCreateInfoCount</name></member>
+            <member len="pipelineCacheCreateInfoCount">const <type>VkPipelineCacheCreateInfo</type>* <name>pPipelineCacheCreateInfos</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>pipelinePoolSizeCount</name></member>
+            <member len="pipelinePoolSizeCount">const <type>VkPipelinePoolSize</type>* <name>pPipelinePoolSizes</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>semaphoreRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>commandBufferRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>fenceRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>deviceMemoryRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>bufferRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>imageRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>eventRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>queryPoolRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>bufferViewRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>imageViewRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>layeredImageViewRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>pipelineCacheRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>pipelineLayoutRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>renderPassRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>graphicsPipelineRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>computePipelineRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>descriptorSetLayoutRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>samplerRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>descriptorPoolRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>descriptorSetRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>framebufferRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>commandPoolRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>samplerYcbcrConversionRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>surfaceRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>swapchainRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>displayModeRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>subpassDescriptionRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>attachmentDescriptionRequestCount</name></member>
+            <member optional="true"><type>uint32_t</type>       <name>descriptorSetLayoutBindingRequestCount</name></member>
+            <member><type>uint32_t</type>                       <name>descriptorSetLayoutBindingLimit</name></member>
+            <member><type>uint32_t</type>                       <name>maxImageViewMipLevels</name></member>
+            <member><type>uint32_t</type>                       <name>maxImageViewArrayLayers</name></member>
+            <member><type>uint32_t</type>                       <name>maxLayeredImageViewMipLevels</name></member>
+            <member><type>uint32_t</type>                       <name>maxOcclusionQueriesPerPool</name></member>
+            <member><type>uint32_t</type>                       <name>maxPipelineStatisticsQueriesPerPool</name></member>
+            <member><type>uint32_t</type>                       <name>maxTimestampQueriesPerPool</name></member>
+            <member><type>uint32_t</type>                       <name>maxImmutableSamplersPerDescriptorSetLayout</name></member>
+        </type>
+        <type category="struct" name="VkCommandPoolMemoryReservationCreateInfo" structextends="VkCommandPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>  <name>commandPoolReservedSize</name></member>
+            <member><type>uint32_t</type>      <name>commandPoolMaxCommandBuffers</name></member>
+        </type>
+        <type category="struct" name="VkCommandPoolMemoryConsumption" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*          <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>                   <name>commandPoolAllocated</name></member>
+            <member><type>VkDeviceSize</type>                   <name>commandPoolReservedSize</name></member>
+            <member><type>VkDeviceSize</type>                   <name>commandBufferAllocated</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceVulkanSC10Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*          <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>shaderAtomicInstructions</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                  <name>pNext</name></member>
@@ -6084,7 +6634,7 @@
             <member len="profileCount">const <type>VkVideoProfileInfoKHR</type>*               <name>pProfiles</name></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceVideoFormatInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"> <type>VkStructureType</type> <name>sType</name></member>
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                          <name>pNext</name></member>
             <member><type>VkImageUsageFlags</type>                                    <name>imageUsage</name></member>
         </type>
@@ -6169,6 +6719,18 @@
             <member optional="true"><type>uint32_t</type>               <name>referenceSlotCount</name></member>
             <member len="referenceSlotCount">const <type>VkVideoReferenceSlotInfoKHR</type>* <name>pReferenceSlots</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceVideoMaintenance1FeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>videoMaintenance1</name></member>
+        </type>
+        <type category="struct" name="VkVideoInlineQueryInfoKHR" structextends="VkVideoDecodeInfoKHR,VkVideoEncodeInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member optional="true"><type>VkQueryPool</type>            <name>queryPool</name></member>
+            <member><type>uint32_t</type>                               <name>firstQuery</name></member>
+            <member><type>uint32_t</type>                               <name>queryCount</name></member>
+        </type>
             <comment>Video Decode Codec Standard specific structures</comment>
         <type category="include" name="vk_video/vulkan_video_codec_h264std.h">#include "vk_video/vulkan_video_codec_h264std.h"</type>
         <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264ProfileIdc"/>
@@ -6194,44 +6756,44 @@
         <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264ReferenceInfo"/>
         <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264PictureInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264ReferenceInfoFlags"/>
-        <type category="struct" name="VkVideoDecodeH264ProfileInfoEXT" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264ProfileInfoKHR" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                  <name>pNext</name></member>
             <member><type>StdVideoH264ProfileIdc</type>                                       <name>stdProfileIdc</name></member>
-            <member optional="true"><type>VkVideoDecodeH264PictureLayoutFlagBitsEXT</type>    <name>pictureLayout</name></member>
+            <member optional="true"><type>VkVideoDecodeH264PictureLayoutFlagBitsKHR</type>    <name>pictureLayout</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH264CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264CapabilitiesKHR" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*            <name>pNext</name></member>
             <member><type>StdVideoH264LevelIdc</type>             <name>maxLevelIdc</name></member>
             <member><type>VkOffset2D</type>                       <name>fieldOffsetGranularity</name></member>
         </type>
         <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SequenceParameterSet"/>
         <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PictureParameterSet"/>
-        <type category="struct" name="VkVideoDecodeH264SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264SessionParametersAddInfoKHR" structextends="VkVideoSessionParametersUpdateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                    <name>pNext</name></member>
             <member optional="true"><type>uint32_t</type>                                       <name>stdSPSCount</name></member>
             <member len="stdSPSCount">const <type>StdVideoH264SequenceParameterSet</type>*      <name>pStdSPSs</name></member>
             <member optional="true"><type>uint32_t</type>                                       <name>stdPPSCount</name></member>
             <member len="stdPPSCount">const <type>StdVideoH264PictureParameterSet</type>*       <name>pStdPPSs</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH264SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264SessionParametersCreateInfoKHR" structextends="VkVideoSessionParametersCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                               <name>pNext</name></member>
             <member><type>uint32_t</type>                                                                  <name>maxStdSPSCount</name></member>
             <member><type>uint32_t</type>                                                                  <name>maxStdPPSCount</name></member>
-            <member optional="true">const <type>VkVideoDecodeH264SessionParametersAddInfoEXT</type>*       <name>pParametersAddInfo</name></member>
+            <member optional="true">const <type>VkVideoDecodeH264SessionParametersAddInfoKHR</type>*       <name>pParametersAddInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH264PictureInfoEXT" structextends="VkVideoDecodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264PictureInfoKHR" structextends="VkVideoDecodeInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*           <name>pNext</name></member>
             <member>const <type>StdVideoDecodeH264PictureInfo</type>*  <name>pStdPictureInfo</name></member>
             <member><type>uint32_t</type>                              <name>sliceCount</name></member>
             <member len="sliceCount">const <type>uint32_t</type>*      <name>pSliceOffsets</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH264DpbSlotInfoEXT" structextends="VkVideoReferenceSlotInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH264DpbSlotInfoKHR" structextends="VkVideoReferenceSlotInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member>const <type>StdVideoDecodeH264ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
         </type>
@@ -6259,18 +6821,18 @@
         <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfo"/>
         <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265PictureInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfoFlags"/>
-        <type category="struct" name="VkVideoDecodeH265ProfileInfoEXT" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH265ProfileInfoKHR" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
             <member><type>StdVideoH265ProfileIdc</type>         <name>stdProfileIdc</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH265CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH265CapabilitiesKHR" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                            <name>pNext</name></member>
             <member><type>StdVideoH265LevelIdc</type>                             <name>maxLevelIdc</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH265SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH265SessionParametersAddInfoKHR" structextends="VkVideoSessionParametersUpdateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                <name>pNext</name></member>
             <member optional="true"><type>uint32_t</type>                                   <name>stdVPSCount</name></member>
             <member len="stdVPSCount">const <type>StdVideoH265VideoParameterSet</type>*     <name>pStdVPSs</name></member>
@@ -6279,23 +6841,23 @@
             <member optional="true"><type>uint32_t</type>                                   <name>stdPPSCount</name></member>
             <member len="stdPPSCount">const <type>StdVideoH265PictureParameterSet</type>*   <name>pStdPPSs</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH265SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH265SessionParametersCreateInfoKHR" structextends="VkVideoSessionParametersCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                         <name>pNext</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdVPSCount</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdSPSCount</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdPPSCount</name></member>
-            <member optional="true">const <type>VkVideoDecodeH265SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
+            <member optional="true">const <type>VkVideoDecodeH265SessionParametersAddInfoKHR</type>* <name>pParametersAddInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH265PictureInfoEXT" structextends="VkVideoDecodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*        <name>pNext</name></member>
-            <member><type>StdVideoDecodeH265PictureInfo</type>*     <name>pStdPictureInfo</name></member>
-            <member><type>uint32_t</type>                           <name>sliceSegmentCount</name></member>
-            <member len="sliceSegmentCount">const <type>uint32_t</type>*   <name>pSliceSegmentOffsets</name></member>
+        <type category="struct" name="VkVideoDecodeH265PictureInfoKHR" structextends="VkVideoDecodeInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                <name>pNext</name></member>
+            <member>const <type>StdVideoDecodeH265PictureInfo</type>*       <name>pStdPictureInfo</name></member>
+            <member><type>uint32_t</type>                                   <name>sliceSegmentCount</name></member>
+            <member len="sliceSegmentCount">const <type>uint32_t</type>*    <name>pSliceSegmentOffsets</name></member>
         </type>
-        <type category="struct" name="VkVideoDecodeH265DpbSlotInfoEXT" structextends="VkVideoReferenceSlotInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoDecodeH265DpbSlotInfoKHR" structextends="VkVideoReferenceSlotInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*             <name>pNext</name></member>
             <member>const <type>StdVideoDecodeH265ReferenceInfo</type>*  <name>pStdReferenceInfo</name></member>
         </type>
@@ -6324,6 +6886,16 @@
             <member optional="true">const <type>void</type>*                                            <name>pNext</name></member>
             <member><type>uint32_t</type>                                               <name>updateSequenceCount</name></member>
         </type>
+        <type category="struct" name="VkVideoEncodeSessionParametersGetInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
+            <member><type>VkVideoSessionParametersKHR</type>                    <name>videoSessionParameters</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeSessionParametersFeedbackInfoKHR" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                          <name>pNext</name></member>
+            <member><type>VkBool32</type>                                       <name>hasOverrides</name></member>
+        </type>
         <type category="struct" name="VkVideoBeginCodingInfoKHR">
             <member values="VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                             <name>pNext</name></member>
@@ -6341,7 +6913,7 @@
         <type category="struct" name="VkVideoCodingControlInfoKHR">
             <member values="VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                    <name>pNext</name></member>
-            <member optional="false"><type>VkVideoCodingControlFlagsKHR</type>  <name>flags</name></member>
+            <member><type>VkVideoCodingControlFlagsKHR</type>                   <name>flags</name></member>
         </type>
         <type category="struct" name="VkVideoEncodeUsageInfoKHR" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
             <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
@@ -6354,287 +6926,345 @@
             <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member optional="true"><type>VkVideoEncodeFlagsKHR</type>  <name>flags</name></member>
-            <member><type>uint32_t</type>                               <name>qualityLevel</name></member>
-            <member><type>VkBuffer</type>                               <name>dstBitstreamBuffer</name></member>
-            <member><type>VkDeviceSize</type>                           <name>dstBitstreamBufferOffset</name></member>
-            <member><type>VkDeviceSize</type>                           <name>dstBitstreamBufferMaxRange</name></member>
+            <member><type>VkBuffer</type>                               <name>dstBuffer</name></member>
+            <member><type>VkDeviceSize</type>                           <name>dstBufferOffset</name></member>
+            <member><type>VkDeviceSize</type>                           <name>dstBufferRange</name></member>
             <member><type>VkVideoPictureResourceInfoKHR</type>          <name>srcPictureResource</name></member>
             <member optional="true">const <type>VkVideoReferenceSlotInfoKHR</type>* <name>pSetupReferenceSlot</name></member>
             <member optional="true"><type>uint32_t</type>               <name>referenceSlotCount</name></member>
             <member len="referenceSlotCount">const <type>VkVideoReferenceSlotInfoKHR</type>* <name>pReferenceSlots</name></member>
             <member><type>uint32_t</type>                               <name>precedingExternallyEncodedBytes</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*              <name>pNext</name></member>
-            <member optional="true"><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
-            <member><type>VkVideoEncodeRateControlModeFlagBitsKHR</type>  <name>rateControlMode</name></member>
-            <member><type>uint8_t</type>                                  <name>layerCount</name></member>
-            <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayerConfigs</name></member>
+        <type category="struct" name="VkQueryPoolVideoEncodeFeedbackCreateInfoKHR" structextends="VkQueryPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkVideoEncodeFeedbackFlagsKHR</type>          <name>encodeFeedbackFlags</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeRateControlLayerInfoKHR" structextends="VkVideoCodingControlInfoKHR">
+        <type category="struct" name="VkVideoEncodeQualityLevelInfoKHR" structextends="VkVideoCodingControlInfoKHR,VkVideoSessionParametersCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>uint32_t</type>                               <name>qualityLevel</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member>const <type>VkVideoProfileInfoKHR</type>*           <name>pVideoProfile</name></member>
+            <member><type>uint32_t</type>                               <name>qualityLevel</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeQualityLevelPropertiesKHR" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>preferredRateControlMode</name></member>
+            <member><type>uint32_t</type>                               <name>preferredRateControlLayerCount</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR,VkVideoBeginCodingInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member optional="true"><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
+            <member optional="true"><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>rateControlMode</name></member>
+            <member optional="true"><type>uint32_t</type>               <name>layerCount</name></member>
+            <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayers</name></member>
+            <member><type>uint32_t</type>                               <name>virtualBufferSizeInMs</name></member>
+            <member><type>uint32_t</type>                               <name>initialVirtualBufferSizeInMs</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeRateControlLayerInfoKHR">
             <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
-            <member>const <type>void</type>*              <name>pNext</name></member>
-            <member><type>uint32_t</type>                                 <name>averageBitrate</name></member>
-            <member><type>uint32_t</type>                                 <name>maxBitrate</name></member>
-            <member><type>uint32_t</type>                                 <name>frameRateNumerator</name></member>
-            <member><type>uint32_t</type>                                 <name>frameRateDenominator</name></member>
-            <member><type>uint32_t</type>                                 <name>virtualBufferSizeInMs</name></member>
-            <member><type>uint32_t</type>                                 <name>initialVirtualBufferSizeInMs</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>uint64_t</type>                               <name>averageBitrate</name></member>
+            <member><type>uint64_t</type>                               <name>maxBitrate</name></member>
+            <member><type>uint32_t</type>                               <name>frameRateNumerator</name></member>
+            <member><type>uint32_t</type>                               <name>frameRateDenominator</name></member>
         </type>
         <type category="struct" name="VkVideoEncodeCapabilitiesKHR" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
             <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                 <name>pNext</name></member>
             <member noautovalidity="true"><type>VkVideoEncodeCapabilityFlagsKHR</type>       <name>flags</name></member>
             <member><type>VkVideoEncodeRateControlModeFlagsKHR</type>  <name>rateControlModes</name></member>
-            <member><type>uint8_t</type>                               <name>rateControlLayerCount</name></member>
-            <member><type>uint8_t</type>                               <name>qualityLevelCount</name></member>
-            <member><type>VkExtent2D</type>                            <name>inputImageDataFillAlignment</name></member>
+            <member><type>uint32_t</type>                              <name>maxRateControlLayers</name></member>
+            <member><type>uint64_t</type>                              <name>maxBitrate</name></member>
+            <member><type>uint32_t</type>                              <name>maxQualityLevels</name></member>
+            <member><type>VkExtent2D</type>                            <name>encodeInputPictureGranularity</name></member>
+            <member><type>VkVideoEncodeFeedbackFlagsKHR</type>         <name>supportedEncodeFeedbackFlags</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264CapabilitiesKHR" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                 <name>pNext</name></member>
-            <member noautovalidity="true"><type>VkVideoEncodeH264CapabilityFlagsEXT</type>   <name>flags</name></member>
-            <member><type>VkVideoEncodeH264InputModeFlagsEXT</type>    <name>inputModeFlags</name></member>
-            <member><type>VkVideoEncodeH264OutputModeFlagsEXT</type>   <name>outputModeFlags</name></member>
-            <member><type>uint8_t</type>                               <name>maxPPictureL0ReferenceCount</name></member>
-            <member><type>uint8_t</type>                               <name>maxBPictureL0ReferenceCount</name></member>
-            <member><type>uint8_t</type>                               <name>maxL1ReferenceCount</name></member>
-            <member><type>VkBool32</type>                              <name>motionVectorsOverPicBoundariesFlag</name></member>
-            <member><type>uint32_t</type>                              <name>maxBytesPerPicDenom</name></member>
-            <member><type>uint32_t</type>                              <name>maxBitsPerMbDenom</name></member>
-            <member><type>uint32_t</type>                              <name>log2MaxMvLengthHorizontal</name></member>
-            <member><type>uint32_t</type>                              <name>log2MaxMvLengthVertical</name></member>
+            <member noautovalidity="true"><type>VkVideoEncodeH264CapabilityFlagsKHR</type> <name>flags</name></member>
+            <member><type>StdVideoH264LevelIdc</type>                  <name>maxLevelIdc</name></member>
+            <member><type>uint32_t</type>                              <name>maxSliceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxPPictureL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxBPictureL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxL1ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxTemporalLayerCount</name></member>
+            <member><type>VkBool32</type>                              <name>expectDyadicTemporalLayerPattern</name></member>
+            <member><type>int32_t</type>                               <name>minQp</name></member>
+            <member><type>int32_t</type>                               <name>maxQp</name></member>
+            <member><type>VkBool32</type>                              <name>prefersGopRemainingFrames</name></member>
+            <member><type>VkBool32</type>                              <name>requiresGopRemainingFrames</name></member>
+            <member noautovalidity="true"><type>VkVideoEncodeH264StdFlagsKHR</type> <name>stdSyntaxFlags</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH264QualityLevelPropertiesKHR" returnedonly="true" structextends="VkVideoEncodeQualityLevelPropertiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkVideoEncodeH264RateControlFlagsKHR</type>   <name>preferredRateControlFlags</name></member>
+            <member><type>uint32_t</type>                               <name>preferredGopFrameCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredIdrPeriod</name></member>
+            <member><type>uint32_t</type>                               <name>preferredConsecutiveBFrameCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredTemporalLayerCount</name></member>
+            <member><type>VkVideoEncodeH264QpKHR</type>                 <name>preferredConstantQp</name></member>
+            <member><type>uint32_t</type>                               <name>preferredMaxL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredMaxL1ReferenceCount</name></member>
+            <member><type>VkBool32</type>                               <name>preferredStdEntropyCodingModeFlag</name></member>
         </type>
         <type category="include" name="vk_video/vulkan_video_codec_h264std_encode.h">#include "vk_video/vulkan_video_codec_h264std_encode.h"</type>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264SliceHeader"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfo"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfo"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264SliceHeaderFlags"/>
-        <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMemMgmtCtrlOperations"/>
+        <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceListsInfo"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMgmtFlags"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefListModEntry"/>
         <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefPicMarkingEntry"/>
-        <type category="struct" name="VkVideoEncodeH264SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                                                               <name>pNext</name></member>
-            <member><type>uint32_t</type>                                                                  <name>stdSPSCount</name></member>
+        <type category="struct" name="VkVideoEncodeH264SessionCreateInfoKHR" structextends="VkVideoSessionCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>useMaxLevelIdc</name></member>
+            <member><type>StdVideoH264LevelIdc</type>                   <name>maxLevelIdc</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH264SessionParametersAddInfoKHR" structextends="VkVideoSessionParametersUpdateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                               <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>                                                  <name>stdSPSCount</name></member>
             <member len="stdSPSCount" optional="true">const <type>StdVideoH264SequenceParameterSet</type>* <name>pStdSPSs</name></member>
-            <member><type>uint32_t</type>                                                                  <name>stdPPSCount</name></member>
+            <member optional="true"><type>uint32_t</type>                                                  <name>stdPPSCount</name></member>
             <member len="stdPPSCount" optional="true">const <type>StdVideoH264PictureParameterSet</type>*  <name>pStdPPSs</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                                                         <name>pNext</name></member>
+        <type category="struct" name="VkVideoEncodeH264SessionParametersCreateInfoKHR" structextends="VkVideoSessionParametersCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                         <name>pNext</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdSPSCount</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdPPSCount</name></member>
-            <member optional="true">const <type>VkVideoEncodeH264SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
+            <member optional="true">const <type>VkVideoEncodeH264SessionParametersAddInfoKHR</type>* <name>pParametersAddInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264DpbSlotInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                                                          <name>pNext</name></member>
-            <member><type>int8_t</type>                                                               <name>slotIndex</name></member>
+        <type category="struct" name="VkVideoEncodeH264SessionParametersGetInfoKHR" structextends="VkVideoEncodeSessionParametersGetInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>writeStdSPS</name></member>
+            <member><type>VkBool32</type>                               <name>writeStdPPS</name></member>
+            <member><type>uint32_t</type>                               <name>stdSPSId</name></member>
+            <member><type>uint32_t</type>                               <name>stdPPSId</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH264SessionParametersFeedbackInfoKHR" structextends="VkVideoEncodeSessionParametersFeedbackInfoKHR" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>hasStdSPSOverrides</name></member>
+            <member><type>VkBool32</type>                               <name>hasStdPPSOverrides</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH264DpbSlotInfoKHR" structextends="VkVideoReferenceSlotInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                          <name>pNext</name></member>
             <member>const <type>StdVideoEncodeH264ReferenceInfo</type>*                               <name>pStdReferenceInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264PictureInfoKHR" structextends="VkVideoEncodeInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                        <name>pNext</name></member>
-            <member optional="true">const <type>VkVideoEncodeH264ReferenceListsInfoEXT</type>*      <name>pReferenceFinalLists</name></member>
             <member><type>uint32_t</type>                                                           <name>naluSliceEntryCount</name></member>
-            <member len="naluSliceEntryCount">const <type>VkVideoEncodeH264NaluSliceInfoEXT</type>* <name>pNaluSliceEntries</name></member>
-            <member>const <type>StdVideoEncodeH264PictureInfo</type>*                               <name>pCurrentPictureInfo</name></member>
+            <member len="naluSliceEntryCount">const <type>VkVideoEncodeH264NaluSliceInfoKHR</type>* <name>pNaluSliceEntries</name></member>
+            <member>const <type>StdVideoEncodeH264PictureInfo</type>*                               <name>pStdPictureInfo</name></member>
+            <member><type>VkBool32</type>                                                           <name>generatePrefixNalu</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264ReferenceListsInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                                            <name>pNext</name></member>
-            <member optional="true"><type>uint8_t</type>                                                <name>referenceList0EntryCount</name></member>
-            <member len="referenceList0EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>*  <name>pReferenceList0Entries</name></member>
-            <member optional="true"><type>uint8_t</type>                                                <name>referenceList1EntryCount</name></member>
-            <member len="referenceList1EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>*  <name>pReferenceList1Entries</name></member>
-            <member>const <type>StdVideoEncodeH264RefMemMgmtCtrlOperations</type>*                      <name>pMemMgmtCtrlOperations</name></member>
-        </type>
-        <type category="struct" name="VkVideoEncodeH264EmitPictureParametersInfoEXT" structextends="VkVideoEncodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*             <name>pNext</name></member>
-            <member><type>uint8_t</type>                                 <name>spsId</name></member>
-            <member><type>VkBool32</type>                                <name>emitSpsEnable</name></member>
-            <member><type>uint32_t</type>                                <name>ppsIdEntryCount</name></member>
-            <member len="ppsIdEntryCount">const <type>uint8_t</type>*    <name>ppsIdEntries</name></member>
-        </type>
-        <type category="struct" name="VkVideoEncodeH264ProfileInfoEXT" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264ProfileInfoKHR" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*             <name>pNext</name></member>
             <member><type>StdVideoH264ProfileIdc</type>                  <name>stdProfileIdc</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264NaluSliceInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264NaluSliceInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
-            <member><type>uint32_t</type>                                        <name>mbCount</name></member>
-            <member optional="true">const <type>VkVideoEncodeH264ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
-            <member>const <type>StdVideoEncodeH264SliceHeader</type>*            <name>pSliceHeaderStd</name></member>
+            <member><type>int32_t</type>                                         <name>constantQp</name></member>
+            <member>const <type>StdVideoEncodeH264SliceHeader</type>*            <name>pStdSliceHeader</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264RateControlInfoEXT" structextends="VkVideoCodingControlInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264RateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR,VkVideoBeginCodingInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
+            <member optional="true"><type>VkVideoEncodeH264RateControlFlagsKHR</type> <name>flags</name></member>
             <member><type>uint32_t</type>                                        <name>gopFrameCount</name></member>
             <member><type>uint32_t</type>                                        <name>idrPeriod</name></member>
             <member><type>uint32_t</type>                                        <name>consecutiveBFrameCount</name></member>
-            <member><type>VkVideoEncodeH264RateControlStructureEXT</type>        <name>rateControlStructure</name></member>
-            <member><type>uint8_t</type>                                         <name>temporalLayerCount</name></member>
+            <member><type>uint32_t</type>                                        <name>temporalLayerCount</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264QpEXT">
+        <type category="struct" name="VkVideoEncodeH264QpKHR">
             <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
             <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
             <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264FrameSizeEXT">
+        <type category="struct" name="VkVideoEncodeH264FrameSizeKHR">
             <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
             <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
             <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH264RateControlLayerInfoEXT" structextends="VkVideoCodingControlInfoKHR,VkVideoEncodeRateControlLayerInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
-            <member><type>uint8_t</type>                                         <name>temporalLayerId</name></member>
-            <member><type>VkBool32</type>                                        <name>useInitialRcQp</name></member>
-            <member><type>VkVideoEncodeH264QpEXT</type>                          <name>initialRcQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMinQp</name></member>
-            <member><type>VkVideoEncodeH264QpEXT</type>                          <name>minQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMaxQp</name></member>
-            <member><type>VkVideoEncodeH264QpEXT</type>                          <name>maxQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMaxFrameSize</name></member>
-            <member><type>VkVideoEncodeH264FrameSizeEXT</type>                   <name>maxFrameSize</name></member>
+        <type category="struct" name="VkVideoEncodeH264GopRemainingFrameInfoKHR" structextends="VkVideoBeginCodingInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>useGopRemainingFrames</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingI</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingP</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingB</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH264RateControlLayerInfoKHR" structextends="VkVideoEncodeRateControlLayerInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>useMinQp</name></member>
+            <member><type>VkVideoEncodeH264QpKHR</type>                          <name>minQp</name></member>
+            <member><type>VkBool32</type>                                        <name>useMaxQp</name></member>
+            <member><type>VkVideoEncodeH264QpKHR</type>                          <name>maxQp</name></member>
+            <member><type>VkBool32</type>                                        <name>useMaxFrameSize</name></member>
+            <member><type>VkVideoEncodeH264FrameSizeKHR</type>                   <name>maxFrameSize</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265CapabilitiesKHR" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                 <name>pNext</name></member>
-            <member noautovalidity="true"><type>VkVideoEncodeH265CapabilityFlagsEXT</type>   <name>flags</name></member>
-            <member><type>VkVideoEncodeH265InputModeFlagsEXT</type>    <name>inputModeFlags</name></member>
-            <member><type>VkVideoEncodeH265OutputModeFlagsEXT</type>   <name>outputModeFlags</name></member>
-            <member><type>VkVideoEncodeH265CtbSizeFlagsEXT</type>      <name>ctbSizes</name></member>
-            <member><type>VkVideoEncodeH265TransformBlockSizeFlagsEXT</type>      <name>transformBlockSizes</name></member>
-            <member><type>uint8_t</type>                               <name>maxPPictureL0ReferenceCount</name></member>
-            <member><type>uint8_t</type>                               <name>maxBPictureL0ReferenceCount</name></member>
-            <member><type>uint8_t</type>                               <name>maxL1ReferenceCount</name></member>
-            <member><type>uint8_t</type>                               <name>maxSubLayersCount</name></member>
-            <member><type>uint8_t</type>                               <name>minLog2MinLumaCodingBlockSizeMinus3</name></member>
-            <member><type>uint8_t</type>                               <name>maxLog2MinLumaCodingBlockSizeMinus3</name></member>
-            <member><type>uint8_t</type>                               <name>minLog2MinLumaTransformBlockSizeMinus2</name></member>
-            <member><type>uint8_t</type>                               <name>maxLog2MinLumaTransformBlockSizeMinus2</name></member>
-            <member><type>uint8_t</type>                               <name>minMaxTransformHierarchyDepthInter</name></member>
-            <member><type>uint8_t</type>                               <name>maxMaxTransformHierarchyDepthInter</name></member>
-            <member><type>uint8_t</type>                               <name>minMaxTransformHierarchyDepthIntra</name></member>
-            <member><type>uint8_t</type>                               <name>maxMaxTransformHierarchyDepthIntra</name></member>
-            <member><type>uint8_t</type>                               <name>maxDiffCuQpDeltaDepth</name></member>
-            <member><type>uint8_t</type>                               <name>minMaxNumMergeCand</name></member>
-            <member><type>uint8_t</type>                               <name>maxMaxNumMergeCand</name></member>
+            <member noautovalidity="true"><type>VkVideoEncodeH265CapabilityFlagsKHR</type> <name>flags</name></member>
+            <member><type>StdVideoH265LevelIdc</type>                  <name>maxLevelIdc</name></member>
+            <member><type>uint32_t</type>                              <name>maxSliceSegmentCount</name></member>
+            <member><type>VkExtent2D</type>                            <name>maxTiles</name></member>
+            <member><type>VkVideoEncodeH265CtbSizeFlagsKHR</type>      <name>ctbSizes</name></member>
+            <member><type>VkVideoEncodeH265TransformBlockSizeFlagsKHR</type>      <name>transformBlockSizes</name></member>
+            <member><type>uint32_t</type>                              <name>maxPPictureL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxBPictureL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxL1ReferenceCount</name></member>
+            <member><type>uint32_t</type>                              <name>maxSubLayerCount</name></member>
+            <member><type>VkBool32</type>                              <name>expectDyadicTemporalSubLayerPattern</name></member>
+            <member><type>int32_t</type>                               <name>minQp</name></member>
+            <member><type>int32_t</type>                               <name>maxQp</name></member>
+            <member><type>VkBool32</type>                              <name>prefersGopRemainingFrames</name></member>
+            <member><type>VkBool32</type>                              <name>requiresGopRemainingFrames</name></member>
+            <member noautovalidity="true"><type>VkVideoEncodeH265StdFlagsKHR</type> <name>stdSyntaxFlags</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265QualityLevelPropertiesKHR" returnedonly="true" structextends="VkVideoEncodeQualityLevelPropertiesKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkVideoEncodeH265RateControlFlagsKHR</type>   <name>preferredRateControlFlags</name></member>
+            <member><type>uint32_t</type>                               <name>preferredGopFrameCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredIdrPeriod</name></member>
+            <member><type>uint32_t</type>                               <name>preferredConsecutiveBFrameCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredSubLayerCount</name></member>
+            <member><type>VkVideoEncodeH265QpKHR</type>                 <name>preferredConstantQp</name></member>
+            <member><type>uint32_t</type>                               <name>preferredMaxL0ReferenceCount</name></member>
+            <member><type>uint32_t</type>                               <name>preferredMaxL1ReferenceCount</name></member>
         </type>
         <type category="include" name="vk_video/vulkan_video_codec_h265std_encode.h">#include "vk_video/vulkan_video_codec_h265std_encode.h"</type>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfo"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeader"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfo"/>
-        <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModifications"/>
+        <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceListsInfo"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeaderFlags"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfoFlags"/>
         <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModificationFlags"/>
-        <type category="struct" name="VkVideoEncodeH265SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265SessionCreateInfoKHR" structextends="VkVideoSessionCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>useMaxLevelIdc</name></member>
+            <member><type>StdVideoH265LevelIdc</type>                   <name>maxLevelIdc</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265SessionParametersAddInfoKHR" structextends="VkVideoSessionParametersUpdateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                               <name>pNext</name></member>
-            <member><type>uint32_t</type>                                                                  <name>stdVPSCount</name></member>
+            <member optional="true"><type>uint32_t</type>                                                  <name>stdVPSCount</name></member>
             <member len="stdVPSCount" optional="true">const <type>StdVideoH265VideoParameterSet</type>*    <name>pStdVPSs</name></member>
-            <member><type>uint32_t</type>                                                                  <name>stdSPSCount</name></member>
+            <member optional="true"><type>uint32_t</type>                                                  <name>stdSPSCount</name></member>
             <member len="stdSPSCount" optional="true">const <type>StdVideoH265SequenceParameterSet</type>* <name>pStdSPSs</name></member>
-            <member><type>uint32_t</type>                                                                  <name>stdPPSCount</name></member>
+            <member optional="true"><type>uint32_t</type>                                                  <name>stdPPSCount</name></member>
             <member len="stdPPSCount" optional="true">const <type>StdVideoH265PictureParameterSet</type>*  <name>pStdPPSs</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265SessionParametersCreateInfoKHR" structextends="VkVideoSessionParametersCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                         <name>pNext</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdVPSCount</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdSPSCount</name></member>
             <member><type>uint32_t</type>                                                            <name>maxStdPPSCount</name></member>
-            <member optional="true">const <type>VkVideoEncodeH265SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
+            <member optional="true">const <type>VkVideoEncodeH265SessionParametersAddInfoKHR</type>* <name>pParametersAddInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265SessionParametersGetInfoKHR" structextends="VkVideoEncodeSessionParametersGetInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>writeStdVPS</name></member>
+            <member><type>VkBool32</type>                               <name>writeStdSPS</name></member>
+            <member><type>VkBool32</type>                               <name>writeStdPPS</name></member>
+            <member><type>uint32_t</type>                               <name>stdVPSId</name></member>
+            <member><type>uint32_t</type>                               <name>stdSPSId</name></member>
+            <member><type>uint32_t</type>                               <name>stdPPSId</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265SessionParametersFeedbackInfoKHR" structextends="VkVideoEncodeSessionParametersFeedbackInfoKHR" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkBool32</type>                               <name>hasStdVPSOverrides</name></member>
+            <member><type>VkBool32</type>                               <name>hasStdSPSOverrides</name></member>
+            <member><type>VkBool32</type>                               <name>hasStdPPSOverrides</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265PictureInfoKHR" structextends="VkVideoEncodeInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                       <name>pNext</name></member>
-            <member optional="true">const <type>VkVideoEncodeH265ReferenceListsInfoEXT</type>*     <name>pReferenceFinalLists</name></member>
             <member><type>uint32_t</type>                                                          <name>naluSliceSegmentEntryCount</name></member>
-            <member len="naluSliceSegmentEntryCount">const <type>VkVideoEncodeH265NaluSliceSegmentInfoEXT</type>* <name>pNaluSliceSegmentEntries</name></member>
-            <member>const <type>StdVideoEncodeH265PictureInfo</type>*                              <name>pCurrentPictureInfo</name></member>
+            <member len="naluSliceSegmentEntryCount">const <type>VkVideoEncodeH265NaluSliceSegmentInfoKHR</type>* <name>pNaluSliceSegmentEntries</name></member>
+            <member>const <type>StdVideoEncodeH265PictureInfo</type>*                              <name>pStdPictureInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265EmitPictureParametersInfoEXT" structextends="VkVideoEncodeInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*             <name>pNext</name></member>
-            <member><type>uint8_t</type>                                 <name>vpsId</name></member>
-            <member><type>uint8_t</type>                                 <name>spsId</name></member>
-            <member><type>VkBool32</type>                                <name>emitVpsEnable</name></member>
-            <member><type>VkBool32</type>                                <name>emitSpsEnable</name></member>
-            <member optional="true"><type>uint32_t</type>                <name>ppsIdEntryCount</name></member>
-            <member len="ppsIdEntryCount">const <type>uint8_t</type>*    <name>ppsIdEntries</name></member>
-        </type>
-        <type category="struct" name="VkVideoEncodeH265NaluSliceSegmentInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265NaluSliceSegmentInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                <name>pNext</name></member>
-            <member><type>uint32_t</type>                                                   <name>ctbCount</name></member>
-            <member optional="true">const <type>VkVideoEncodeH265ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
-            <member>const <type>StdVideoEncodeH265SliceSegmentHeader</type>*                <name>pSliceSegmentHeaderStd</name></member>
+            <member><type>int32_t</type>                                                    <name>constantQp</name></member>
+            <member>const <type>StdVideoEncodeH265SliceSegmentHeader</type>*                <name>pStdSliceSegmentHeader</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265RateControlInfoEXT" structextends="VkVideoCodingControlInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265RateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR,VkVideoBeginCodingInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
+            <member optional="true"><type>VkVideoEncodeH265RateControlFlagsKHR</type> <name>flags</name></member>
             <member><type>uint32_t</type>                                        <name>gopFrameCount</name></member>
             <member><type>uint32_t</type>                                        <name>idrPeriod</name></member>
             <member><type>uint32_t</type>                                        <name>consecutiveBFrameCount</name></member>
-            <member><type>VkVideoEncodeH265RateControlStructureEXT</type>        <name>rateControlStructure</name></member>
-            <member><type>uint8_t</type>                                         <name>subLayerCount</name></member>
+            <member><type>uint32_t</type>                                        <name>subLayerCount</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265QpEXT">
+        <type category="struct" name="VkVideoEncodeH265QpKHR">
             <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
             <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
             <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265FrameSizeEXT">
+        <type category="struct" name="VkVideoEncodeH265FrameSizeKHR">
             <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
             <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
             <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265RateControlLayerInfoEXT" structextends="VkVideoCodingControlInfoKHR,VkVideoEncodeRateControlLayerInfoKHR">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
-            <member><type>uint8_t</type>                                         <name>temporalId</name></member>
-            <member><type>VkBool32</type>                                        <name>useInitialRcQp</name></member>
-            <member><type>VkVideoEncodeH265QpEXT</type>                          <name>initialRcQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMinQp</name></member>
-            <member><type>VkVideoEncodeH265QpEXT</type>                          <name>minQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMaxQp</name></member>
-            <member><type>VkVideoEncodeH265QpEXT</type>                          <name>maxQp</name></member>
-            <member><type>VkBool32</type>                                        <name>useMaxFrameSize</name></member>
-            <member><type>VkVideoEncodeH265FrameSizeEXT</type>                   <name>maxFrameSize</name></member>
+        <type category="struct" name="VkVideoEncodeH265GopRemainingFrameInfoKHR" structextends="VkVideoBeginCodingInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>useGopRemainingFrames</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingI</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingP</name></member>
+            <member><type>uint32_t</type>                       <name>gopRemainingB</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265ProfileInfoEXT" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265RateControlLayerInfoKHR" structextends="VkVideoEncodeRateControlLayerInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>useMinQp</name></member>
+            <member><type>VkVideoEncodeH265QpKHR</type>                          <name>minQp</name></member>
+            <member><type>VkBool32</type>                                        <name>useMaxQp</name></member>
+            <member><type>VkVideoEncodeH265QpKHR</type>                          <name>maxQp</name></member>
+            <member><type>VkBool32</type>                                        <name>useMaxFrameSize</name></member>
+            <member><type>VkVideoEncodeH265FrameSizeKHR</type>                   <name>maxFrameSize</name></member>
+        </type>
+        <type category="struct" name="VkVideoEncodeH265ProfileInfoKHR" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*    <name>pNext</name></member>
             <member><type>StdVideoH265ProfileIdc</type>         <name>stdProfileIdc</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265DpbSlotInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkVideoEncodeH265DpbSlotInfoKHR" structextends="VkVideoReferenceSlotInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*              <name>pNext</name></member>
-            <member><type>int8_t</type>                                   <name>slotIndex</name></member>
             <member>const <type>StdVideoEncodeH265ReferenceInfo</type>*   <name>pStdReferenceInfo</name></member>
         </type>
-        <type category="struct" name="VkVideoEncodeH265ReferenceListsInfoEXT">
-            <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                                            <name>pNext</name></member>
-            <member optional="true"><type>uint8_t</type>                                                <name>referenceList0EntryCount</name></member>
-            <member len="referenceList0EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>*  <name>pReferenceList0Entries</name></member>
-            <member optional="true"><type>uint8_t</type>                                                <name>referenceList1EntryCount</name></member>
-            <member len="referenceList1EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>*  <name>pReferenceList1Entries</name></member>
-            <member>const <type>StdVideoEncodeH265ReferenceModifications</type>*                        <name>pReferenceModifications</name></member>
-        </type>
         <type category="struct" name="VkPhysicalDeviceInheritedViewportScissorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                               <name>pNext</name></member>
@@ -6672,8 +7302,8 @@
         <type category="struct" name="VkCuModuleCreateInfoNVX">
             <member values="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
-            <member><type>size_t</type>                 <name>dataSize</name></member>
-            <member len="dataSize">const <type>void</type>*            <name>pData</name></member>
+            <member optional="true"><type>size_t</type>                 <name>dataSize</name></member>
+            <member len="dataSize">const <type>void</type>*             <name>pData</name></member>
         </type>
         <type category="struct" name="VkCuFunctionCreateInfoNVX">
             <member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
@@ -6758,7 +7388,7 @@
             <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                   <name>pNext</name></member>
             <member><type>VkDeviceAddress</type>                         <name>address</name></member>
-            <member><type>VkBufferUsageFlags</type>                      <name>usage</name></member>
+            <member optional="true" noautovalidity="true"><type>VkBufferUsageFlags</type> <name>usage</name></member>
         </type>
         <type category="struct" name="VkDescriptorBufferBindingPushDescriptorBufferHandleEXT" structextends="VkDescriptorBufferBindingInfoEXT">
             <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -7025,6 +7655,36 @@
             <member><type>uint32_t</type>                        <name>minBufferCountForDedicatedSlack</name></member>
             <member><type>uint32_t</type>                        <name>minBufferCountForSharedSlack</name></member>
         </type>
+        <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CUDA_MODULE_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCudaModuleNV</name>)</type>
+        <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CUDA_FUNCTION_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCudaFunctionNV</name>)</type>
+        <type category="struct" name="VkCudaModuleCreateInfoNV">
+            <member values="VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>size_t</type>                 <name>dataSize</name></member>
+            <member len="dataSize">const <type>void</type>*            <name>pData</name></member>
+        </type>
+        <type category="struct" name="VkCudaFunctionCreateInfoNV">
+            <member values="VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>VkCudaModuleNV</type>         <name>module</name></member>
+            <member len="null-terminated">const <type>char</type>*            <name>pName</name></member>
+        </type>
+        <type category="struct" name="VkCudaLaunchInfoNV">
+            <member values="VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member><type>VkCudaFunctionNV</type>       <name>function</name></member>
+            <member><type>uint32_t</type>               <name>gridDimX</name></member>
+            <member><type>uint32_t</type>               <name>gridDimY</name></member>
+            <member><type>uint32_t</type>               <name>gridDimZ</name></member>
+            <member><type>uint32_t</type>               <name>blockDimX</name></member>
+            <member><type>uint32_t</type>               <name>blockDimY</name></member>
+            <member><type>uint32_t</type>               <name>blockDimZ</name></member>
+            <member><type>uint32_t</type>               <name>sharedMemBytes</name></member>
+            <member optional="true"><type>size_t</type>                                     <name>paramCount</name></member>
+            <member noautovalidity="true" len="paramCount">const <type>void</type>* const * <name>pParams</name></member>
+            <member optional="true"><type>size_t</type>                                     <name>extraCount</name></member>
+            <member noautovalidity="true" len="extraCount">const <type>void</type>* const * <name>pExtras</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true" noautovalidity="true"><type>void</type>*        <name>pNext</name></member>
@@ -7121,7 +7781,8 @@
             <member optional="true">const <type>void</type>*                                                <name>pNext</name></member>
             <member optional="true"><type>VkRenderingFlags</type>                                           <name>flags</name></member>
             <member><type>uint32_t</type>                                                                   <name>viewMask</name></member>
-            <member optional="true"><type>uint32_t</type>                                                   <name>colorAttachmentCount</name></member>
+            <member api="vulkan" optional="true"><type>uint32_t</type>                                      <name>colorAttachmentCount</name></member>
+            <member api="vulkansc"><type>uint32_t</type>                                                    <name>colorAttachmentCount</name></member>
             <member len="colorAttachmentCount">const <type>VkFormat</type>*                                 <name>pColorAttachmentFormats</name></member>
             <member><type>VkFormat</type>                                                                   <name>depthAttachmentFormat</name></member>
             <member><type>VkFormat</type>                                                                   <name>stencilAttachmentFormat</name></member>
@@ -7178,7 +7839,7 @@
         </type>
         <type category="struct" name="VkGraphicsPipelineLibraryCreateInfoEXT" structextends="VkGraphicsPipelineCreateInfo">
             <member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member optional="true">const <type>void</type>*       <name>pNext</name></member>
             <member><type>VkGraphicsPipelineLibraryFlagsEXT</type> <name>flags</name></member>
         </type>
         <type category="struct" name="VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
@@ -7198,6 +7859,18 @@
             <member><type>size_t</type>                                                                                   <name>descriptorOffset</name></member>
             <member><type>uint32_t</type>                                                                                 <name>descriptorSize</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceNestedCommandBufferFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>nestedCommandBuffer</name></member>
+            <member><type>VkBool32</type>                                        <name>nestedCommandBufferRendering</name></member>
+            <member><type>VkBool32</type>                                        <name>nestedCommandBufferSimultaneousUse</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceNestedCommandBufferPropertiesEXT" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                           <name>pNext</name></member>
+            <member limittype="max"><type>uint32_t</type>                        <name>maxCommandBufferNestingLevel</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true" noautovalidity="true"><type>void</type>*                                                      <name>pNext</name></member>
@@ -7232,7 +7905,7 @@
             <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
             <member><type>VkBool32</type>                             <name>imageCompressionControl</name></member>
         </type>
-        <type category="struct" name="VkImageCompressionPropertiesEXT" structextends="VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2EXT" returnedonly="true">
+        <type category="struct" name="VkImageCompressionPropertiesEXT" structextends="VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2KHR" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*                <name>pNext</name></member>
             <member><type>VkImageCompressionFlagsEXT</type>           <name>imageCompressionFlags</name></member>
@@ -7243,16 +7916,18 @@
             <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
             <member><type>VkBool32</type>                             <name>imageCompressionControlSwapchain</name></member>
         </type>
-        <type category="struct" name="VkImageSubresource2EXT">
-            <member values="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkImageSubresource2KHR">
+            <member values="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*  <name>pNext</name></member>
             <member><type>VkImageSubresource</type>     <name>imageSubresource</name></member>
         </type>
-        <type category="struct" name="VkSubresourceLayout2EXT"  returnedonly="true">
-            <member values="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"><type>VkStructureType</type> <name>sType</name></member>
+        <type category="struct" name="VkImageSubresource2EXT" alias="VkImageSubresource2KHR"/>
+        <type category="struct" name="VkSubresourceLayout2KHR"  returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*  <name>pNext</name></member>
             <member><type>VkSubresourceLayout</type>    <name>subresourceLayout</name></member>
         </type>
+        <type category="struct" name="VkSubresourceLayout2EXT" alias="VkSubresourceLayout2KHR"/>
         <type category="struct" name="VkRenderPassCreationControlEXT" structextends="VkRenderPassCreateInfo2,VkSubpassDescription2">
             <member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                                                 <name>pNext</name></member>
@@ -7372,7 +8047,42 @@
             <member optional="true"><type>uint32_t</type>                               <name>usageCountsCount</name></member>
             <member len="usageCountsCount" optional="true">const <type>VkMicromapUsageEXT</type>*  <name>pUsageCounts</name></member>
             <member len="usageCountsCount,1" optional="true,false">const <type>VkMicromapUsageEXT</type>* const* <name>ppUsageCounts</name></member>
-            <member><type>VkMicromapEXT</type>                                          <name>micromap</name></member>
+            <member optional="true"><type>VkMicromapEXT</type>                          <name>micromap</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceDisplacementMicromapFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>displacementMicromap</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceDisplacementMicromapPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                            <name>pNext</name></member>
+            <member limittype="max"><type>uint32_t</type>                         <name>maxDisplacementMicromapSubdivisionLevel</name></member>
+        </type>
+        <type category="struct" name="VkAccelerationStructureTrianglesDisplacementMicromapNV" structextends="VkAccelerationStructureGeometryTrianglesDataKHR">
+            <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                                  <name>pNext</name></member>
+
+            <member><type>VkFormat</type>                                               <name>displacementBiasAndScaleFormat</name></member>
+            <member><type>VkFormat</type>                                               <name>displacementVectorFormat</name></member>
+
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type>    <name>displacementBiasAndScaleBuffer</name></member>
+            <member><type>VkDeviceSize</type>                                           <name>displacementBiasAndScaleStride</name></member>
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type>    <name>displacementVectorBuffer</name></member>
+            <member><type>VkDeviceSize</type>                                           <name>displacementVectorStride</name></member>
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type>    <name>displacedMicromapPrimitiveFlags</name></member>
+            <member><type>VkDeviceSize</type>                                           <name>displacedMicromapPrimitiveFlagsStride</name></member>
+            <member><type>VkIndexType</type>                                            <name>indexType</name></member>
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type>    <name>indexBuffer</name></member>
+            <member><type>VkDeviceSize</type>                                           <name>indexStride</name></member>
+
+            <member><type>uint32_t</type>                                               <name>baseTriangle</name></member>
+
+            <member optional="true"><type>uint32_t</type>                                                          <name>usageCountsCount</name></member>
+            <member len="usageCountsCount" optional="true">const <type>VkMicromapUsageEXT</type>*                  <name>pUsageCounts</name></member>
+            <member len="usageCountsCount,1" optional="true,false">const <type>VkMicromapUsageEXT</type>* const*   <name>ppUsageCounts</name></member>
+
+            <member optional="true"><type>VkMicromapEXT</type>                          <name>micromap</name></member>
         </type>
         <type category="struct" name="VkPipelinePropertiesIdentifierEXT">
             <member values="VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -7389,6 +8099,11 @@
             <member noautovalidity="true" optional="true"><type>void</type>*        <name>pNext</name></member>
             <member><type>VkBool32</type>                           <name>shaderEarlyAndLateFragmentTests</name></member>
         </type>
+        <type category="struct" name="VkExternalMemoryAcquireUnmodifiedEXT" structextends="VkBufferMemoryBarrier,VkBufferMemoryBarrier2,VkImageMemoryBarrier,VkImageMemoryBarrier2">
+            <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>acquireUnmodifiedMemory</name></member>
+        </type>
         <type category="struct" name="VkExportMetalObjectCreateInfoEXT" structextends="VkInstanceCreateInfo,VkMemoryAllocateInfo,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferViewCreateInfo,VkSemaphoreCreateInfo,VkEventCreateInfo" allowduplicate="true">
             <member values="VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                <name>pNext</name></member>
@@ -7477,7 +8192,7 @@
             <member><type>VkPipelineRobustnessImageBehaviorEXT</type>    <name>images</name></member>
         </type>
         <type category="struct" name="VkPhysicalDevicePipelineRobustnessPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
-                <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>* <name>pNext</name></member>
             <member limittype="exact"><type>VkPipelineRobustnessBufferBehaviorEXT</type>   <name>defaultRobustnessStorageBuffers</name></member>
             <member limittype="exact"><type>VkPipelineRobustnessBufferBehaviorEXT</type>   <name>defaultRobustnessUniformBuffers</name></member>
@@ -7651,6 +8366,26 @@
             <member><type>uint32_t</type>               <name>applicationNameOffset</name></member>
             <member><type>uint32_t</type>               <name>applicationVersion</name></member>
             <member><type>uint32_t</type>               <name>engineNameOffset</name></member>
+            <member><type>uint32_t</type>               <name>engineVersion</name></member>
+            <member><type>uint32_t</type>               <name>apiVersion</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*                                                            <name>pNext</name></member>
+            <member><type>VkBool32</type>                                                                                               <name>pipelineLibraryGroupHandles</name></member>
+        </type>
+        <type category="struct" name="VkDepthBiasInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*        <name>pNext</name></member>
+            <member><type>float</type>                              <name>depthBiasConstantFactor</name></member>
+            <member><type>float</type>                              <name>depthBiasClamp</name></member>
+            <member><type>float</type>                              <name>depthBiasSlopeFactor</name></member>
+        </type>
+        <type category="struct" name="VkDepthBiasRepresentationInfoEXT" structextends="VkDepthBiasInfoEXT,VkPipelineRasterizationStateCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*        <name>pNext</name></member>
+            <member><type>VkDepthBiasRepresentationEXT</type>       <name>depthBiasRepresentation</name></member>
+            <member><type>VkBool32</type>                           <name>depthBiasExact</name></member>
         </type>
         <type category="struct" name="VkDecompressMemoryRegionNV">
             <member><type>VkDeviceAddress</type>   <name>srcAddress</name></member>
@@ -7671,6 +8406,29 @@
             <member optional="true"><type>void</type>*    <name>pNext</name></member>
             <member><type>VkBool32</type>                 <name>shaderCoreBuiltins</name></member>
         </type>
+        <type category="struct" name="VkFrameBoundaryEXT" structextends="VkSubmitInfo,VkSubmitInfo2,VkPresentInfoKHR,VkBindSparseInfo">
+            <member values="VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                        <name>pNext</name></member>
+            <member optional="true"><type>VkFrameBoundaryFlagsEXT</type>            <name>flags</name></member>
+            <member><type>uint64_t</type>                                           <name>frameID</name></member>
+            <member optional="true"><type>uint32_t</type>                           <name>imageCount</name></member>
+            <member optional="true" len="imageCount">const <type>VkImage</type>*    <name>pImages</name></member>
+            <member optional="true"><type>uint32_t</type>                           <name>bufferCount</name></member>
+            <member optional="true" len="bufferCount">const <type>VkBuffer</type>*  <name>pBuffers</name></member>
+            <member optional="true"><type>uint64_t</type>                           <name>tagName</name></member>
+            <member optional="true"><type>size_t</type>                             <name>tagSize</name></member>
+            <member optional="true" len="tagSize">const <type>void</type>*          <name>pTag</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceFrameBoundaryFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                 <name>frameBoundary</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                 <name>dynamicRenderingUnusedAttachments</name></member>
+        </type>
         <type category="struct" name="VkSurfacePresentModeEXT" structextends="VkPhysicalDeviceSurfaceInfo2KHR">
             <member values="VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true"><type>void</type>*               <name>pNext</name></member>
@@ -7698,19 +8456,19 @@
         </type>
         <type category="struct" name="VkSwapchainPresentFenceInfoEXT" structextends="VkPresentInfoKHR">
             <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true"><type>void</type>*               <name>pNext</name></member>
+            <member optional="true">const <type>void</type>*         <name>pNext</name></member>
             <member><type>uint32_t</type>                            <name>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
             <member len="swapchainCount">const <type>VkFence</type>* <name>pFences</name><comment>Fence to signal for each swapchain</comment></member>
         </type>
         <type category="struct" name="VkSwapchainPresentModesCreateInfoEXT" structextends="VkSwapchainCreateInfoKHR">
             <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true"><type>void</type>*               <name>pNext</name></member>
+            <member optional="true">const <type>void</type>*         <name>pNext</name></member>
             <member><type>uint32_t</type>                            <name>presentModeCount</name></member><comment>Length of the pPresentModes array</comment>
             <member len="presentModeCount">const <type>VkPresentModeKHR</type>* <name>pPresentModes</name></member><comment>Presentation modes which will be usable with this swapchain</comment>
         </type>
         <type category="struct" name="VkSwapchainPresentModeInfoEXT" structextends="VkPresentInfoKHR">
             <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true"><type>void</type>*               <name>pNext</name></member>
+            <member optional="true">const <type>void</type>*         <name>pNext</name></member>
             <member><type>uint32_t</type>                            <name>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
             <member len="swapchainCount">const <type>VkPresentModeKHR</type>* <name>pPresentModes</name><comment>Presentation mode for each swapchain</comment></member>
         </type>
@@ -7728,6 +8486,14 @@
             <member><type>uint32_t</type>                                    <name>imageIndexCount</name><comment>Number of indices to release</comment></member>
             <member len="imageIndexCount">const <type>uint32_t</type>*       <name>pImageIndices</name><comment>Indices of which presentable images to release</comment></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceDepthBiasControlFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*              <name>pNext</name></member>
+            <member><type>VkBool32</type>                           <name>depthBiasControl</name></member>
+            <member><type>VkBool32</type>                           <name>leastRepresentableValueForceUnormRepresentation</name></member>
+            <member><type>VkBool32</type>                           <name>floatRepresentation</name></member>
+            <member><type>VkBool32</type>                           <name>depthBiasExact</name></member>
+        </type>
         <type category="struct" name="VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true" noautovalidity="true"><type>void</type>*                                                      <name>pNext</name></member>
@@ -7738,6 +8504,18 @@
             <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
             <member limittype="noauto"><type>VkRayTracingInvocationReorderModeNV</type>                                    <name>rayTracingInvocationReorderReorderingHint</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*  <name>pNext</name></member>
+            <member><type>VkBool32</type>                                     <name>extendedSparseAddressSpace</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                        <name>pNext</name></member>
+            <member limittype="max"><type>VkDeviceSize</type>                 <name>extendedSparseAddressSpaceSize</name><comment>Total address space available for extended sparse allocations (bytes)</comment></member>
+            <member limittype="bitmask"><type>VkImageUsageFlags</type>        <name>extendedSparseImageUsageFlags</name><comment>Bitfield of which image usages are supported for extended sparse allocations</comment></member>
+            <member limittype="bitmask"><type>VkBufferUsageFlags</type>       <name>extendedSparseBufferUsageFlags</name><comment>Bitfield of which buffer usages are supported for extended sparse allocations</comment></member>
+        </type>
         <type category="struct" name="VkDirectDriverLoadingInfoLUNARG">
             <member values="VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true" noautovalidity="true"><type>void</type>*                                  <name>pNext</name></member>
@@ -7746,7 +8524,7 @@
         </type>
         <type category="struct" name="VkDirectDriverLoadingListLUNARG" structextends="VkInstanceCreateInfo">
             <member values="VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true" noautovalidity="true"><type>void</type>*                 <name>pNext</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>*           <name>pNext</name></member>
             <member><type>VkDirectDriverLoadingModeLUNARG</type>                             <name>mode</name></member>
             <member><type>uint32_t</type>                                                    <name>driverCount</name></member>
             <member len="driverCount">const <type>VkDirectDriverLoadingInfoLUNARG</type>*    <name>pDrivers</name></member>
@@ -7756,6 +8534,462 @@
             <member optional="true"><type>void</type>*            <name>pNext</name></member>
             <member><type>VkBool32</type>                         <name>multiviewPerViewViewports</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member><type>VkBool32</type>                     <name>rayTracingPositionFetch</name></member>
+        </type>
+        <type category="struct" name="VkDeviceImageSubresourceInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                              <name>pNext</name></member>
+            <member>const <type>VkImageCreateInfo</type>*                                                 <name>pCreateInfo</name></member>
+            <member>const <type>VkImageSubresource2KHR</type>*                                            <name>pSubresource</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderCorePropertiesARM" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                          <name>pNext</name></member>
+            <member limittype="exact"><type>uint32_t</type>         <name>pixelRate</name></member>
+            <member limittype="exact"><type>uint32_t</type>         <name>texelRate</name></member>
+            <member limittype="exact"><type>uint32_t</type>         <name>fmaRate</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>multiviewPerViewRenderAreas</name></member>
+        </type>
+        <type category="struct" name="VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM" structextends="VkRenderPassBeginInfo,VkRenderingInfo">
+            <member values="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>         <name>perViewRenderAreaCount</name></member>
+            <member len="perViewRenderAreaCount">const <type>VkRect2D</type>*  <name>pPerViewRenderAreas</name></member>
+        </type>
+        <type category="struct" name="VkQueryLowLatencySupportNV" structextends="VkSemaphoreCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>void</type>*                                       <name>pQueriedLowLatencyData</name></member>
+        </type>
+        <type category="struct" name="VkMemoryMapInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*      <name>pNext</name></member>
+            <member optional="true"><type>VkMemoryMapFlags</type> <name>flags</name></member>
+            <member externsync="true"><type>VkDeviceMemory</type> <name>memory</name></member>
+            <member><type>VkDeviceSize</type>                     <name>offset</name></member>
+            <member><type>VkDeviceSize</type>                     <name>size</name></member>
+        </type>
+        <type category="struct" name="VkMemoryUnmapInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*            <name>pNext</name></member>
+            <member optional="true"><type>VkMemoryUnmapFlagsKHR</type>  <name>flags</name></member>
+            <member externsync="true"><type>VkDeviceMemory</type>       <name>memory</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderObjectFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*                                           <name>pNext</name></member>
+            <member><type>VkBool32</type>                                                                              <name>shaderObject</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderObjectPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*                                             <name>pNext</name></member>
+            <member limittype="noauto"><type>uint8_t</type>                                                              <name>shaderBinaryUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
+            <member limittype="noauto"><type>uint32_t</type>                                                             <name>shaderBinaryVersion</name></member>
+        </type>
+        <type category="struct" name="VkShaderCreateInfoEXT">
+            <member values="VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT"><type>VkStructureType</type>       <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                             <name>pNext</name></member>
+            <member optional="true"><type>VkShaderCreateFlagsEXT</type>                                  <name>flags</name></member>
+            <member><type>VkShaderStageFlagBits</type>                                                   <name>stage</name></member>
+            <member optional="true"><type>VkShaderStageFlags</type>                                      <name>nextStage</name></member>
+            <member><type>VkShaderCodeTypeEXT</type>                                                     <name>codeType</name></member>
+            <member><type>size_t</type>                                                                  <name>codeSize</name></member>
+            <member len="codeSize">const <type>void</type>*                                              <name>pCode</name></member>
+            <member optional="true" len="null-terminated">const <type>char</type>*                       <name>pName</name></member>
+            <member optional="true"><type>uint32_t</type>                                                <name>setLayoutCount</name></member>
+            <member optional="true" len="setLayoutCount">const <type>VkDescriptorSetLayout</type>*       <name>pSetLayouts</name></member>
+            <member optional="true"><type>uint32_t</type>                                                <name>pushConstantRangeCount</name></member>
+            <member optional="true" len="pushConstantRangeCount">const <type>VkPushConstantRange</type>* <name>pPushConstantRanges</name></member>
+            <member optional="true">const <type>VkSpecializationInfo</type>*                             <name>pSpecializationInfo</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderTileImageFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*              <name>pNext</name></member>
+            <member><type>VkBool32</type>                           <name>shaderTileImageColorReadAccess</name></member>
+            <member><type>VkBool32</type>                           <name>shaderTileImageDepthReadAccess</name></member>
+            <member><type>VkBool32</type>                           <name>shaderTileImageStencilReadAccess</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderTileImagePropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*              <name>pNext</name></member>
+            <member limittype="noauto"><type>VkBool32</type>        <name>shaderTileImageCoherentReadAccelerated</name></member>
+            <member limittype="noauto"><type>VkBool32</type>        <name>shaderTileImageReadSampleFromPixelRateInvocation</name></member>
+            <member limittype="noauto"><type>VkBool32</type>        <name>shaderTileImageReadFromHelperInvocation</name></member>
+        </type>
+        <type category="struct" name="VkImportScreenBufferInfoQNX" structextends="VkMemoryAllocateInfo">
+            <member values="VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                        <name>pNext</name></member>
+            <member noautovalidity="true">struct <type>_screen_buffer</type>*       <name>buffer</name></member>
+        </type>
+        <type category="struct" name="VkScreenBufferPropertiesQNX" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                              <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>                       <name>allocationSize</name></member>
+            <member><type>uint32_t</type>                           <name>memoryTypeBits</name></member>
+        </type>
+        <type category="struct" name="VkScreenBufferFormatPropertiesQNX" structextends="VkScreenBufferPropertiesQNX" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                              <name>pNext</name></member>
+            <member><type>VkFormat</type>                           <name>format</name></member>
+            <member><type>uint64_t</type>                           <name>externalFormat</name></member>
+            <member><type>uint64_t</type>                           <name>screenUsage</name></member>
+            <member><type>VkFormatFeatureFlags</type>               <name>formatFeatures</name></member>
+            <member><type>VkComponentMapping</type>                 <name>samplerYcbcrConversionComponents</name></member>
+            <member><type>VkSamplerYcbcrModelConversion</type>      <name>suggestedYcbcrModel</name></member>
+            <member><type>VkSamplerYcbcrRange</type>                <name>suggestedYcbcrRange</name></member>
+            <member><type>VkChromaLocation</type>                   <name>suggestedXChromaOffset</name></member>
+            <member><type>VkChromaLocation</type>                   <name>suggestedYChromaOffset</name></member>
+        </type>
+        <type category="struct" name="VkExternalFormatQNX" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                              <name>pNext</name></member>
+            <member><type>uint64_t</type>                           <name>externalFormat</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                       <name>pNext</name></member>
+            <member><type>VkBool32</type>                                    <name>screenBufferImport</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCooperativeMatrixFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*               <name>pNext</name></member>
+            <member><type>VkBool32</type>                            <name>cooperativeMatrix</name></member>
+            <member><type>VkBool32</type>                            <name>cooperativeMatrixRobustBufferAccess</name></member>
+        </type>
+        <type category="struct" name="VkCooperativeMatrixPropertiesKHR">
+            <member values="VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                               <name>pNext</name></member>
+            <member><type>uint32_t</type>                            <name>MSize</name></member>
+            <member><type>uint32_t</type>                            <name>NSize</name></member>
+            <member><type>uint32_t</type>                            <name>KSize</name></member>
+            <member><type>VkComponentTypeKHR</type>                  <name>AType</name></member>
+            <member><type>VkComponentTypeKHR</type>                  <name>BType</name></member>
+            <member><type>VkComponentTypeKHR</type>                  <name>CType</name></member>
+            <member><type>VkComponentTypeKHR</type>                  <name>ResultType</name></member>
+            <member><type>VkBool32</type>                            <name>saturatingAccumulation</name></member>
+            <member><type>VkScopeKHR</type>                          <name>scope</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCooperativeMatrixPropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                               <name>pNext</name></member>
+            <member limittype="bitmask"><type>VkShaderStageFlags</type>              <name>cooperativeMatrixSupportedStages</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderEnqueuePropertiesAMDX" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX"><type>VkStructureType</type> <name>sType</name></member>
+            <member noautovalidity="true"  optional="true"><type>void</type>*               <name>pNext</name></member>
+            <member limittype="max"><type>uint32_t</type>                                   <name>maxExecutionGraphDepth</name></member>
+            <member limittype="max"><type>uint32_t</type>                                   <name>maxExecutionGraphShaderOutputNodes</name></member>
+            <member limittype="max"><type>uint32_t</type>                                   <name>maxExecutionGraphShaderPayloadSize</name></member>
+            <member limittype="max"><type>uint32_t</type>                                   <name>maxExecutionGraphShaderPayloadCount</name></member>
+            <member limittype="noauto"><type>uint32_t</type>                                <name>executionGraphDispatchAddressAlignment</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceShaderEnqueueFeaturesAMDX" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX"><type>VkStructureType</type> <name>sType</name></member>
+            <member noautovalidity="true" optional="true"><type>void</type>*                <name>pNext</name></member>
+            <member><type>VkBool32</type>                                                   <name>shaderEnqueue</name></member>
+        </type>
+        <type category="struct" name="VkExecutionGraphPipelineCreateInfoAMDX">
+            <member values="VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                <name>pNext</name></member>
+            <member noautovalidity="true" optional="true"><type>VkPipelineCreateFlags</type>                      <name>flags</name></member>
+            <member optional="true"><type>uint32_t</type>                                   <name>stageCount</name></member>
+            <member optional="true" len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>*    <name>pStages</name></member>
+            <member optional="true">const <type>VkPipelineLibraryCreateInfoKHR</type>*      <name>pLibraryInfo</name></member>
+            <member><type>VkPipelineLayout</type>                                           <name>layout</name></member>
+            <member noautovalidity="true" optional="true"><type>VkPipeline</type>           <name>basePipelineHandle</name></member>
+            <member><type>int32_t</type>                                                    <name>basePipelineIndex</name></member>
+        </type>
+        <type category="struct" name="VkPipelineShaderStageNodeCreateInfoAMDX" structextends="VkPipelineShaderStageCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX">  <type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                <name>pNext</name></member>
+            <member optional="true" len="null-terminated">const <type>char</type>*          <name>pName</name></member>
+            <member><type>uint32_t</type>                                                   <name>index</name></member>
+        </type>
+        <type category="struct" name="VkExecutionGraphPipelineScratchSizeAMDX">
+            <member values="VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX"><type>VkStructureType</type> <name>sType</name></member>
+            <member noautovalidity="true" optional="true"><type>void</type>*                <name>pNext</name></member>
+            <member><type>VkDeviceSize</type>                                               <name>size</name></member>
+        </type>
+        <type category="struct" name="VkDispatchGraphInfoAMDX">
+            <member><type>uint32_t</type>                                                   <name>nodeIndex</name></member>
+            <member optional="true"><type>uint32_t</type>                                   <name>payloadCount</name></member>
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstAMDX</type>           <name>payloads</name></member>
+            <member><type>uint64_t</type>                                                   <name>payloadStride</name></member>
+        </type>
+        <type category="struct" name="VkDispatchGraphCountInfoAMDX">
+            <member optional="true"><type>uint32_t</type>                                   <name>count</name></member>
+            <member noautovalidity="true"><type>VkDeviceOrHostAddressConstAMDX</type>                  <name>infos</name></member>
+            <member><type>uint64_t</type>                                                   <name>stride</name></member>
+        </type>
+        <type category="struct" name="VkBindMemoryStatusKHR" structextends="VkBindBufferMemoryInfo,VkBindImageMemoryInfo">
+            <member values="VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                                <name>pNext</name></member>
+            <member><type>VkResult</type>*                                                  <name>pResult</name></member>
+        </type>
+        <type category="struct" name="VkBindDescriptorSetsInfoKHR">
+          <member values="VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                              <name>pNext</name></member>
+          <member><type>VkShaderStageFlags</type>                                                       <name>stageFlags</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                         <name>layout</name></member>
+          <member optional="true"><type>uint32_t</type>                                                 <name>firstSet</name></member>
+          <member><type>uint32_t</type>                                                                 <name>descriptorSetCount</name></member>
+          <member len="descriptorSetCount">const <type>VkDescriptorSet</type>*                          <name>pDescriptorSets</name></member>
+          <member optional="true"><type>uint32_t</type>                                                 <name>dynamicOffsetCount</name></member>
+          <member optional="true,true" len="dynamicOffsetCount">const <type>uint32_t</type>*            <name>pDynamicOffsets</name></member>
+        </type>
+        <type category="struct" name="VkPushConstantsInfoKHR">
+          <member values="VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR"><type>VkStructureType</type>          <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                                 <name>pNext</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                            <name>layout</name></member>
+          <member><type>VkShaderStageFlags</type>                                                          <name>stageFlags</name></member>
+          <member optional="true"><type>uint32_t</type>                                                    <name>offset</name></member>
+          <member><type>uint32_t</type>                                                                    <name>size</name></member>
+          <member len="size">const <type>void</type>*                                                      <name>pValues</name></member>
+        </type>
+        <type category="struct" name="VkPushDescriptorSetInfoKHR">
+          <member values="VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                             <name>pNext</name></member>
+          <member><type>VkShaderStageFlags</type>                                                      <name>stageFlags</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                        <name>layout</name></member>
+          <member optional="true"><type>uint32_t</type>                                                <name>set</name></member>
+          <member><type>uint32_t</type>                                                                <name>descriptorWriteCount</name></member>
+          <member len="descriptorWriteCount">const <type>VkWriteDescriptorSet</type>*                  <name>pDescriptorWrites</name></member>
+        </type>
+        <type category="struct" name="VkPushDescriptorSetWithTemplateInfoKHR">
+          <member values="VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                                           <name>pNext</name></member>
+          <member><type>VkDescriptorUpdateTemplate</type>                                                            <name>descriptorUpdateTemplate</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                                      <name>layout</name></member>
+          <member optional="true"><type>uint32_t</type>                                                              <name>set</name></member>
+          <member>const <type>void</type>*                                                                           <name>pData</name></member>
+        </type>
+        <type category="struct" name="VkSetDescriptorBufferOffsetsInfoEXT">
+          <member values="VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                                       <name>pNext</name></member>
+          <member><type>VkShaderStageFlags</type>                                                                <name>stageFlags</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                                  <name>layout</name></member>
+          <member optional="true"><type>uint32_t</type>                                                          <name>firstSet</name></member>
+          <member><type>uint32_t</type>                                                                          <name>setCount</name></member>
+          <member len="setCount">const <type>uint32_t</type>*                                                    <name>pBufferIndices</name></member>
+          <member len="setCount">const <type>VkDeviceSize</type>*                                                <name>pOffsets</name></member>
+        </type>
+        <type category="struct" name="VkBindDescriptorBufferEmbeddedSamplersInfoEXT">
+          <member values="VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true">const <type>void</type>*                                                                  <name>pNext</name></member>
+          <member><type>VkShaderStageFlags</type>                                                                           <name>stageFlags</name></member>
+          <member optional="true"><type>VkPipelineLayout</type>                                                             <name>layout</name></member>
+          <member optional="true"><type>uint32_t</type>                                                                     <name>set</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCubicClampFeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>cubicRangeClamp</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceYcbcrDegammaFeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*        <name>pNext</name></member>
+            <member><type>VkBool32</type>                     <name>ycbcrDegamma</name></member>
+        </type>
+        <type category="struct" name="VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM" structextends="VkSamplerYcbcrConversionCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*              <name>pNext</name></member>
+            <member><type>VkBool32</type>                           <name>enableYDegamma</name></member>
+            <member><type>VkBool32</type>                           <name>enableCbCrDegamma</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCubicWeightsFeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>selectableCubicWeights</name></member>
+        </type>
+        <type category="struct" name="VkSamplerCubicWeightsCreateInfoQCOM" structextends="VkSamplerCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*      <name>pNext</name></member>
+            <member><type>VkCubicFilterWeightsQCOM</type>         <name>cubicWeights</name></member>
+        </type>
+        <type category="struct" name="VkBlitImageCubicWeightsInfoQCOM" structextends="VkBlitImageInfo2">
+            <member values="VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*      <name>pNext</name></member>
+            <member><type>VkCubicFilterWeightsQCOM</type>         <name>cubicWeights</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceImageProcessing2FeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*   <name>pNext</name></member>
+            <member><type>VkBool32</type>                                      <name>textureBlockMatch2</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceImageProcessing2PropertiesQCOM" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                        <name>pNext</name></member>
+            <member limittype="max" optional="true"><type>VkExtent2D</type>  <name>maxBlockMatchWindow</name></member>
+        </type>
+        <type category="struct" name="VkSamplerBlockMatchWindowCreateInfoQCOM" structextends="VkSamplerCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                  <name>pNext</name></member>
+            <member><type>VkExtent2D</type>                                   <name>windowExtent</name></member>
+            <member><type>VkBlockMatchWindowCompareModeQCOM</type>            <name>windowCompareMode</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>descriptorPoolOverallocation</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceLayeredDriverPropertiesMSFT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                       <name>pNext</name></member>
+            <member><type>VkLayeredDriverUnderlyingApiMSFT</type>            <name>underlyingAPI</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDevicePerStageDescriptorSetFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>perStageDescriptorSet</name></member>
+            <member><type>VkBool32</type>                                        <name>dynamicPipelineLayout</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalFormatResolveFeaturesANDROID" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+          <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true"><type>void</type>*        <name>pNext</name></member>
+          <member><type>VkBool32</type>                     <name>externalFormatResolve</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
+          <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true"><type>void</type>*        <name>pNext</name></member>
+          <member limittype="not"><type>VkBool32</type>  <name>nullColorAttachmentWithExternalFormatResolve</name></member>
+          <member limittype="noauto"><type>VkChromaLocation</type>  <name>externalFormatResolveChromaOffsetX</name></member>
+          <member limittype="noauto"><type>VkChromaLocation</type>  <name>externalFormatResolveChromaOffsetY</name></member>
+        </type>
+        <type category="struct" name="VkAndroidHardwareBufferFormatResolvePropertiesANDROID" structextends="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
+          <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true"><type>void</type>*        <name>pNext</name></member>
+          <member><type>VkFormat</type>                     <name>colorAttachmentFormat</name></member>
+        </type>
+        <type category="struct" name="VkLatencySleepModeInfoNV">
+            <member values="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>VkBool32</type> <name>lowLatencyMode</name></member>
+            <member><type>VkBool32</type> <name>lowLatencyBoost</name></member>
+            <member><type>uint32_t</type> <name>minimumIntervalUs</name></member>
+        </type>
+        <type category="struct" name="VkLatencySleepInfoNV">
+            <member values="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>VkSemaphore</type> <name>signalSemaphore</name></member>
+            <member><type>uint64_t</type> <name>value</name></member>
+        </type>
+        <type category="struct" name="VkSetLatencyMarkerInfoNV">
+            <member values="VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>uint64_t</type> <name>presentID</name></member>
+            <member><type>VkLatencyMarkerNV</type> <name>marker</name></member>
+        </type>
+        <type category="struct" name="VkGetLatencyMarkerInfoNV">
+            <member values="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type> <name>timingCount</name></member>
+            <member optional="true" len="timingCount"><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member>
+        </type>
+        <type category="struct" name="VkLatencyTimingsFrameReportNV">
+            <member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>uint64_t</type>               <name>presentID</name></member>
+            <member><type>uint64_t</type>               <name>inputSampleTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>simStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>simEndTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>renderSubmitStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>renderSubmitEndTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>presentStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>presentEndTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>driverStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>driverEndTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>osRenderQueueStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>osRenderQueueEndTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>gpuRenderStartTimeUs</name></member>
+            <member><type>uint64_t</type>               <name>gpuRenderEndTimeUs</name></member>
+        </type>
+        <type category="struct" name="VkOutOfBandQueueTypeInfoNV">
+            <member values="VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>VkOutOfBandQueueTypeNV</type> <name>queueType</name></member>
+        </type>
+        <type category="struct" name="VkLatencySubmissionPresentIdNV" structextends="VkSubmitInfo,VkSubmitInfo2">
+            <member values="VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*      <name>pNext</name></member>
+            <member><type>uint64_t</type>                         <name>presentID</name></member>
+        </type>
+        <type category="struct" name="VkSwapchainLatencyCreateInfoNV" structextends="VkSwapchainCreateInfoKHR">
+            <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                        <name>pNext</name></member>
+            <member optional="true"><type>VkBool32</type>                           <name>latencyModeEnable</name></member>
+        </type>
+        <type category="struct" name="VkLatencySurfaceCapabilitiesNV" structextends="VkSurfaceCapabilities2KHR">
+            <member values="VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>*                              <name>pNext</name></member>
+            <member optional="true"><type>uint32_t</type>                                 <name>presentModeCount</name></member>
+            <member optional="true" len="presentModeCount"><type>VkPresentModeKHR</type>* <name>pPresentModes</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCudaKernelLaunchFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*    <name>pNext</name></member>
+            <member><type>VkBool32</type>                       <name>cudaKernelLaunchFeatures</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceCudaKernelLaunchPropertiesNV" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*    <name>pNext</name></member>
+            <member limittype="max"><type>uint32_t</type>         <name>computeCapabilityMinor</name></member>
+            <member limittype="min"><type>uint32_t</type>         <name>computeCapabilityMajor</name></member>
+        </type>
+        <type category="struct" name="VkDeviceQueueShaderCoreControlCreateInfoARM" structextends="VkDeviceQueueCreateInfo,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>uint32_t</type>                         <name>shaderCoreCount</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceSchedulingControlsFeaturesARM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*            <name>pNext</name></member>
+            <member><type>VkBool32</type>                         <name>schedulingControls</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceSchedulingControlsPropertiesARM" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                       <name>pNext</name></member>
+            <member><type>VkPhysicalDeviceSchedulingControlsFlagsARM</type>  <name>schedulingControlsFlags</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+          <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"><type>VkStructureType</type> <name>sType</name></member>
+          <member optional="true"><type>void</type>*        <name>pNext</name></member>
+          <member><type>VkBool32</type>  <name>relaxedLineRasterization</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceRenderPassStripedFeaturesARM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true" noautovalidity="true"><type>void</type>*     <name>pNext</name></member>
+            <member><type>VkBool32</type>                                        <name>renderPassStriped</name></member>
+        </type>
+        <type category="struct" name="VkPhysicalDeviceRenderPassStripedPropertiesARM" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                           <name>pNext</name></member>
+            <member><type>VkExtent2D</type>                                      <name>renderPassStripeGranularity</name></member>
+            <member><type>uint32_t</type>                                        <name>maxRenderPassStripes</name></member>
+        </type>
+        <type category="struct" name="VkRenderPassStripeInfoARM">
+            <member values="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>VkRect2D</type>                                        <name>stripeArea</name></member>
+        </type>
+        <type category="struct" name="VkRenderPassStripeBeginInfoARM" structextends="VkRenderingInfo,VkRenderPassBeginInfo">
+            <member values="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>uint32_t</type>                                          <name>stripeInfoCount</name></member>
+            <member len="stripeInfoCount">const <type>VkRenderPassStripeInfoARM</type>*  <name>pStripeInfos</name></member>
+        </type>
+        <type category="struct" name="VkRenderPassStripeSubmitInfoARM" structextends="VkCommandBufferSubmitInfo">
+            <member values="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true">const <type>void</type>* <name>pNext</name></member>
+            <member><type>uint32_t</type>                                                    <name>stripeSemaphoreInfoCount</name></member>
+            <member len="stripeSemaphoreInfoCount">const <type>VkSemaphoreSubmitInfo</type>* <name>pStripeSemaphoreInfos</name></member>
+        </type>
     </types>
 
 
@@ -7773,6 +9007,7 @@
         <enum type="float"    value="1000.0F"   name="VK_LOD_CLAMP_NONE"/>
         <enum type="uint32_t" value="(~0U)"     name="VK_REMAINING_MIP_LEVELS"/>
         <enum type="uint32_t" value="(~0U)"     name="VK_REMAINING_ARRAY_LAYERS"/>
+        <enum type="uint32_t" value="(~0U)"     name="VK_REMAINING_3D_SLICES_EXT"/>
         <enum type="uint64_t" value="(~0ULL)"   name="VK_WHOLE_SIZE"/>
         <enum type="uint32_t" value="(~0U)"     name="VK_ATTACHMENT_UNUSED"/>
         <enum type="uint32_t" value="1"         name="VK_TRUE"/>
@@ -7793,6 +9028,7 @@
         <enum type="uint32_t" value="16"        name="VK_MAX_GLOBAL_PRIORITY_SIZE_KHR"/>
         <enum                                   name="VK_MAX_GLOBAL_PRIORITY_SIZE_EXT" alias="VK_MAX_GLOBAL_PRIORITY_SIZE_KHR"/>
         <enum type="uint32_t" value="32"        name="VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT"/>
+        <enum type="uint32_t" value="(~0U)"     name="VK_SHADER_INDEX_UNUSED_AMDX"/>
     </enums>
 
     <comment>
@@ -8400,6 +9636,17 @@
         <enum bitpos="7"    name="VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"                 comment="Can be used as source of fixed-function vertex fetch (VBO)"/>
         <enum bitpos="8"    name="VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"               comment="Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)"/>
     </enums>
+    <enums name="VkBufferUsageFlagBits2KHR" type="bitmask" bitwidth="64">
+        <enum bitpos="0"    name="VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR"/>
+        <enum bitpos="5"    name="VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR"/>
+        <enum bitpos="6"    name="VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR"/>
+        <enum bitpos="7"    name="VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR"/>
+        <enum bitpos="8"    name="VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR"/>
+    </enums>
     <enums name="VkBufferCreateFlagBits" type="bitmask">
         <enum bitpos="0"    name="VK_BUFFER_CREATE_SPARSE_BINDING_BIT"               comment="Buffer should support sparse backing"/>
         <enum bitpos="1"    name="VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"             comment="Buffer should support sparse backing with partial residency"/>
@@ -8436,11 +9683,16 @@
     </enums>
     <enums name="VkSamplerCreateFlagBits" type="bitmask">
     </enums>
-    <enums name="VkPipelineCreateFlagBits" type="bitmask" comment="Note that the gap at bitpos 10 is unused, and can be reserved">
+    <enums name="VkPipelineCreateFlagBits" type="bitmask">
         <enum bitpos="0"    name="VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"/>
         <enum bitpos="1"    name="VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"/>
         <enum bitpos="2"    name="VK_PIPELINE_CREATE_DERIVATIVE_BIT"/>
     </enums>
+    <enums name="VkPipelineCreateFlagBits2KHR" type="bitmask" bitwidth="64">
+        <enum bitpos="0"    name="VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR"/>
+    </enums>
     <enums name="VkPipelineShaderStageCreateFlagBits" type="bitmask">
     </enums>
     <enums name="VkColorComponentFlagBits" type="bitmask">
@@ -8555,7 +9807,7 @@
         <enum bitpos="0"    name="VK_STENCIL_FACE_FRONT_BIT"                         comment="Front face"/>
         <enum bitpos="1"    name="VK_STENCIL_FACE_BACK_BIT"                          comment="Back face"/>
         <enum value="0x00000003" name="VK_STENCIL_FACE_FRONT_AND_BACK"               comment="Front and back faces"/>
-        <enum                    name="VK_STENCIL_FRONT_AND_BACK" alias="VK_STENCIL_FACE_FRONT_AND_BACK" comment="Backwards-compatible alias containing a typo"/>
+        <enum api="vulkan"  name="VK_STENCIL_FRONT_AND_BACK" alias="VK_STENCIL_FACE_FRONT_AND_BACK" deprecated="aliased"/>
     </enums>
     <enums name="VkDescriptorPoolCreateFlagBits" type="bitmask">
         <enum bitpos="0"    name="VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT" comment="Descriptor sets may be freed individually"/>
@@ -8580,7 +9832,7 @@
     </enums>
     <enums name="VkColorSpaceKHR" type="enum">
         <enum value="0"     name="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"/>
-        <enum               name="VK_COLORSPACE_SRGB_NONLINEAR_KHR" alias="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR" comment="Backwards-compatible alias containing a typo"/>
+        <enum api="vulkan"  name="VK_COLORSPACE_SRGB_NONLINEAR_KHR" alias="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR" deprecated="aliased"/>
     </enums>
     <enums name="VkDisplayPlaneAlphaFlagBitsKHR" type="bitmask">
         <enum bitpos="0"    name="VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"/>
@@ -8608,11 +9860,11 @@
     <enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask">
       <enum bitpos="0"      name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/>
     </enums>
-    <enums name="VkTimeDomainEXT" type="enum">
-        <enum value="0"     name="VK_TIME_DOMAIN_DEVICE_EXT"/>
-        <enum value="1"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/>
-        <enum value="2"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"/>
-        <enum value="3"     name="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"/>
+    <enums name="VkTimeDomainKHR" type="enum">
+        <enum value="0"     name="VK_TIME_DOMAIN_DEVICE_KHR"/>
+        <enum value="1"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR"/>
+        <enum value="2"     name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR"/>
+        <enum value="3"     name="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR"/>
     </enums>
     <enums name="VkDebugReportFlagBitsEXT" type="bitmask">
         <enum bitpos="0"    name="VK_DEBUG_REPORT_INFORMATION_BIT_EXT"/>
@@ -8651,7 +9903,7 @@
         <enum value="26"    name="VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"/>
         <enum value="27"    name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
         <enum value="28"    name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"/>
-        <enum               name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT" deprecated="aliased"/>
         <enum value="29"    name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"/>
         <enum value="30"    name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/>
             <comment>NVX_device_generated_commands formerly used these enum values, but that extension has been removed
@@ -8659,7 +9911,7 @@
                 value 32 / name VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
             </comment>
         <enum value="33"    name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"/>
-        <enum               name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT" deprecated="aliased"/>
     </enums>
     <enums name="VkDeviceMemoryReportEventTypeEXT" type="enum">
         <enum value="0"     name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT"/>
@@ -8704,6 +9956,16 @@
         <enum value="6"     name="VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT"/>
         <enum value="7"     name="VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT"/>
     </enums>
+    <enums name="VkLayerSettingTypeEXT" type="enum">
+        <enum value="0"     name="VK_LAYER_SETTING_TYPE_BOOL32_EXT"/>
+        <enum value="1"     name="VK_LAYER_SETTING_TYPE_INT32_EXT"/>
+        <enum value="2"     name="VK_LAYER_SETTING_TYPE_INT64_EXT"/>
+        <enum value="3"     name="VK_LAYER_SETTING_TYPE_UINT32_EXT"/>
+        <enum value="4"     name="VK_LAYER_SETTING_TYPE_UINT64_EXT"/>
+        <enum value="5"     name="VK_LAYER_SETTING_TYPE_FLOAT32_EXT"/>
+        <enum value="6"     name="VK_LAYER_SETTING_TYPE_FLOAT64_EXT"/>
+        <enum value="7"     name="VK_LAYER_SETTING_TYPE_STRING_EXT"/>
+    </enums>
     <enums name="VkSubgroupFeatureFlagBits" type="bitmask">
         <enum bitpos="0"    name="VK_SUBGROUP_FEATURE_BASIC_BIT"              comment="Basic subgroup operations"/>
         <enum bitpos="1"    name="VK_SUBGROUP_FEATURE_VOTE_BIT"               comment="Vote subgroup operations"/>
@@ -8780,7 +10042,7 @@
     </enums>
     <enums name="VkSurfaceCounterFlagBitsEXT" type="bitmask">
         <enum bitpos="0"    name="VK_SURFACE_COUNTER_VBLANK_BIT_EXT"/>
-        <enum               name="VK_SURFACE_COUNTER_VBLANK_EXT" alias="VK_SURFACE_COUNTER_VBLANK_BIT_EXT" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_SURFACE_COUNTER_VBLANK_EXT" alias="VK_SURFACE_COUNTER_VBLANK_BIT_EXT" deprecated="aliased"/>
     </enums>
     <enums name="VkDisplayPowerStateEXT" type="enum">
         <enum value="0"     name="VK_DISPLAY_POWER_STATE_OFF_EXT"/>
@@ -8919,7 +10181,8 @@
         <enum value="0x10004" name="VK_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd. vendor ID"/>
         <enum value="0x10005" name="VK_VENDOR_ID_MESA"  comment="Mesa vendor ID"/>
         <enum value="0x10006" name="VK_VENDOR_ID_POCL"  comment="PoCL vendor ID"/>
-            <unused start="0x10007" comment="This is the next unused available Khronos vendor ID"/>
+        <enum value="0x10007" name="VK_VENDOR_ID_MOBILEYE"  comment="Mobileye vendor ID"/>
+            <unused start="0x10008" comment="This is the next unused available Khronos vendor ID"/>
     </enums>
     <enums name="VkDriverId" type="enum">
         <comment>Driver IDs are now represented as enums instead of the old
@@ -8949,6 +10212,8 @@
         <enum value="22"      name="VK_DRIVER_ID_MESA_VENUS"                    comment="Mesa open source project"/>
         <enum value="23"      name="VK_DRIVER_ID_MESA_DOZEN"                    comment="Mesa open source project"/>
         <enum value="24"      name="VK_DRIVER_ID_MESA_NVK"                      comment="Mesa open source project"/>
+        <enum value="25"      name="VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"  comment="Imagination Technologies"/>
+        <enum value="26"      name="VK_DRIVER_ID_MESA_AGXV"                     comment="Mesa open source project"/>
     </enums>
     <enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask">
         <enum bitpos="0"    name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/>
@@ -9053,25 +10318,6 @@
     </enums>
     <enums name="VkFramebufferCreateFlagBits" type="bitmask">
     </enums>
-    <enums name="VkScopeNV" type="enum">
-        <enum value="1"     name="VK_SCOPE_DEVICE_NV"/>
-        <enum value="2"     name="VK_SCOPE_WORKGROUP_NV"/>
-        <enum value="3"     name="VK_SCOPE_SUBGROUP_NV"/>
-        <enum value="5"     name="VK_SCOPE_QUEUE_FAMILY_NV"/>
-    </enums>
-    <enums name="VkComponentTypeNV" type="enum">
-        <enum value="0"     name="VK_COMPONENT_TYPE_FLOAT16_NV"/>
-        <enum value="1"     name="VK_COMPONENT_TYPE_FLOAT32_NV"/>
-        <enum value="2"     name="VK_COMPONENT_TYPE_FLOAT64_NV"/>
-        <enum value="3"     name="VK_COMPONENT_TYPE_SINT8_NV"/>
-        <enum value="4"     name="VK_COMPONENT_TYPE_SINT16_NV"/>
-        <enum value="5"     name="VK_COMPONENT_TYPE_SINT32_NV"/>
-        <enum value="6"     name="VK_COMPONENT_TYPE_SINT64_NV"/>
-        <enum value="7"     name="VK_COMPONENT_TYPE_UINT8_NV"/>
-        <enum value="8"     name="VK_COMPONENT_TYPE_UINT16_NV"/>
-        <enum value="9"     name="VK_COMPONENT_TYPE_UINT32_NV"/>
-        <enum value="10"    name="VK_COMPONENT_TYPE_UINT64_NV"/>
-    </enums>
     <enums name="VkDeviceDiagnosticsConfigFlagBitsNV" type="bitmask">
         <enum bitpos="0" name="VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"/>
         <enum bitpos="1" name="VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"/>
@@ -9096,9 +10342,9 @@
         <enum value="0"     name="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR"/>
         <enum value="1"     name="VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR"/>
         <enum value="2"     name="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR"/>
-        <enum               name="VK_QUERY_SCOPE_COMMAND_BUFFER_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR" comment="Backwards-compatible alias containing a typo"/>
-        <enum               name="VK_QUERY_SCOPE_RENDER_PASS_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR" comment="Backwards-compatible alias containing a typo"/>
-        <enum               name="VK_QUERY_SCOPE_COMMAND_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_QUERY_SCOPE_COMMAND_BUFFER_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR" deprecated="aliased"/>
+        <enum               name="VK_QUERY_SCOPE_RENDER_PASS_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR" deprecated="aliased"/>
+        <enum               name="VK_QUERY_SCOPE_COMMAND_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR" deprecated="aliased"/>
     </enums>
     <enums name="VkMemoryDecompressionMethodFlagBitsNV" type="bitmask" bitwidth="64">
         <enum bitpos="0" name="VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"/>
@@ -9126,14 +10372,16 @@
     </enums>
     <enums name="VkPerformanceCounterDescriptionFlagBitsKHR" type="bitmask">
         <enum bitpos="0"    name="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"/>
-        <enum               name="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR" deprecated="aliased"/>
         <enum bitpos="1"    name="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"/>
-        <enum               name="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
+        <enum               name="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR" deprecated="aliased"/>
     </enums>
     <enums name="VkAcquireProfilingLockFlagBitsKHR" type="bitmask">
     </enums>
     <enums name="VkShaderCorePropertiesFlagBitsAMD" type="bitmask">
     </enums>
+    <enums name="VkRefreshObjectFlagBitsKHR" type="bitmask">
+    </enums>
     <enums name="VkPerformanceConfigurationTypeINTEL" type="enum">
         <enum value="0"     name="VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"/>
     </enums>
@@ -9176,6 +10424,24 @@
     </enums>
     <enums name="VkPipelineCompilerControlFlagBitsAMD" type="bitmask">
     </enums>
+    <enums name="VkFaultLevel" type="enum">
+        <enum value="0"    name="VK_FAULT_LEVEL_UNASSIGNED"/>
+        <enum value="1"    name="VK_FAULT_LEVEL_CRITICAL"/>
+        <enum value="2"    name="VK_FAULT_LEVEL_RECOVERABLE"/>
+        <enum value="3"    name="VK_FAULT_LEVEL_WARNING"/>
+    </enums>
+    <enums name="VkFaultType" type="enum">
+        <enum value="0"    name="VK_FAULT_TYPE_INVALID"/>
+        <enum value="1"    name="VK_FAULT_TYPE_UNASSIGNED"/>
+        <enum value="2"    name="VK_FAULT_TYPE_IMPLEMENTATION"/>
+        <enum value="3"    name="VK_FAULT_TYPE_SYSTEM"/>
+        <enum value="4"    name="VK_FAULT_TYPE_PHYSICAL_DEVICE"/>
+        <enum value="5"    name="VK_FAULT_TYPE_COMMAND_BUFFER_FULL"/>
+        <enum value="6"    name="VK_FAULT_TYPE_INVALID_API_USAGE"/>
+    </enums>
+    <enums name="VkFaultQueryBehavior" type="enum">
+        <enum value="0"    name="VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS"/>
+    </enums>
     <enums name="VkToolPurposeFlagBits" type="bitmask">
         <enum bitpos="0"    name="VK_TOOL_PURPOSE_VALIDATION_BIT"/>
         <enum               name="VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"          alias="VK_TOOL_PURPOSE_VALIDATION_BIT"/>
@@ -9188,6 +10454,9 @@
         <enum bitpos="4"    name="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"/>
         <enum               name="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"  alias="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"/>
     </enums>
+    <enums name="VkPipelineMatchControl" type="enum">
+        <enum value="0"     name="VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH"/>
+    </enums>
     <enums name="VkFragmentShadingRateCombinerOpKHR" type="enum">
         <enum value="0" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR"/>
         <enum value="1" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR"/>
@@ -9337,10 +10606,22 @@
     </enums>
     <enums name="VkPipelineLayoutCreateFlagBits" type="bitmask">
     </enums>
+    <enums name="VkSciSyncClientTypeNV" type="enum">
+        <enum value="0"    name="VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV"/>
+        <enum value="1"    name="VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV"/>
+        <enum value="2"    name="VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV"/>
+    </enums>
+    <enums name="VkSciSyncPrimitiveTypeNV" type="enum">
+        <enum value="0"   name="VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV"/>
+        <enum value="1"   name="VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV"/>
+    </enums>
     <enums name="VkProvokingVertexModeEXT" type="enum">
         <enum value="0"     name="VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT"/>
         <enum value="1"     name="VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT"/>
     </enums>
+    <enums name="VkPipelineCacheValidationVersion" type="enum">
+        <enum value="1"     name="VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE"/>
+    </enums>
     <enums name="VkAccelerationStructureMotionInstanceTypeNV" type="enum">
         <enum value="0" name="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV"/>
         <enum value="1" name="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV"/>
@@ -9363,6 +10644,9 @@
         <enum value="0"     name="VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT"/>
         <enum value="1"     name="VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT"/>
     </enums>
+    <enums name="VkFrameBoundaryFlagBitsEXT" type="bitmask">
+        <enum bitpos="0"     name="VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT"/>
+    </enums>
     <enums name="VkPresentScalingFlagBitsEXT" type="bitmask">
         <enum bitpos="0"    name="VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT"/>
         <enum bitpos="1"    name="VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"/>
@@ -9373,6 +10657,9 @@
         <enum bitpos="1"    name="VK_PRESENT_GRAVITY_MAX_BIT_EXT"/>
         <enum bitpos="2"    name="VK_PRESENT_GRAVITY_CENTERED_BIT_EXT"/>
     </enums>
+    <enums name="VkPhysicalDeviceSchedulingControlsFlagBitsARM" type="bitmask" bitwidth="64">
+        <enum bitpos="0"    name="VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM"/>
+    </enums>
 
     <enums name="VkVideoCodecOperationFlagBitsKHR" type="bitmask">
         <enum value="0"     name="VK_VIDEO_CODEC_OPERATION_NONE_KHR"/>
@@ -9397,10 +10684,10 @@
     <enums name="VkVideoSessionCreateFlagBitsKHR" type="bitmask">
         <enum bitpos="0"    name="VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoDecodeH264PictureLayoutFlagBitsEXT" type="bitmask">
-        <enum value="0"       name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"/>
-        <enum bitpos="0"      name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"/>
+    <enums name="VkVideoDecodeH264PictureLayoutFlagBitsKHR" type="bitmask">
+        <enum value="0"       name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"/>
+        <enum bitpos="0"      name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR"/>
+        <enum bitpos="1"      name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR"/>
     </enums>
     <enums name="VkVideoCodingControlFlagBitsKHR" type="bitmask">
         <enum bitpos="0"    name="VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"/>
@@ -9442,53 +10729,61 @@
     </enums>
     <enums name="VkVideoEncodeCapabilityFlagBitsKHR" type="bitmask">
         <enum bitpos="0"    name="VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR"/>
+    </enums>
+    <enums name="VkVideoEncodeFeedbackFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR"/>
     </enums>
     <enums name="VkVideoEncodeRateControlModeFlagBitsKHR" type="bitmask">
-        <enum value="0"      name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"/>
-        <enum value="1"      name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"/>
-        <enum value="2"      name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"/>
+        <enum value="0"     name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR"/>
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH264CapabilityFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"/>
-        <enum bitpos="1"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"/>
-        <enum bitpos="2"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"/>
-        <enum bitpos="3"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"/>
-        <enum bitpos="4"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"/>
-        <enum bitpos="5"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"/>
-        <enum bitpos="6"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"/>
-        <enum bitpos="7"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"/>
-        <enum bitpos="8"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"/>
-        <enum bitpos="9"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"/>
-        <enum bitpos="10"     name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"/>
-        <enum bitpos="11"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"/>
-        <enum bitpos="12"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"/>
-        <enum bitpos="13"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"/>
-        <enum bitpos="14"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"/>
-        <enum bitpos="15"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"/>
-        <enum bitpos="16"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"/>
-        <enum bitpos="17"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"/>
-        <enum bitpos="18"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"/>
-        <enum bitpos="19"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"/>
-        <enum bitpos="20"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"/>
-        <enum bitpos="21"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"/>
-        <enum bitpos="22"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"/>
-        <enum bitpos="23"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
-        <enum bitpos="24"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"/>
+    <enums name="VkVideoEncodeH264CapabilityFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"/>
+        <enum bitpos="5"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"/>
+        <enum bitpos="6"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"/>
+        <enum bitpos="7"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR"/>
+        <enum bitpos="8"    name="VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH264InputModeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"/>
+    <enums name="VkVideoEncodeH264StdFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR"/>
+        <enum bitpos="5"    name="VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR"/>
+        <enum bitpos="6"    name="VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="7"    name="VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR"/>
+        <enum bitpos="8"    name="VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR"/>
+        <enum bitpos="9"    name="VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="10"   name="VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR"/>
+        <enum bitpos="11"   name="VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR"/>
+        <enum bitpos="12"   name="VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="13"   name="VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR"/>
+        <enum bitpos="14"   name="VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="15"   name="VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR"/>
+        <enum bitpos="16"   name="VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR"/>
+        <enum bitpos="17"   name="VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR"/>
+        <enum bitpos="19"   name="VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR"/>
+        <enum bitpos="20"   name="VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH264OutputModeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
+    <enums name="VkVideoEncodeH264RateControlFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH264RateControlStructureEXT" type="enum">
-        <enum value="0"       name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
-        <enum value="1"       name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT"/>
-        <enum value="2"       name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT"/>
+    <enums name="VkHostImageCopyFlagBitsEXT" type="bitmask">
+        <enum bitpos="0"    name="VK_HOST_IMAGE_COPY_MEMCPY_EXT"/>
     </enums>
     <enums name="VkImageFormatConstraintsFlagBitsFUCHSIA" type="bitmask">
     </enums>
@@ -9563,59 +10858,58 @@
         <enum bitpos="2"    name="VK_RENDERING_RESUMING_BIT"/>
         <enum               name="VK_RENDERING_RESUMING_BIT_KHR" alias="VK_RENDERING_RESUMING_BIT"/>
     </enums>
-    <enums name="VkVideoEncodeH265CapabilityFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"/>
-        <enum bitpos="3"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"/>
-        <enum bitpos="4"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"/>
-        <enum bitpos="5"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"/>
-        <enum bitpos="6"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"/>
-        <enum bitpos="7"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"/>
-        <enum bitpos="8"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"/>
-        <enum bitpos="9"      name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"/>
-        <enum bitpos="10"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"/>
-        <enum bitpos="11"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"/>
-        <enum bitpos="12"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"/>
-        <enum bitpos="13"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"/>
-        <enum bitpos="14"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"/>
-        <enum bitpos="15"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"/>
-        <enum bitpos="16"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"/>
-        <enum bitpos="17"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"/>
-        <enum bitpos="18"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"/>
-        <enum bitpos="19"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"/>
-        <enum bitpos="20"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"/>
-        <enum bitpos="21"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"/>
-        <enum bitpos="22"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"/>
-        <enum bitpos="23"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"/>
-        <enum bitpos="24"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
-        <enum bitpos="25"     name="VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"/>
+    <enums name="VkVideoEncodeH265CapabilityFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"/>
+        <enum bitpos="5"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"/>
+        <enum bitpos="6"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"/>
+        <enum bitpos="7"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR"/>
+        <enum bitpos="8"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR"/>
+        <enum bitpos="9"    name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH265InputModeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"/>
+    <enums name="VkVideoEncodeH265StdFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"    name="VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="1"    name="VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="2"    name="VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="3"    name="VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="4"    name="VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="5"    name="VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR"/>
+        <enum bitpos="6"    name="VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="7"    name="VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="8"    name="VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR"/>
+        <enum bitpos="9"    name="VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="10"   name="VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="11"   name="VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR"/>
+        <enum bitpos="12"   name="VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="13"   name="VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="14"   name="VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="15"   name="VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="16"   name="VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="17"   name="VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="18"   name="VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR"/>
+        <enum bitpos="19"   name="VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR"/>
+        <enum bitpos="20"   name="VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH265OutputModeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
+    <enums name="VkVideoEncodeH265RateControlFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"/>
+        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR"/>
+        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"/>
+        <enum bitpos="3"      name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"/>
+        <enum bitpos="4"      name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH265RateControlStructureEXT" type="enum">
-        <enum value="0"       name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
-        <enum value="1"       name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT"/>
-        <enum value="2"       name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT"/>
+    <enums name="VkVideoEncodeH265CtbSizeFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR"/>
+        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR"/>
+        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR"/>
     </enums>
-    <enums name="VkVideoEncodeH265CtbSizeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"/>
-    </enums>
-    <enums name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" type="bitmask">
-        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"/>
-        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"/>
-        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"/>
-        <enum bitpos="3"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"/>
+    <enums name="VkVideoEncodeH265TransformBlockSizeFlagBitsKHR" type="bitmask">
+        <enum bitpos="0"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR"/>
+        <enum bitpos="1"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR"/>
+        <enum bitpos="2"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR"/>
+        <enum bitpos="3"      name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR"/>
     </enums>
     <enums name="VkExportMetalObjectTypeFlagBitsEXT" type="bitmask">
         <enum bitpos="0"      name="VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"/>
@@ -9744,6 +11038,11 @@
         <enum value="-3" name="VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT"/>
         <enum value="-4" name="VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT"/>
     </enums>
+    <enums name="VkDepthBiasRepresentationEXT" type="enum">
+        <enum value="0"     name="VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT"/>
+        <enum value="1"     name="VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT"/>
+        <enum value="2"     name="VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT"/>
+    </enums>
     <enums name="VkDeviceFaultAddressTypeEXT" type="enum">
         <enum value="0"     name="VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT" comment="Currently unused"/>
         <enum value="1"     name="VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT"/>
@@ -9756,6 +11055,70 @@
     <enums name="VkDeviceFaultVendorBinaryHeaderVersionEXT" type="enum">
         <enum value="1"     name="VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT"/>
     </enums>
+    <enums name="VkDisplacementMicromapFormatNV" type="enum">
+        <enum value="1" name="VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV"/>
+        <enum value="2" name="VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV"/>
+        <enum value="3" name="VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV"/>
+    </enums>
+    <enums name="VkShaderCreateFlagBitsEXT" type="bitmask">
+        <enum bitpos="0" name="VK_SHADER_CREATE_LINK_STAGE_BIT_EXT"/>
+    </enums>
+    <enums name="VkShaderCodeTypeEXT" type="enum">
+        <enum value="0" name="VK_SHADER_CODE_TYPE_BINARY_EXT"/>
+        <enum value="1" name="VK_SHADER_CODE_TYPE_SPIRV_EXT"/>
+    </enums>
+    <enums name="VkScopeKHR" type="enum">
+        <enum value="1"     name="VK_SCOPE_DEVICE_KHR"/>
+        <enum value="2"     name="VK_SCOPE_WORKGROUP_KHR"/>
+        <enum value="3"     name="VK_SCOPE_SUBGROUP_KHR"/>
+        <enum value="5"     name="VK_SCOPE_QUEUE_FAMILY_KHR"/>
+    </enums>
+    <enums name="VkComponentTypeKHR" type="enum">
+        <enum value="0"     name="VK_COMPONENT_TYPE_FLOAT16_KHR"/>
+        <enum value="1"     name="VK_COMPONENT_TYPE_FLOAT32_KHR"/>
+        <enum value="2"     name="VK_COMPONENT_TYPE_FLOAT64_KHR"/>
+        <enum value="3"     name="VK_COMPONENT_TYPE_SINT8_KHR"/>
+        <enum value="4"     name="VK_COMPONENT_TYPE_SINT16_KHR"/>
+        <enum value="5"     name="VK_COMPONENT_TYPE_SINT32_KHR"/>
+        <enum value="6"     name="VK_COMPONENT_TYPE_SINT64_KHR"/>
+        <enum value="7"     name="VK_COMPONENT_TYPE_UINT8_KHR"/>
+        <enum value="8"     name="VK_COMPONENT_TYPE_UINT16_KHR"/>
+        <enum value="9"     name="VK_COMPONENT_TYPE_UINT32_KHR"/>
+        <enum value="10"    name="VK_COMPONENT_TYPE_UINT64_KHR"/>
+    </enums>
+    <enums name="VkCubicFilterWeightsQCOM" type="enum">
+        <enum value="0"     name="VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM"/>
+        <enum value="1"     name="VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM"/>
+        <enum value="2"     name="VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM"/>
+        <enum value="3"     name="VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM"/>
+    </enums>
+    <enums name="VkBlockMatchWindowCompareModeQCOM" type="enum">
+        <enum value="0" name="VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM"/>
+        <enum value="1" name="VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM"/>
+    </enums>
+    <enums name="VkLayeredDriverUnderlyingApiMSFT" type="enum">
+        <enum value="0" name="VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT"/>
+        <enum value="1" name="VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT"/>
+    </enums>
+    <enums name="VkLatencyMarkerNV" type="enum">
+        <enum value="0"    name="VK_LATENCY_MARKER_SIMULATION_START_NV"/>
+        <enum value="1"    name="VK_LATENCY_MARKER_SIMULATION_END_NV"/>
+        <enum value="2"    name="VK_LATENCY_MARKER_RENDERSUBMIT_START_NV"/>
+        <enum value="3"    name="VK_LATENCY_MARKER_RENDERSUBMIT_END_NV"/>
+        <enum value="4"    name="VK_LATENCY_MARKER_PRESENT_START_NV"/>
+        <enum value="5"    name="VK_LATENCY_MARKER_PRESENT_END_NV"/>
+        <enum value="6"    name="VK_LATENCY_MARKER_INPUT_SAMPLE_NV"/>
+        <enum value="7"    name="VK_LATENCY_MARKER_TRIGGER_FLASH_NV"/>
+        <enum value="8"    name="VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV"/>
+        <enum value="9"    name="VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV"/>
+        <enum value="10"   name="VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV"/>
+        <enum value="11"   name="VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV"/>
+    </enums>
+    <enums name="VkOutOfBandQueueTypeNV" type="enum">
+        <enum value="0"    name="VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV"/>
+        <enum value="1"    name="VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV"/>
+    </enums>
+
     <commands comment="Vulkan command definitions">
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
             <proto><type>VkResult</type> <name>vkCreateInstance</name></proto>
@@ -9824,7 +11187,14 @@
             <param optional="true"><type>VkImageCreateFlags</type> <name>flags</name></param>
             <param><type>VkImageFormatProperties</type>* <name>pImageFormatProperties</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_DEVICE_LOST">
+        <command api="vulkan" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_DEVICE_LOST">
+            <proto><type>VkResult</type> <name>vkCreateDevice</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param>const <type>VkDeviceCreateInfo</type>* <name>pCreateInfo</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param><type>VkDevice</type>* <name>pDevice</name></param>
+        </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_DEVICE_LOST,VK_ERROR_INVALID_PIPELINE_CACHE_DATA">
             <proto><type>VkResult</type> <name>vkCreateDevice</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
             <param>const <type>VkDeviceCreateInfo</type>* <name>pCreateInfo</name></param>
@@ -9854,12 +11224,19 @@
             <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
             <param optional="true" len="pPropertyCount"><type>VkExtensionProperties</type>* <name>pProperties</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
             <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
             <param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
         </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS">
+            <proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
+            <param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
+        </command>
+
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_LAYER_NOT_PRESENT">
             <proto><type>VkResult</type> <name>vkEnumerateDeviceExtensionProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -10165,7 +11542,14 @@
             <param optional="true" externsync="true"><type>VkShaderModule</type> <name>shaderModule</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+        <command api="vulkan" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreatePipelineCache</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkPipelineCacheCreateInfo</type>* <name>pCreateInfo</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param><type>VkPipelineCache</type>* <name>pPipelineCache</name></param>
+        </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_PIPELINE_CACHE_DATA">
             <proto><type>VkResult</type> <name>vkCreatePipelineCache</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param>const <type>VkPipelineCacheCreateInfo</type>* <name>pCreateInfo</name></param>
@@ -10192,7 +11576,7 @@
             <param><type>uint32_t</type> <name>srcCacheCount</name></param>
             <param len="srcCacheCount">const <type>VkPipelineCache</type>* <name>pSrcCaches</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
             <proto><type>VkResult</type> <name>vkCreateGraphicsPipelines</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
@@ -10201,7 +11585,16 @@
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
+        <command api="vulkansc" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NO_PIPELINE_MATCH,VK_ERROR_OUT_OF_POOL_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateGraphicsPipelines</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkPipelineCache</type> <name>pipelineCache</name></param>
+            <param><type>uint32_t</type> <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkGraphicsPipelineCreateInfo</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
+        </command>
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
             <proto><type>VkResult</type> <name>vkCreateComputePipelines</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
@@ -10210,6 +11603,15 @@
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
         </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NO_PIPELINE_MATCH,VK_ERROR_OUT_OF_POOL_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateComputePipelines</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkPipelineCache</type> <name>pipelineCache</name></param>
+            <param><type>uint32_t</type> <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkComputePipelineCreateInfo</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
+        </command>
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
             <proto><type>VkResult</type> <name>vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
@@ -10336,6 +11738,12 @@
             <param><type>VkRenderPass</type> <name>renderPass</name></param>
             <param><type>VkExtent2D</type>* <name>pGranularity</name></param>
         </command>
+        <command>
+            <proto><type>void</type> <name>vkGetRenderingAreaGranularityKHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkRenderingAreaInfoKHR</type>* <name>pRenderingAreaInfo</name></param>
+            <param><type>VkExtent2D</type>* <name>pGranularity</name></param>
+        </command>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkCreateCommandPool</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
@@ -10376,7 +11784,7 @@
                 <param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
             </implicitexternsyncparams>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
             <proto><type>VkResult</type> <name>vkEndCommandBuffer</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <implicitexternsyncparams>
@@ -10398,6 +11806,11 @@
             <param><type>VkPipeline</type> <name>pipeline</name></param>
         </command>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetAttachmentFeedbackLoopEnableEXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param optional="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></param>
+        </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdSetViewport</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <param><type>uint32_t</type> <name>firstViewport</name></param>
@@ -10466,7 +11879,7 @@
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdBindIndexBuffer</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
-            <param><type>VkBuffer</type> <name>buffer</name></param>
+            <param optional="true"><type>VkBuffer</type> <name>buffer</name></param>
             <param><type>VkDeviceSize</type> <name>offset</name></param>
             <param><type>VkIndexType</type> <name>indexType</name></param>
         </command>
@@ -10547,6 +11960,25 @@
             <proto><type>void</type> <name>vkCmdSubpassShadingHUAWEI</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
         </command>
+        <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" tasks="action">
+            <proto><type>void</type> <name>vkCmdDrawClusterHUAWEI</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>uint32_t</type> <name>groupCountX</name></param>
+            <param><type>uint32_t</type> <name>groupCountY</name></param>
+            <param><type>uint32_t</type> <name>groupCountZ</name></param>
+        </command>
+        <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" tasks="action">
+            <proto><type>void</type> <name>vkCmdDrawClusterIndirectHUAWEI</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>VkBuffer</type> <name>buffer</name></param>
+            <param><type>VkDeviceSize</type> <name>offset</name></param>
+        </command>
+        <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action">
+            <proto><type>void</type> <name>vkCmdUpdatePipelineIndirectBufferNV</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>VkPipelineBindPoint</type>           <name>pipelineBindPoint</name></param>
+            <param><type>VkPipeline</type>                    <name>pipeline</name></param>
+        </command>
         <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action">
             <proto><type>void</type> <name>vkCmdCopyBuffer</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@@ -10773,7 +12205,7 @@
             <proto><type>void</type> <name>vkCmdEndRenderPass</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
         </command>
-        <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary" tasks="indirection">
+        <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="indirection">
             <proto><type>void</type> <name>vkCmdExecuteCommands</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <param><type>uint32_t</type> <name>commandBufferCount</name></param>
@@ -10838,7 +12270,8 @@
             <proto><type>VkResult</type> <name>vkCreateSharedSwapchainsKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>uint32_t</type> <name>swapchainCount</name></param>
-            <param len="swapchainCount" externsync="pCreateInfos[].surface,pCreateInfos[].oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfos</name></param>
+            <param api="vulkan" len="swapchainCount" externsync="pCreateInfos[].surface,pCreateInfos[].oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfos</name></param>
+            <param api="vulkansc" len="swapchainCount" externsync="pCreateInfos[].surface">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfos</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param len="swapchainCount"><type>VkSwapchainKHR</type>* <name>pSwapchains</name></param>
         </command>
@@ -10878,7 +12311,8 @@
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_COMPRESSION_EXHAUSTED_EXT">
             <proto><type>VkResult</type> <name>vkCreateSwapchainKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
-            <param externsync="pCreateInfo-&gt;surface,pCreateInfo-&gt;oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfo</name></param>
+            <param api="vulkan" externsync="pCreateInfo-&gt;surface,pCreateInfo-&gt;oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfo</name></param>
+            <param api="vulkansc" externsync="pCreateInfo-&gt;surface">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfo</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param><type>VkSwapchainKHR</type>* <name>pSwapchain</name></param>
         </command>
@@ -11227,6 +12661,24 @@
             <param>const <type>VkMemoryGetRemoteAddressInfoNV</type>* <name>pMemoryGetRemoteAddressInfo</name></param>
             <param><type>VkRemoteAddressNV</type>* <name>pAddress</name></param>
         </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
+            <proto><type>VkResult</type> <name>vkGetMemorySciBufNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkMemoryGetSciBufInfoNV</type>* <name>pGetSciBufInfo</name></param>
+            <param><type>NvSciBufObj</type>* <name>pHandle</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INVALID_EXTERNAL_HANDLE">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
+            <param><type>NvSciBufObj</type> <name>handle</name></param>
+            <param><type>VkMemorySciBufPropertiesNV</type>* <name>pMemorySciBufProperties</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSciBufAttributesNV</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param><type>NvSciBufAttrList</type> <name>pAttributes</name></param>
+        </command>
         <command>
             <proto><type>void</type> <name>vkGetPhysicalDeviceExternalSemaphoreProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -11296,6 +12748,58 @@
             <param><type>VkDevice</type> <name>device</name></param>
             <param>const <type>VkImportFenceFdInfoKHR</type>* <name>pImportFenceFdInfo</name></param>
         </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT">
+            <proto><type>VkResult</type> <name>vkGetFenceSciSyncFenceNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkFenceGetSciSyncInfoNV</type>* <name>pGetSciSyncHandleInfo</name></param>
+            <param><type>void</type>* <name>pHandle</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT">
+            <proto><type>VkResult</type> <name>vkGetFenceSciSyncObjNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkFenceGetSciSyncInfoNV</type>* <name>pGetSciSyncHandleInfo</name></param>
+            <param><type>void</type>* <name>pHandle</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT">
+            <proto><type>VkResult</type> <name>vkImportFenceSciSyncFenceNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkImportFenceSciSyncInfoNV</type>* <name>pImportFenceSciSyncInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT">
+            <proto><type>VkResult</type> <name>vkImportFenceSciSyncObjNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkImportFenceSciSyncInfoNV</type>* <name>pImportFenceSciSyncInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT">
+            <proto><type>VkResult</type> <name>vkGetSemaphoreSciSyncObjNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkSemaphoreGetSciSyncInfoNV</type>* <name>pGetSciSyncInfo</name></param>
+            <param><type>void</type>* <name>pHandle</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_NOT_PERMITTED_EXT,VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkImportSemaphoreSciSyncObjNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkImportSemaphoreSciSyncInfoNV</type>* <name>pImportSemaphoreSciSyncInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSciSyncAttributesNV</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param>const <type>VkSciSyncAttributesInfoNV</type>* <name>pSciSyncAttributesInfo</name></param>
+            <param><type>NvSciSyncAttrList</type> <name>pAttributes</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateSemaphoreSciSyncPoolNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkSemaphoreSciSyncPoolCreateInfoNV</type>* <name>pCreateInfo</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param><type>VkSemaphoreSciSyncPoolNV</type>* <name>pSemaphorePool</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkDestroySemaphoreSciSyncPoolNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param optional="true" externsync="true"><type>VkSemaphoreSciSyncPoolNV</type> <name>semaphorePool</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+        </command>
         <command successcodes="VK_SUCCESS">
             <proto><type>VkResult</type> <name>vkReleaseDisplayEXT</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -11522,6 +13026,16 @@
             <param len="discardRectangleCount">const <type>VkRect2D</type>* <name>pDiscardRectangles</name></param>
         </command>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetDiscardRectangleEnableEXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>VkBool32</type> <name>discardRectangleEnable</name></param>
+        </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetDiscardRectangleModeEXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>VkDiscardRectangleModeEXT</type> <name>discardRectangleMode</name></param>
+        </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdSetSampleLocationsEXT</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <param>const <type>VkSampleLocationsInfoEXT</type>* <name>pSampleLocationsInfo</name></param>
@@ -11686,18 +13200,12 @@
             <param><type>uint64_t</type>* <name>grallocProducerUsage</name></param>
         </command>
         <command>
-            <proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage3ANDROID</name></proto>
-            <param><type>VkDevice</type> <name>device</name></param>
-            <param>const <type>VkGrallocUsageInfoANDROID</type>* <name>grallocUsageInfo</name></param>
-            <param><type>uint64_t</type>* <name>grallocUsage</name></param>
-        </command>
-        <command>
             <proto><type>VkResult</type> <name>vkAcquireImageANDROID</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>VkImage</type> <name>image</name></param>
             <param><type>int</type> <name>nativeFenceFd</name></param>
-            <param><type>VkSemaphore</type> <name>semaphore</name></param>
-            <param><type>VkFence</type> <name>fence</name></param>
+            <param optional="true"><type>VkSemaphore</type> <name>semaphore</name></param>
+            <param optional="true"><type>VkFence</type> <name>fence</name></param>
         </command>
         <command>
             <proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto>
@@ -11723,19 +13231,21 @@
             <param><type>VkBool32</type> <name>localDimmingEnable</name></param>
         </command>
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
-            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCalibrateableTimeDomainsEXT</name></proto>
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCalibrateableTimeDomainsKHR</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
             <param optional="false,true"><type>uint32_t</type>* <name>pTimeDomainCount</name></param>
-            <param optional="true" len="pTimeDomainCount"><type>VkTimeDomainEXT</type>* <name>pTimeDomains</name></param>
+            <param optional="true" len="pTimeDomainCount"><type>VkTimeDomainKHR</type>* <name>pTimeDomains</name></param>
         </command>
+        <command name="vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" alias="vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"/>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
-            <proto><type>VkResult</type> <name>vkGetCalibratedTimestampsEXT</name></proto>
+            <proto><type>VkResult</type> <name>vkGetCalibratedTimestampsKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>uint32_t</type> <name>timestampCount</name></param>
-            <param len="timestampCount">const <type>VkCalibratedTimestampInfoEXT</type>* <name>pTimestampInfos</name></param>
+            <param len="timestampCount">const <type>VkCalibratedTimestampInfoKHR</type>* <name>pTimestampInfos</name></param>
             <param len="timestampCount"><type>uint64_t</type>* <name>pTimestamps</name></param>
             <param><type>uint64_t</type>* <name>pMaxDeviation</name></param>
         </command>
+        <command name="vkGetCalibratedTimestampsEXT" alias="vkGetCalibratedTimestampsKHR"/>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkSetDebugUtilsObjectNameEXT</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
@@ -11798,7 +13308,7 @@
             <proto><type>VkResult</type> <name>vkGetMemoryHostPointerPropertiesEXT</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
-            <param optional="false">const <type>void</type>* <name>pHostPointer</name></param>
+            <param>const <type>void</type>* <name>pHostPointer</name></param>
             <param><type>VkMemoryHostPointerPropertiesEXT</type>* <name>pMemoryHostPointerProperties</name></param>
         </command>
         <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="action">
@@ -11962,6 +13472,13 @@
             <param len="exclusiveScissorCount">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></param>
         </command>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetExclusiveScissorEnableNV</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>uint32_t</type> <name>firstExclusiveScissor</name></param>
+            <param><type>uint32_t</type> <name>exclusiveScissorCount</name></param>
+            <param len="exclusiveScissorCount">const <type>VkBool32</type>* <name>pExclusiveScissorEnables</name></param>
+        </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdBindShadingRateImageNV</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <param optional="true"><type>VkImageView</type> <name>imageView</name></param>
@@ -12208,7 +13725,7 @@
             <param><type>size_t</type> <name>dataSize</name></param>
             <param len="dataSize"><type>void</type>* <name>pData</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
             <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesNV</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
@@ -12217,7 +13734,16 @@
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS">
+        <command api="vulkansc" successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NO_PIPELINE_MATCH,VK_ERROR_OUT_OF_POOL_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkPipelineCache</type> <name>pipelineCache</name></param>
+            <param><type>uint32_t</type> <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkRayTracingPipelineCreateInfoNV</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
+        </command>
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS">
             <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
@@ -12227,6 +13753,16 @@
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
         </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_ERROR_NO_PIPELINE_MATCH,VK_ERROR_OUT_OF_POOL_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesKHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
+            <param><type>VkPipelineCache</type> <name>pipelineCache</name></param>
+            <param><type>uint32_t</type> <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkRayTracingPipelineCreateInfoKHR</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
+        </command>
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCooperativeMatrixPropertiesNV</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -12433,6 +13969,14 @@
             <param><type>uint32_t</type> <name>lineStippleFactor</name></param>
             <param><type>uint16_t</type> <name>lineStipplePattern</name></param>
         </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetFaultData</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkFaultQueryBehavior</type> <name>faultQueryBehavior</name></param>
+            <param><type>VkBool32</type>* <name>pUnrecordedFaults</name></param>
+            <param optional="false,true"><type>uint32_t</type>* <name>pFaultCount</name></param>
+            <param optional="true" len="pFaultCount"><type>VkFaultData</type>* <name>pFaults</name></param>
+        </command>
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
             <proto><type>VkResult</type> <name>vkGetPhysicalDeviceToolProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -12503,6 +14047,17 @@
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>VkDeferredOperationKHR</type> <name>operation</name></param>
         </command>
+        <command>
+            <proto><type>void</type> <name>vkGetPipelineIndirectMemoryRequirementsNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkComputePipelineCreateInfo</type>* <name>pCreateInfo</name></param>
+            <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
+        </command>
+        <command>
+            <proto><type>VkDeviceAddress</type> <name>vkGetPipelineIndirectDeviceAddressNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkPipelineIndirectDeviceAddressInfoNV</type>* <name>pInfo</name></param>
+        </command>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdSetCullMode</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@@ -12536,6 +14091,14 @@
         </command>
         <command name="vkCmdSetScissorWithCountEXT" alias="vkCmdSetScissorWithCount"/>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdBindIndexBuffer2KHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param optional="true"><type>VkBuffer</type> <name>buffer</name></param>
+            <param><type>VkDeviceSize</type> <name>offset</name></param>
+            <param><type>VkDeviceSize</type> <name>size</name></param>
+            <param><type>VkIndexType</type> <name>indexType</name></param>
+        </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdBindVertexBuffers2</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
             <param><type>uint32_t</type> <name>firstBinding</name></param>
@@ -12850,6 +14413,17 @@
             <param>const <type>VkResolveImageInfo2</type>* <name>pResolveImageInfo</name></param>
         </command>
         <command name="vkCmdResolveImage2KHR" alias="vkCmdResolveImage2"/>
+        <command queues="graphics,compute,transfer" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action">
+            <proto><type>void</type> <name>vkCmdRefreshObjectsKHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkRefreshObjectListKHR</type>* <name>pRefreshObjects</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceRefreshableObjectTypesKHR</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param optional="false,true"><type>uint32_t</type>* <name>pRefreshableObjectTypeCount</name></param>
+            <param optional="true" len="pRefreshableObjectTypeCount"><type>VkObjectType</type>* <name>pRefreshableObjectTypes</name></param>
+        </command>
         <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
             <proto><type>void</type> <name>vkCmdSetFragmentShadingRateKHR</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type>           <name>commandBuffer</name></param>
@@ -12948,6 +14522,34 @@
             <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param>
             <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointData2NV</type>* <name>pCheckpointData</name></param>
         </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
+            <proto><type>VkResult</type> <name>vkCopyMemoryToImageEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkCopyMemoryToImageInfoEXT</type>* <name>pCopyMemoryToImageInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
+            <proto><type>VkResult</type> <name>vkCopyImageToMemoryEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkCopyImageToMemoryInfoEXT</type>* <name>pCopyImageToMemoryInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
+            <proto><type>VkResult</type> <name>vkCopyImageToImageEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkCopyImageToImageInfoEXT</type>* <name>pCopyImageToImageInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
+            <proto><type>VkResult</type> <name>vkTransitionImageLayoutEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>uint32_t</type> <name>transitionCount</name></param>
+            <param len="transitionCount">const <type>VkHostImageLayoutTransitionInfoEXT</type>* <name>pTransitions</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkGetCommandPoolMemoryConsumption</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
+            <param optional="true" externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>VkCommandPoolMemoryConsumption</type>* <name>pConsumption</name></param>
+        </command>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR">
             <proto><type>VkResult</type> <name>vkGetPhysicalDeviceVideoCapabilitiesKHR</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -12961,7 +14563,13 @@
             <param optional="false,true"><type>uint32_t</type>* <name>pVideoFormatPropertyCount</name></param>
             <param optional="true" len="pVideoFormatPropertyCount"><type>VkVideoFormatPropertiesKHR</type>* <name>pVideoFormatProperties</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR">
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param>const <type>VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR</type>* <name>pQualityLevelInfo</name></param>
+            <param><type>VkVideoEncodeQualityLevelPropertiesKHR</type>* <name>pQualityLevelProperties</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
             <proto><type>VkResult</type> <name>vkCreateVideoSessionKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param>const <type>VkVideoSessionCreateInfoKHR</type>* <name>pCreateInfo</name></param>
@@ -12974,33 +14582,41 @@
             <param optional="true" externsync="true"><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_TOO_MANY_OBJECTS">
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
             <proto><type>VkResult</type> <name>vkCreateVideoSessionParametersKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param>const <type>VkVideoSessionParametersCreateInfoKHR</type>* <name>pCreateInfo</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
             <param><type>VkVideoSessionParametersKHR</type>* <name>pVideoSessionParameters</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_TOO_MANY_OBJECTS">
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
             <proto><type>VkResult</type> <name>vkUpdateVideoSessionParametersKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></param>
             <param>const <type>VkVideoSessionParametersUpdateInfoKHR</type>* <name>pUpdateInfo</name></param>
         </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetEncodedVideoSessionParametersKHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkVideoEncodeSessionParametersGetInfoKHR</type>* <name>pVideoSessionParametersInfo</name></param>
+            <param optional="true"><type>VkVideoEncodeSessionParametersFeedbackInfoKHR</type>* <name>pFeedbackInfo</name></param>
+            <param optional="false,true"><type>size_t</type>* <name>pDataSize</name></param>
+            <param optional="true" len="pDataSize"><type>void</type>* <name>pData</name></param>
+        </command>
         <command>
             <proto><type>void</type> <name>vkDestroyVideoSessionParametersKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param optional="true" externsync="true"><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></param>
             <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE">
             <proto><type>VkResult</type> <name>vkGetVideoSessionMemoryRequirementsKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
             <param optional="false,true"><type>uint32_t</type>* <name>pMemoryRequirementsCount</name></param>
             <param optional="true" len="pMemoryRequirementsCount"><type>VkVideoSessionMemoryRequirementsKHR</type>* <name>pMemoryRequirements</name></param>
         </command>
-        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkBindVideoSessionMemoryKHR</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param externsync="true"><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
@@ -13206,6 +14822,44 @@
             <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
             <param><type>VkBufferCollectionPropertiesFUCHSIA</type>* <name>pProperties</name></param>
         </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateCudaModuleNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkCudaModuleCreateInfoNV</type>* <name>pCreateInfo</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param><type>VkCudaModuleNV</type>* <name>pModule</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
+            <proto><type>VkResult</type> <name>vkGetCudaModuleCacheNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkCudaModuleNV</type> <name>module</name></param>
+            <param optional="false,true"><type>size_t</type>* <name>pCacheSize</name></param>
+            <param optional="true" len="pCacheSize"><type>void</type>* <name>pCacheData</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateCudaFunctionNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkCudaFunctionCreateInfoNV</type>* <name>pCreateInfo</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param><type>VkCudaFunctionNV</type>* <name>pFunction</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkDestroyCudaModuleNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkCudaModuleNV</type> <name>module</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkDestroyCudaFunctionNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkCudaFunctionNV</type> <name>function</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="action">
+            <proto><type>void</type> <name>vkCmdCudaLaunchKernelNV</name></proto>
+            <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkCudaLaunchInfoNV</type>* <name>pLaunchInfo</name></param>
+        </command>
         <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action,state">
             <proto><type>void</type> <name>vkCmdBeginRendering</name></proto>
             <param externsync="true"><type>VkCommandBuffer</type>                   <name>commandBuffer</name></param>
@@ -13334,12 +14988,13 @@
             <param><type>VkShaderModuleIdentifierEXT</type>* <name>pIdentifier</name></param>
         </command>
         <command>
-           <proto><type>void</type> <name>vkGetImageSubresourceLayout2EXT</name></proto>
-           <param><type>VkDevice</type> <name>device</name></param>
-           <param><type>VkImage</type> <name>image</name></param>
-           <param>const <type>VkImageSubresource2EXT</type>* <name>pSubresource</name></param>
-           <param><type>VkSubresourceLayout2EXT</type>* <name>pLayout</name></param>
+            <proto><type>void</type> <name>vkGetImageSubresourceLayout2KHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkImage</type> <name>image</name></param>
+            <param>const <type>VkImageSubresource2KHR</type>* <name>pSubresource</name></param>
+            <param><type>VkSubresourceLayout2KHR</type>* <name>pLayout</name></param>
         </command>
+        <command name="vkGetImageSubresourceLayout2EXT"        alias="vkGetImageSubresourceLayout2KHR"/>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
             <proto><type>VkResult</type> <name>vkGetPipelinePropertiesEXT</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
@@ -13404,14 +15059,180 @@
             <param><type>VkDeviceFaultCountsEXT</type>* <name>pFaultCounts</name></param>
             <param optional="true"><type>VkDeviceFaultInfoEXT</type>* <name>pFaultInfo</name></param>
         </command>
+        <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetDepthBias2EXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkDepthBiasInfoEXT</type>*         <name>pDepthBiasInfo</name></param>
+        </command>
         <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_SURFACE_LOST_KHR">
             <proto><type>VkResult</type> <name>vkReleaseSwapchainImagesEXT</name></proto>
             <param><type>VkDevice</type> <name>device</name></param>
             <param>const <type>VkReleaseSwapchainImagesInfoEXT</type>* <name>pReleaseInfo</name></param>
         </command>
+        <command>
+            <proto><type>void</type> <name>vkGetDeviceImageSubresourceLayoutKHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkDeviceImageSubresourceInfoKHR</type>* <name>pInfo</name></param>
+            <param><type>VkSubresourceLayout2KHR</type>* <name>pLayout</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
+            <proto><type>VkResult</type> <name>vkMapMemory2KHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkMemoryMapInfoKHR</type>* <name>pMemoryMapInfo</name></param>
+            <param optional="false,true"><type>void</type>** <name>ppData</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS">
+            <proto><type>VkResult</type> <name>vkUnmapMemory2KHR</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const <type>VkMemoryUnmapInfoKHR</type>* <name>pMemoryUnmapInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT">
+            <proto><type>VkResult</type> <name>vkCreateShadersEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>uint32_t</type> <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkShaderCreateInfoEXT</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkShaderEXT</type>* <name>pShaders</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkDestroyShaderEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param externsync="true"><type>VkShaderEXT</type> <name>shader</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetShaderBinaryDataEXT</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkShaderEXT</type> <name>shader</name></param>
+            <param optional="false,true"><type>size_t</type>* <name>pDataSize</name></param>
+            <param optional="true" len="pDataSize"><type>void</type>* <name>pData</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdBindShadersEXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param><type>uint32_t</type> <name>stageCount</name></param>
+            <param len="stageCount">const <type>VkShaderStageFlagBits</type>* <name>pStages</name></param>
+            <param optional="true,true" len="stageCount">const <type>VkShaderEXT</type>* <name>pShaders</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR">
+            <proto><type>VkResult</type> <name>vkGetScreenBufferPropertiesQNX</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param>const struct <type>_screen_buffer</type>* <name>buffer</name></param>
+            <param><type>VkScreenBufferPropertiesQNX</type>* <name>pProperties</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
+            <param optional="true" len="pPropertyCount"><type>VkCooperativeMatrixPropertiesKHR</type>* <name>pProperties</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetExecutionGraphPipelineScratchSizeAMDX</name></proto>
+            <param><type>VkDevice</type>                                        <name>device</name></param>
+            <param><type>VkPipeline</type>                                      <name>executionGraph</name></param>
+            <param><type>VkExecutionGraphPipelineScratchSizeAMDX</type>*         <name>pSizeInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
+            <proto><type>VkResult</type> <name>vkGetExecutionGraphPipelineNodeIndexAMDX</name></proto>
+            <param><type>VkDevice</type>                                        <name>device</name></param>
+            <param><type>VkPipeline</type>                                      <name>executionGraph</name></param>
+            <param>const <type>VkPipelineShaderStageNodeCreateInfoAMDX</type>*   <name>pNodeInfo</name></param>
+            <param><type>uint32_t</type>*                                       <name>pNodeIndex</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+            <proto><type>VkResult</type> <name>vkCreateExecutionGraphPipelinesAMDX</name></proto>
+            <param><type>VkDevice</type>                                        <name>device</name></param>
+            <param optional="true"><type>VkPipelineCache</type>                 <name>pipelineCache</name></param>
+            <param><type>uint32_t</type>                                        <name>createInfoCount</name></param>
+            <param len="createInfoCount">const <type>VkExecutionGraphPipelineCreateInfoAMDX</type>* <name>pCreateInfos</name></param>
+            <param optional="true">const <type>VkAllocationCallbacks</type>*    <name>pAllocator</name></param>
+            <param len="createInfoCount"><type>VkPipeline</type>*               <name>pPipelines</name></param>
+        </command>
+        <command queues="graphics,compute" tasks="action" renderpass="outside" cmdbufferlevel="primary">
+            <proto><type>void</type> <name>vkCmdInitializeGraphScratchMemoryAMDX</name></proto>
+            <param><type>VkCommandBuffer</type>                                 <name>commandBuffer</name></param>
+            <param><type>VkDeviceAddress</type>                                 <name>scratch</name></param>
+        </command>
+        <command queues="graphics,compute" tasks="action" renderpass="outside" cmdbufferlevel="primary">
+            <proto><type>void</type> <name>vkCmdDispatchGraphAMDX</name></proto>
+            <param><type>VkCommandBuffer</type>                                 <name>commandBuffer</name></param>
+            <param><type>VkDeviceAddress</type>                                 <name>scratch</name></param>
+            <param>const <type>VkDispatchGraphCountInfoAMDX</type>*              <name>pCountInfo</name></param>
+        </command>
+        <command queues="graphics,compute" tasks="action" renderpass="outside" cmdbufferlevel="primary">
+            <proto><type>void</type> <name>vkCmdDispatchGraphIndirectAMDX</name></proto>
+            <param><type>VkCommandBuffer</type>                                 <name>commandBuffer</name></param>
+            <param><type>VkDeviceAddress</type>                                 <name>scratch</name></param>
+            <param>const <type>VkDispatchGraphCountInfoAMDX</type>*              <name>pCountInfo</name></param>
+        </command>
+        <command queues="graphics,compute" tasks="action" renderpass="outside" cmdbufferlevel="primary">
+            <proto><type>void</type> <name>vkCmdDispatchGraphIndirectCountAMDX</name></proto>
+            <param><type>VkCommandBuffer</type>                                 <name>commandBuffer</name></param>
+            <param><type>VkDeviceAddress</type>                                 <name>scratch</name></param>
+            <param><type>VkDeviceAddress</type>                                 <name>countInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdBindDescriptorSets2KHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkBindDescriptorSetsInfoKHR</type>* <name>pBindDescriptorSetsInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdPushConstants2KHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkPushConstantsInfoKHR</type>* <name>pPushConstantsInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdPushDescriptorSet2KHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkPushDescriptorSetInfoKHR</type>* <name>pPushDescriptorSetInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdPushDescriptorSetWithTemplate2KHR</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkPushDescriptorSetWithTemplateInfoKHR</type>* <name>pPushDescriptorSetWithTemplateInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdSetDescriptorBufferOffsets2EXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkSetDescriptorBufferOffsetsInfoEXT</type>* <name>pSetDescriptorBufferOffsetsInfo</name></param>
+        </command>
+        <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+            <proto><type>void</type> <name>vkCmdBindDescriptorBufferEmbeddedSamplers2EXT</name></proto>
+            <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+            <param>const <type>VkBindDescriptorBufferEmbeddedSamplersInfoEXT</type>* <name>pBindDescriptorBufferEmbeddedSamplersInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
+            <proto><type>VkResult</type> <name>vkSetLatencySleepModeNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
+            <param>const <type>VkLatencySleepModeInfoNV</type>* <name>pSleepModeInfo</name></param>
+        </command>
+        <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_UNKNOWN">
+            <proto><type>VkResult</type> <name>vkLatencySleepNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
+            <param>const <type>VkLatencySleepInfoNV</type>* <name>pSleepInfo</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkSetLatencyMarkerNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
+            <param>const <type>VkSetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkGetLatencyTimingsNV</name></proto>
+            <param><type>VkDevice</type> <name>device</name></param>
+            <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
+            <param><type>VkGetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param>
+        </command>
+        <command>
+            <proto><type>void</type> <name>vkQueueNotifyOutOfBandNV</name></proto>
+            <param><type>VkQueue</type> <name>queue</name></param>
+            <param>const <type>VkOutOfBandQueueTypeInfoNV</type>* <name>pQueueTypeInfo</name></param>
+        </command>
     </commands>
 
-    <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
+    <feature api="vulkan,vulkansc" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
         <require comment="Header boilerplate">
             <type name="vk_platform"/>
             <type name="VK_DEFINE_HANDLE"/>
@@ -13925,7 +15746,7 @@
             <command name="vkCmdExecuteCommands"/>
         </require>
     </feature>
-    <feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
+    <feature api="vulkan,vulkansc" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
         <require>
             <type name="VK_API_VERSION_1_1"/>
         </require>
@@ -14079,7 +15900,7 @@
         </require>
         <require comment="Promoted from VK_KHR_variable_pointers">
             <enum extends="VkStructureType" extnumber="121" offset="0"          name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
-            <enum extends="VkStructureType"                                     name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
+            <enum api="vulkan" extends="VkStructureType"                                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
             <type name="VkPhysicalDeviceVariablePointerFeatures"/>
             <type name="VkPhysicalDeviceVariablePointersFeatures"/>
         </require>
@@ -14252,12 +16073,12 @@
         </require>
         <require comment="Promoted from VK_KHR_shader_draw_parameters, with a feature support query added">
             <enum extends="VkStructureType" extnumber="64"  offset="0"          name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"/>
-            <enum extends="VkStructureType"                                     name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"/>
+            <enum api="vulkan" extends="VkStructureType"                                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"/>
             <type name="VkPhysicalDeviceShaderDrawParameterFeatures"/>
             <type name="VkPhysicalDeviceShaderDrawParametersFeatures"/>
         </require>
     </feature>
-    <feature api="vulkan" name="VK_VERSION_1_2" number="1.2" comment="Vulkan 1.2 core API interface definitions.">
+    <feature api="vulkan,vulkansc" name="VK_VERSION_1_2" number="1.2" comment="Vulkan 1.2 core API interface definitions.">
         <require>
             <type name="VK_API_VERSION_1_2"/>
         </require>
@@ -14452,7 +16273,7 @@
             <command name="vkGetDeviceMemoryOpaqueCaptureAddress"/>
         </require>
     </feature>
-    <feature api="vulkan" name="VK_VERSION_1_3" number="1.3" comment="Vulkan 1.3 core API interface definitions.">
+    <feature api="vulkan,vulkansc" name="VK_VERSION_1_3" number="1.3" comment="Vulkan 1.3 core API interface definitions.">
         <require>
             <type name="VK_API_VERSION_1_3"/>
         </require>
@@ -14717,8 +16538,142 @@
         </require>
     </feature>
 
+    <feature api="vulkansc" name="VKSC_VERSION_1_0" number="1.0" comment="Vulkan SC core API interface definitions">
+        <require>
+            <type name="VKSC_API_VARIANT"/>
+            <type name="VKSC_API_VERSION_1_0"/>
+            <type name="VkPhysicalDeviceVulkanSC10Features"/>
+            <type name="VkPhysicalDeviceVulkanSC10Properties"/>
+            <enum offset="0" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES"/>
+            <enum offset="1" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES"/>
+            <enum offset="1" extnumber="12" extends="VkResult" dir="-"  name="VK_ERROR_VALIDATION_FAILED"/>
+        </require>
+        <require comment="static memory functionality">
+            <type name="VkDeviceObjectReservationCreateInfo"/>
+            <type name="VkCommandPoolMemoryReservationCreateInfo"/>
+            <type name="VkCommandPoolMemoryConsumption"/>
+            <type name="VkPipelinePoolSize"/>
+            <command name="vkGetCommandPoolMemoryConsumption"/>
+            <enum offset="2" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO"/>
+            <enum offset="3" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO"/>
+            <enum offset="4" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION"/>
+            <enum offset="5" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE"/>
+        </require>
+        <require comment="fault handling functionality">
+            <enum offset="7" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_FAULT_DATA"/>
+            <enum offset="8" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO"/>
+            <type name="VkFaultData"/>
+            <type name="VkFaultCallbackInfo"/>
+            <type name="VkFaultLevel"/>
+            <type name="VkFaultType"/>
+            <type name="VkFaultQueryBehavior"/>
+            <type name="PFN_vkFaultCallbackFunction"/>
+            <command name="vkGetFaultData"/>
+        </require>
+        <require comment="pipeline offline create info">
+            <enum offset="10" extnumber="299" extends="VkStructureType"  name="VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO"/>
+            <type name="VkPipelineOfflineCreateInfo"/>
+            <type name="VkPipelineMatchControl"/>
+        </require>
+        <require comment="pipeline cache functionality">
+            <enum offset="0" extnumber="299" extends="VkResult" dir="-" name="VK_ERROR_INVALID_PIPELINE_CACHE_DATA"/>
+            <enum offset="1" extnumber="299" extends="VkResult" dir="-" name="VK_ERROR_NO_PIPELINE_MATCH"/>
+            <enum bitpos="1" extends="VkPipelineCacheCreateFlagBits"    name="VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT"/>
+            <enum bitpos="2" extends="VkPipelineCacheCreateFlagBits"    name="VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT"/>
+            <type name="VkPipelineCacheCreateFlagBits" comment="This should be picked up from the extends= attributes above"/>
+        </require>
+        <require comment="seu safe memory functionality">
+            <enum bitpos="2" extends="VkMemoryHeapFlagBits"             name="VK_MEMORY_HEAP_SEU_SAFE_BIT"/>
+        </require>
+        <require comment="pipeline cache header - These types are part of the API, though not all directly used in API commands or data structures">
+            <enum offset="1" extnumber="299" extends="VkPipelineCacheHeaderVersion"    name="VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE"/>
+            <type name="VkPipelineCacheValidationVersion"/>
+            <type name="VkPipelineCacheStageValidationIndexEntry"/>
+            <type name="VkPipelineCacheSafetyCriticalIndexEntry"/>
+            <type name="VkPipelineCacheHeaderVersionSafetyCriticalOne"/>
+        </require>
+
+        <remove comment="SC 1.0 removes some features from Vulkan 1.0/1.1/1.2">
+            <enum name="VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"/>
+            <!--enum name="VK_OBJECT_TYPE_SHADER_MODULE" comment="leave this present for compatibility"/-->
+            <enum name="VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"/>
+            <enum name="VK_PIPELINE_CREATE_DERIVATIVE_BIT"/>
+            <enum name="VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"/>
+
+            <!-- Remove Vulkan and deprecated macros -->
+            <type name="VK_API_VERSION"/>
+            <type name="VK_MAKE_VERSION"/>
+            <type name="VK_VERSION_MAJOR"/>
+            <type name="VK_VERSION_MINOR"/>
+            <type name="VK_VERSION_PATCH"/>
+
+            <!--type name="VkShaderModule" comment="leave this present for compatibility"/-->
+            <type name="VkShaderModuleCreateFlags"/>
+            <type name="VkShaderModuleCreateFlagBits"/>
+            <type name="VkShaderModuleCreateInfo"/>
+            <type name="VkCommandPoolTrimFlags"/>
+            <command name="vkCreateShaderModule"/>
+            <command name="vkDestroyShaderModule"/>
+            <command name="vkMergePipelineCaches"/>
+            <command name="vkGetPipelineCacheData"/>
+            <command name="vkTrimCommandPool"/>
+            <command name="vkDestroyCommandPool"/>
+            <command name="vkDestroyDescriptorPool"/>
+            <command name="vkDestroyQueryPool"/>
+            <command name="vkDestroySwapchainKHR"/>
+            <command name="vkFreeMemory"/>
+
+            <!-- Descriptor update templates are unsupported -->
+            <enum name="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"/>
+            <enum name="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"/>
+            <command name="vkCreateDescriptorUpdateTemplate"/>
+            <command name="vkDestroyDescriptorUpdateTemplate"/>
+            <command name="vkUpdateDescriptorSetWithTemplate"/>
+            <type name="VkDescriptorUpdateTemplate"/>
+            <type name="VkDescriptorUpdateTemplateCreateFlags"/>
+            <type name="VkDescriptorUpdateTemplateType"/>
+            <type name="VkDescriptorUpdateTemplateEntry"/>
+            <type name="VkDescriptorUpdateTemplateCreateInfo"/>
+            <enum name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"/>
+
+            <!-- Sparse resources are unsupported -->
+            <enum name="VK_QUEUE_SPARSE_BINDING_BIT"/>
+            <!--type name="VkPhysicalDeviceSparseProperties" comment="needed for VkPhysicalDeviceProperties"/-->
+            <type name="VkSparseImageFormatProperties"/>
+            <type name="VkSparseImageFormatFlagBits"/>
+            <type name="VkSparseImageFormatFlags"/>
+            <command name="vkGetPhysicalDeviceSparseImageFormatProperties"/>
+            <command name="vkGetPhysicalDeviceSparseImageFormatProperties2"/>
+            <type name="VkPhysicalDeviceSparseImageFormatInfo2"/>
+            <enum name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"/>
+            <type name="VkSparseImageFormatProperties2"/>
+            <enum name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"/>
+            <type name="VkSparseImageMemoryRequirements"/>
+            <command name="vkGetImageSparseMemoryRequirements"/>
+            <command name="vkGetImageSparseMemoryRequirements2"/>
+            <type name="VkImageSparseMemoryRequirementsInfo2"/>
+            <enum name="VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"/>
+            <type name="VkSparseImageMemoryRequirements2"/>
+            <enum name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"/>
+            <type name="VkSparseMemoryBind"/>
+            <type name="VkSparseMemoryBindFlagBits"/>
+            <type name="VkSparseMemoryBindFlags"/>
+            <type name="VkSparseBufferMemoryBindInfo"/>
+            <type name="VkSparseImageOpaqueMemoryBindInfo"/>
+            <type name="VkSparseImageMemoryBindInfo"/>
+            <type name="VkSparseImageMemoryBind"/>
+            <command name="vkQueueBindSparse"/>
+            <type name="VkBindSparseInfo"/>
+            <enum name="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"/>
+            <type name="VkDeviceGroupBindSparseInfo"/>
+            <enum name="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"/>
+
+            <command name="vkDestroySemaphoreSciSyncPoolNV"/>
+        </remove>
+    </feature>
+
     <extensions comment="Vulkan extension interface definitions">
-        <extension name="VK_KHR_surface" number="1" type="instance" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_surface" number="1" type="instance" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="25"                                                name="VK_KHR_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_surface&quot;"                        name="VK_KHR_SURFACE_EXTENSION_NAME"/>
@@ -14740,7 +16695,7 @@
                 <command name="vkGetPhysicalDeviceSurfacePresentModesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_swapchain" number="2" type="device" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_swapchain" number="2" type="device" depends="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="70"                                                name="VK_KHR_SWAPCHAIN_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_swapchain&quot;"                      name="VK_KHR_SWAPCHAIN_EXTENSION_NAME"/>
@@ -14761,7 +16716,7 @@
                 <command name="vkAcquireNextImageKHR"/>
                 <command name="vkQueuePresentKHR"/>
             </require>
-            <require feature="VK_VERSION_1_1">
+            <require depends="VK_VERSION_1_1">
                 <comment>This duplicates definitions in VK_KHR_device_group below</comment>
                 <enum extends="VkStructureType" extnumber="61"  offset="7"      name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"/>
                 <enum extends="VkStructureType" extnumber="61"  offset="8"      name="VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"/>
@@ -14785,7 +16740,7 @@
                 <enum bitpos="1" extends="VkSwapchainCreateFlagBitsKHR"         name="VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"     comment="Swapchain is protected"/>
             </require>
         </extension>
-        <extension name="VK_KHR_display" number="3" type="instance" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Norbert Nopper @FslNopper" supported="vulkan">
+        <extension name="VK_KHR_display" number="3" type="instance" depends="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Norbert Nopper @FslNopper" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="23"                                                name="VK_KHR_DISPLAY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_display&quot;"                        name="VK_KHR_DISPLAY_EXTENSION_NAME"/>
@@ -14816,7 +16771,7 @@
                 <command name="vkCreateDisplayPlaneSurfaceKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_display_swapchain" number="4" type="device" requires="VK_KHR_swapchain,VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_KHR_display_swapchain" number="4" type="device" depends="VK_KHR_swapchain+VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="10"                                                name="VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_display_swapchain&quot;"              name="VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME"/>
@@ -14826,7 +16781,7 @@
                 <command name="vkCreateSharedSwapchainsKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_xlib_surface" number="5" type="instance" requires="VK_KHR_surface" platform="xlib" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_xlib_surface" number="5" type="instance" depends="VK_KHR_surface" platform="xlib" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="6"                                                 name="VK_KHR_XLIB_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_xlib_surface&quot;"                   name="VK_KHR_XLIB_SURFACE_EXTENSION_NAME"/>
@@ -14837,7 +16792,7 @@
                 <command name="vkGetPhysicalDeviceXlibPresentationSupportKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_xcb_surface" number="6" type="instance" requires="VK_KHR_surface" platform="xcb" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_xcb_surface" number="6" type="instance" depends="VK_KHR_surface" platform="xcb" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="6"                                                 name="VK_KHR_XCB_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_xcb_surface&quot;"                    name="VK_KHR_XCB_SURFACE_EXTENSION_NAME"/>
@@ -14848,7 +16803,7 @@
                 <command name="vkGetPhysicalDeviceXcbPresentationSupportKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_wayland_surface" number="7" type="instance" requires="VK_KHR_surface" platform="wayland" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_wayland_surface" number="7" type="instance" depends="VK_KHR_surface" platform="wayland" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="6"                                                 name="VK_KHR_WAYLAND_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_wayland_surface&quot;"                name="VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME"/>
@@ -14859,13 +16814,13 @@
                 <command name="vkGetPhysicalDeviceWaylandPresentationSupportKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" author="KHR" supported="disabled" comment="Extension permanently disabled. Extension number should not be reused">
+        <extension name="VK_KHR_mir_surface" number="8" type="instance" depends="VK_KHR_surface" author="KHR" supported="disabled" comment="Extension permanently disabled. Extension number should not be reused" ratified="vulkan">
             <require>
                 <enum value="4"                                                 name="VK_KHR_MIR_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_mir_surface&quot;"                    name="VK_KHR_MIR_SURFACE_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_android_surface" number="9" type="instance" requires="VK_KHR_surface" platform="android" author="KHR" contact="Jesse Hall @critsec" supported="vulkan">
+        <extension name="VK_KHR_android_surface" number="9" type="instance" depends="VK_KHR_surface" platform="android" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="6"                                                 name="VK_KHR_ANDROID_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_android_surface&quot;"                name="VK_KHR_ANDROID_SURFACE_EXTENSION_NAME"/>
@@ -14876,7 +16831,7 @@
                 <command name="vkCreateAndroidSurfaceKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_win32_surface" number="10" type="instance" requires="VK_KHR_surface" platform="win32" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_win32_surface" number="10" type="instance" depends="VK_KHR_surface" platform="win32" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="6"                                                 name="VK_KHR_WIN32_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_win32_surface&quot;"                  name="VK_KHR_WIN32_SURFACE_EXTENSION_NAME"/>
@@ -14897,11 +16852,9 @@
                 <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"/>
                 <enum offset="1" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"/>
                 <enum offset="2" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"/>
-                <enum offset="3" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_GRALLOC_USAGE_INFO_ANDROID"/>
                 <type name="VkNativeBufferANDROID"/>
                 <type name="VkSwapchainImageCreateInfoANDROID"/>
                 <type name="VkPhysicalDevicePresentationPropertiesANDROID"/>
-                <type name="VkGrallocUsageInfoANDROID"/>
                 <type name="VkNativeBufferUsage2ANDROID"/>
                 <type name="VkSwapchainImageUsageFlagBitsANDROID"/>
                 <type name="VkSwapchainImageUsageFlagsANDROID"/>
@@ -14909,7 +16862,6 @@
                 <command name="vkAcquireImageANDROID"/>
                 <command name="vkQueueSignalReleaseImageANDROID"/>
                 <command name="vkGetSwapchainGrallocUsage2ANDROID"/>
-                <command name="vkGetSwapchainGrallocUsage3ANDROID"/>
             </require>
         </extension>
         <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" specialuse="debugging" supported="vulkan" deprecatedby="VK_EXT_debug_utils">
@@ -14917,8 +16869,9 @@
                 <enum value="10"                                                name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_debug_report&quot;"                   name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
-                <enum alias="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT" comment="Backwards-compatible alias containing a typo"/>
-                <enum offset="1" extends="VkResult" dir="-"                     name="VK_ERROR_VALIDATION_FAILED_EXT"/>
+                <enum alias="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT" deprecated="aliased"/>
+                <enum api="vulkan" offset="1" extends="VkResult" dir="-"        name="VK_ERROR_VALIDATION_FAILED_EXT"/>
+                <enum api="vulkansc" extends="VkResult"                         name="VK_ERROR_VALIDATION_FAILED_EXT" alias="VK_ERROR_VALIDATION_FAILED"/>
                 <enum offset="0" extends="VkObjectType"                         name="VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"/>
                 <type name="VkDebugReportCallbackEXT"/>
                 <type name="PFN_vkDebugReportCallbackEXT"/>
@@ -14930,7 +16883,7 @@
                 <command name="vkDestroyDebugReportCallbackEXT"/>
                 <command name="vkDebugReportMessageEXT"/>
             </require>
-            <require feature="VK_VERSION_1_1">
+            <require depends="VK_VERSION_1_1">
                 <comment>This duplicates definitions in other extensions, below</comment>
                 <enum extends="VkDebugReportObjectTypeEXT" extnumber="157" offset="0"  name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
                 <enum extends="VkDebugReportObjectTypeEXT" extnumber="86"  offset="0"  name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"/>
@@ -14943,18 +16896,18 @@
                 <enum offset="0" extends="VkResult" dir="-"                     name="VK_ERROR_INVALID_SHADER_NV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_depth_range_unrestricted" type="device" number="14" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_depth_range_unrestricted" type="device" number="14" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_depth_range_unrestricted&quot;"       name="VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_sampler_mirror_clamp_to_edge" type="device" number="15" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_sampler_mirror_clamp_to_edge" type="device" number="15" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="3"                                                 name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_sampler_mirror_clamp_to_edge&quot;"   name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME"/>
                 <enum value="4" extends="VkSamplerAddressMode"                  name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated"/>
-                <enum           extends="VkSamplerAddressMode"                  name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR" alias="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Alias introduced for consistency with extension suffixing rules"/>
+                <enum           extends="VkSamplerAddressMode"                  name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR" alias="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"  deprecated="aliased" comment="Introduced for consistency with extension suffixing rules"/>
             </require>
         </extension>
         <extension name="VK_IMG_filter_cubic" number="16" type="device" author="IMG" contact="Tobias Hector @tobski" supported="vulkan">
@@ -15004,7 +16957,7 @@
                 <enum value="&quot;VK_AMD_shader_explicit_vertex_parameter&quot;" name="VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_debug_marker" number="23" type="device" requires="VK_EXT_debug_report" author="Baldur Karlsson" contact="Baldur Karlsson @baldurk" specialuse="debugging" supported="vulkan" promotedto="VK_EXT_debug_utils">
+        <extension name="VK_EXT_debug_marker" number="23" type="device" depends="VK_EXT_debug_report" author="Baldur Karlsson" contact="Baldur Karlsson @baldurk" specialuse="debugging" supported="vulkan" promotedto="VK_EXT_debug_utils">
             <require>
                 <enum value="4"                                                 name="VK_EXT_DEBUG_MARKER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_debug_marker&quot;"                   name="VK_EXT_DEBUG_MARKER_EXTENSION_NAME"/>
@@ -15022,40 +16975,40 @@
                 <command name="vkCmdDebugMarkerInsertEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_video_queue" number="24" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_synchronization2" author="KHR" contact="Tony Zlatinski @tzlatinski" provisional="true" platform="provisional" supported="vulkan" requiresCore="1.1">
+        <extension name="VK_KHR_video_queue" number="24" type="device" depends="VK_VERSION_1_1+VK_KHR_synchronization2" author="KHR" contact="Tony Zlatinski @tzlatinski" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="7"                                         name="VK_KHR_VIDEO_QUEUE_SPEC_VERSION"/>
+                <enum value="8"                                         name="VK_KHR_VIDEO_QUEUE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_video_queue&quot;"            name="VK_KHR_VIDEO_QUEUE_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="7" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="8" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="9" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="10" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="11" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="12" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="13" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="14" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="15" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="16" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR"/>
+                <enum offset="7" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR"/>
+                <enum offset="8" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"/>
+                <enum offset="9" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR"/>
+                <enum offset="10" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"/>
+                <enum offset="11" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR"/>
+                <enum offset="12" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR"/>
+                <enum offset="13" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR"/>
+                <enum offset="14" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"/>
+                <enum offset="15" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"/>
+                <enum offset="16" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR"/>
 
-                <enum offset="0"  extends="VkObjectType"                name="VK_OBJECT_TYPE_VIDEO_SESSION_KHR"             comment="VkVideoSessionKHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1"  extends="VkObjectType"                name="VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"  comment="VkVideoSessionParametersKHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0"  extends="VkObjectType"                name="VK_OBJECT_TYPE_VIDEO_SESSION_KHR"             comment="VkVideoSessionKHR"/>
+                <enum offset="1"  extends="VkObjectType"                name="VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"  comment="VkVideoSessionParametersKHR"/>
 
-                <enum offset="0" extends="VkQueryType"                  name="VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="4" extends="VkQueryResultFlagBits"        name="VK_QUERY_RESULT_WITH_STATUS_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0" extends="VkQueryType"                  name="VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR"/>
+                <enum bitpos="4" extends="VkQueryResultFlagBits"        name="VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"/>
 
-                <enum offset="0" extends="VkResult" dir="-"             name="VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0" extends="VkResult" dir="-"             name="VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR"/>
+                <enum offset="1" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR"/>
+                <enum offset="2" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR"/>
+                <enum offset="3" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR"/>
+                <enum offset="4" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR"/>
+                <enum offset="5" extends="VkResult" dir="-"             name="VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR"/>
 
                 <type name="VkVideoSessionKHR"/>
                 <type name="VkVideoSessionParametersKHR"/>
@@ -15111,28 +17064,28 @@
                 <command name="vkCmdControlVideoCodingKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_video_decode_queue" number="25" type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="jake.beju@amd.com" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_decode_queue" number="25" type="device" depends="VK_KHR_video_queue+VK_KHR_synchronization2" author="KHR" contact="jake.beju@amd.com" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="6"                                         name="VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION"/>
+                <enum value="8"                                         name="VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_video_decode_queue&quot;"     name="VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="5" extends="VkQueueFlagBits"              name="VK_QUEUE_VIDEO_DECODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR"/>
+                <enum bitpos="5" extends="VkQueueFlagBits"              name="VK_QUEUE_VIDEO_DECODE_BIT_KHR"/>
                 <!-- VkPipelineStageFlagBits bitpos="26" is reserved by this extension, but not used -->
-                <enum bitpos="26" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="35" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
-                <enum bitpos="36" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="13" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="14" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="10" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="11" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="12" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="25" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="26" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="0" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="26" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"/>
+                <enum bitpos="35" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"/>
+                <enum bitpos="36" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"/>
+                <enum bitpos="13" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"/>
+                <enum bitpos="14" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"/>
+                <enum bitpos="10" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"/>
+                <enum bitpos="11" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"/>
+                <enum bitpos="12" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"/>
+                <enum bitpos="25" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"/>
+                <enum bitpos="26" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"/>
+                <enum offset="0" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR"/>
+                <enum offset="1" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR"/>
+                <enum offset="2" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR"/>
 
                 <type name="VkVideoDecodeCapabilityFlagBitsKHR"/>
                 <type name="VkVideoDecodeCapabilityFlagsKHR"/>
@@ -15147,9 +17100,9 @@
                 <type name="VkVideoDecodeInfoKHR"/>
                 <command name="vkCmdDecodeVideoKHR"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
-                <enum bitpos="25" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="26" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+            <require depends="VK_KHR_format_feature_flags2">
+                <enum bitpos="25" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"/>
+                <enum bitpos="26" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"/>
             </require>
         </extension>
         <extension name="VK_AMD_gcn_shader" number="26" type="device" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan">
@@ -15176,7 +17129,7 @@
                 <enum value="&quot;VK_EXT_extension_28&quot;"                   name="VK_EXT_EXTENSION_28_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_transform_feedback" number="29" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" specialuse="glemulation,d3demulation,devtools" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
+        <extension name="VK_EXT_transform_feedback" number="29" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" specialuse="glemulation,d3demulation,devtools" supported="vulkan" depends="VK_KHR_get_physical_device_properties2">
             <require>
                 <enum value="1"                                                 name="VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_transform_feedback&quot;"             name="VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME"/>
@@ -15218,8 +17171,6 @@
                 <enum offset="2" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"/>
                 <enum offset="0" extends="VkObjectType"                         name="VK_OBJECT_TYPE_CU_MODULE_NVX"/>
                 <enum offset="1" extends="VkObjectType"                         name="VK_OBJECT_TYPE_CU_FUNCTION_NVX"/>
-                <enum offset="0" extends="VkDebugReportObjectTypeEXT"           name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"/>
-                <enum offset="1" extends="VkDebugReportObjectTypeEXT"           name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"/>
                 <type name="VkCuModuleNVX"/>
                 <type name="VkCuFunctionNVX"/>
                 <type name="VkCuModuleCreateInfoNVX"/>
@@ -15231,6 +17182,10 @@
                 <command name="vkDestroyCuFunctionNVX"/>
                 <command name="vkCmdCuLaunchKernelNVX"/>
             </require>
+            <require depends="VK_EXT_debug_report">
+                <enum offset="0" extends="VkDebugReportObjectTypeEXT"           name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"/>
+                <enum offset="1" extends="VkDebugReportObjectTypeEXT"           name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"/>
+            </require>
         </extension>
         <extension name="VK_NVX_image_view_handle" number="31" type="device" author="NVX" contact="Eric Werness @ewerness-nv" supported="vulkan">
             <require>
@@ -15288,111 +17243,120 @@
                 <enum value="&quot;VK_AMD_shader_ballot&quot;"                  name="VK_AMD_SHADER_BALLOT_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_video_encode_h264" number="39" type="device" requires="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_encode_h264" number="39" type="device" depends="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="9"                                                 name="VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_video_encode_h264&quot;"              name="VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="6" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="7" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="8" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="9" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="10" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="16" extends="VkVideoCodecOperationFlagBitsKHR"    name="VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum value="14"                                                name="VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_video_encode_h264&quot;"              name="VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR"/>
+                <enum offset="2" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR"/>
+                <enum offset="7" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR"/>
+                <enum offset="8" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR"/>
+                <enum offset="9" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR"/>
+                <enum offset="10" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR"/>
+                <enum offset="11" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR"/>
+                <enum offset="12" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR"/>
+                <enum offset="13" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"/>
+                <enum bitpos="16" extends="VkVideoCodecOperationFlagBitsKHR"    name="VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR"/>
 
-                <type name="VkVideoEncodeH264CapabilityFlagBitsEXT"/>
-                <type name="VkVideoEncodeH264CapabilityFlagsEXT"/>
-                <type name="VkVideoEncodeH264InputModeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH264InputModeFlagsEXT"/>
-                <type name="VkVideoEncodeH264OutputModeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH264OutputModeFlagsEXT"/>
-                <type name="VkVideoEncodeH264CapabilitiesEXT"/>
-                <type name="VkVideoEncodeH264SessionParametersCreateInfoEXT"/>
-                <type name="VkVideoEncodeH264SessionParametersAddInfoEXT"/>
-                <type name="VkVideoEncodeH264VclFrameInfoEXT"/>
-                <type name="VkVideoEncodeH264ReferenceListsInfoEXT"/>
-                <type name="VkVideoEncodeH264EmitPictureParametersInfoEXT"/>
-                <type name="VkVideoEncodeH264DpbSlotInfoEXT"/>
-                <type name="VkVideoEncodeH264NaluSliceInfoEXT"/>
-                <type name="VkVideoEncodeH264ProfileInfoEXT"/>
-                <type name="VkVideoEncodeH264RateControlInfoEXT"/>
-                <type name="VkVideoEncodeH264RateControlStructureEXT"/>
-                <type name="VkVideoEncodeH264RateControlLayerInfoEXT"/>
-                <type name="VkVideoEncodeH264QpEXT"/>
-                <type name="VkVideoEncodeH264FrameSizeEXT"/>
+                <type name="VkVideoEncodeH264CapabilityFlagBitsKHR"/>
+                <type name="VkVideoEncodeH264CapabilityFlagsKHR"/>
+                <type name="VkVideoEncodeH264StdFlagBitsKHR"/>
+                <type name="VkVideoEncodeH264StdFlagsKHR"/>
+                <type name="VkVideoEncodeH264CapabilitiesKHR"/>
+                <type name="VkVideoEncodeH264QualityLevelPropertiesKHR"/>
+                <type name="VkVideoEncodeH264SessionCreateInfoKHR"/>
+                <type name="VkVideoEncodeH264SessionParametersCreateInfoKHR"/>
+                <type name="VkVideoEncodeH264SessionParametersAddInfoKHR"/>
+                <type name="VkVideoEncodeH264SessionParametersGetInfoKHR"/>
+                <type name="VkVideoEncodeH264SessionParametersFeedbackInfoKHR"/>
+                <type name="VkVideoEncodeH264PictureInfoKHR"/>
+                <type name="VkVideoEncodeH264DpbSlotInfoKHR"/>
+                <type name="VkVideoEncodeH264NaluSliceInfoKHR"/>
+                <type name="VkVideoEncodeH264ProfileInfoKHR"/>
+                <type name="VkVideoEncodeH264RateControlInfoKHR"/>
+                <type name="VkVideoEncodeH264RateControlFlagBitsKHR"/>
+                <type name="VkVideoEncodeH264RateControlFlagsKHR"/>
+                <type name="VkVideoEncodeH264RateControlLayerInfoKHR"/>
+                <type name="VkVideoEncodeH264QpKHR"/>
+                <type name="VkVideoEncodeH264FrameSizeKHR"/>
+                <type name="VkVideoEncodeH264GopRemainingFrameInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_video_encode_h265" number="40" type="device" requires="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_encode_h265" number="40" type="device" depends="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="9"                                              name="VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_video_encode_h265&quot;"           name="VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="6" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="7" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="8" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="9" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="10" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum value="14"                                             name="VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_video_encode_h265&quot;"           name="VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR"/>
+                <enum offset="2" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR"/>
+                <enum offset="7" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR"/>
+                <enum offset="9" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR"/>
+                <enum offset="10" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR"/>
+                <enum offset="11" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR"/>
+                <enum offset="12" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR"/>
+                <enum offset="13" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR"/>
+                <enum offset="14" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"/>
+                <enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR"/>
 
-                <type name="VkVideoEncodeH265CapabilityFlagBitsEXT"/>
-                <type name="VkVideoEncodeH265CapabilityFlagsEXT"/>
-                <type name="VkVideoEncodeH265InputModeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH265InputModeFlagsEXT"/>
-                <type name="VkVideoEncodeH265OutputModeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH265OutputModeFlagsEXT"/>
-
-                <type name="VkVideoEncodeH265CtbSizeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH265CtbSizeFlagsEXT"/>
-                <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT"/>
-                <type name="VkVideoEncodeH265TransformBlockSizeFlagsEXT"/>
-                <type name="VkVideoEncodeH265CapabilitiesEXT"/>
-                <type name="VkVideoEncodeH265SessionParametersCreateInfoEXT"/>
-                <type name="VkVideoEncodeH265SessionParametersAddInfoEXT"/>
-                <type name="VkVideoEncodeH265VclFrameInfoEXT"/>
-                <type name="VkVideoEncodeH265EmitPictureParametersInfoEXT"/>
-                <type name="VkVideoEncodeH265DpbSlotInfoEXT"/>
-                <type name="VkVideoEncodeH265NaluSliceSegmentInfoEXT"/>
-                <type name="VkVideoEncodeH265ProfileInfoEXT"/>
-                <type name="VkVideoEncodeH265ReferenceListsInfoEXT"/>
-                <type name="VkVideoEncodeH265RateControlInfoEXT"/>
-                <type name="VkVideoEncodeH265RateControlStructureEXT"/>
-                <type name="VkVideoEncodeH265RateControlLayerInfoEXT"/>
-                <type name="VkVideoEncodeH265QpEXT"/>
-                <type name="VkVideoEncodeH265FrameSizeEXT"/>
+                <type name="VkVideoEncodeH265CapabilityFlagBitsKHR"/>
+                <type name="VkVideoEncodeH265CapabilityFlagsKHR"/>
+                <type name="VkVideoEncodeH265StdFlagBitsKHR"/>
+                <type name="VkVideoEncodeH265StdFlagsKHR"/>
+                <type name="VkVideoEncodeH265CtbSizeFlagBitsKHR"/>
+                <type name="VkVideoEncodeH265CtbSizeFlagsKHR"/>
+                <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsKHR"/>
+                <type name="VkVideoEncodeH265TransformBlockSizeFlagsKHR"/>
+                <type name="VkVideoEncodeH265CapabilitiesKHR"/>
+                <type name="VkVideoEncodeH265SessionCreateInfoKHR"/>
+                <type name="VkVideoEncodeH265QualityLevelPropertiesKHR"/>
+                <type name="VkVideoEncodeH265SessionParametersCreateInfoKHR"/>
+                <type name="VkVideoEncodeH265SessionParametersAddInfoKHR"/>
+                <type name="VkVideoEncodeH265SessionParametersGetInfoKHR"/>
+                <type name="VkVideoEncodeH265SessionParametersFeedbackInfoKHR"/>
+                <type name="VkVideoEncodeH265PictureInfoKHR"/>
+                <type name="VkVideoEncodeH265DpbSlotInfoKHR"/>
+                <type name="VkVideoEncodeH265NaluSliceSegmentInfoKHR"/>
+                <type name="VkVideoEncodeH265ProfileInfoKHR"/>
+                <type name="VkVideoEncodeH265RateControlInfoKHR"/>
+                <type name="VkVideoEncodeH265RateControlFlagBitsKHR"/>
+                <type name="VkVideoEncodeH265RateControlFlagsKHR"/>
+                <type name="VkVideoEncodeH265RateControlLayerInfoKHR"/>
+                <type name="VkVideoEncodeH265QpKHR"/>
+                <type name="VkVideoEncodeH265FrameSizeKHR"/>
+                <type name="VkVideoEncodeH265GopRemainingFrameInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_video_decode_h264" number="41" type="device" requires="VK_KHR_video_decode_queue" author="KHR" contact="peter.fang@amd.com" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_decode_h264" number="41" type="device" depends="VK_KHR_video_decode_queue" author="KHR" contact="peter.fang@amd.com" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="7"                                              name="VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_video_decode_h264&quot;"           name="VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="6" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="0" extends="VkVideoCodecOperationFlagBitsKHR"  name="VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <type name="VkVideoDecodeH264PictureLayoutFlagBitsEXT"/>
-                <type name="VkVideoDecodeH264PictureLayoutFlagsEXT"/>
-                <type name="VkVideoDecodeH264ProfileInfoEXT"/>
-                <type name="VkVideoDecodeH264CapabilitiesEXT"/>
-                <type name="VkVideoDecodeH264SessionParametersCreateInfoEXT"/>
-                <type name="VkVideoDecodeH264SessionParametersAddInfoEXT"/>
-                <type name="VkVideoDecodeH264PictureInfoEXT"/>
-                <type name="VkVideoDecodeH264DpbSlotInfoEXT"/>
+                <enum value="9"                                              name="VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_video_decode_h264&quot;"           name="VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR"/>
+                <enum bitpos="0" extends="VkVideoCodecOperationFlagBitsKHR"  name="VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR"/>
+                <type name="VkVideoDecodeH264PictureLayoutFlagBitsKHR"/>
+                <type name="VkVideoDecodeH264PictureLayoutFlagsKHR"/>
+                <type name="VkVideoDecodeH264ProfileInfoKHR"/>
+                <type name="VkVideoDecodeH264CapabilitiesKHR"/>
+                <type name="VkVideoDecodeH264SessionParametersCreateInfoKHR"/>
+                <type name="VkVideoDecodeH264SessionParametersAddInfoKHR"/>
+                <type name="VkVideoDecodeH264PictureInfoKHR"/>
+                <type name="VkVideoDecodeH264DpbSlotInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_AMD_texture_gather_bias_lod" number="42" author="AMD" contact="Rex Xu @amdrexu" supported="vulkan" type="device" requires="VK_KHR_get_physical_device_properties2">
+        <extension name="VK_AMD_texture_gather_bias_lod" number="42" author="AMD" contact="Rex Xu @amdrexu" supported="vulkan" type="device" depends="VK_KHR_get_physical_device_properties2">
             <require>
                 <enum value="1"                                                 name="VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_texture_gather_bias_lod&quot;"        name="VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME"/>
@@ -15416,7 +17380,7 @@
                 <enum value="&quot;VK_AMD_extension_44&quot;"                   name="VK_AMD_EXTENSION_44_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_dynamic_rendering" number="45" author="KHR" type="device" requires="VK_KHR_depth_stencil_resolve,VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_dynamic_rendering" number="45" author="KHR" type="device" depends="VK_KHR_depth_stencil_resolve+VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_dynamic_rendering&quot;"              name="VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME"/>
@@ -15436,27 +17400,27 @@
                 <type name="VkRenderingFlagsKHR"/>
                 <type name="VkRenderingFlagBitsKHR"/>
             </require>
-            <require extension="VK_KHR_fragment_shading_rate">
+            <require depends="VK_KHR_fragment_shading_rate">
                 <enum bitpos="21" extends="VkPipelineCreateFlagBits"                name="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
-                <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" deprecated="aliased"/>
                 <enum offset="6" extends="VkStructureType" extnumber="45"           name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"/>
                 <type name="VkRenderingFragmentShadingRateAttachmentInfoKHR"/>
             </require>
-            <require extension="VK_EXT_fragment_density_map">
+            <require depends="VK_EXT_fragment_density_map">
                 <enum bitpos="22" extends="VkPipelineCreateFlagBits"                name="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"/>
-                <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" deprecated="aliased"/>
                 <enum offset="7" extends="VkStructureType" extnumber="45"           name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"/>
                 <type name="VkRenderingFragmentDensityMapAttachmentInfoEXT"/>
             </require>
-            <require extension="VK_AMD_mixed_attachment_samples">
+            <require depends="VK_AMD_mixed_attachment_samples">
                 <enum offset="8" extends="VkStructureType" extnumber="45"           name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
                 <type name="VkAttachmentSampleCountInfoAMD"/>
             </require>
-            <require extension="VK_NV_framebuffer_mixed_samples">
+            <require depends="VK_NV_framebuffer_mixed_samples">
                 <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV" alias="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
                 <type name="VkAttachmentSampleCountInfoNV"/>
             </require>
-            <require extension="VK_NVX_multiview_per_view_attributes">
+            <require depends="VK_NVX_multiview_per_view_attributes">
                 <enum offset="9" extends="VkStructureType" extnumber="45"           name="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"/>
                 <type name="VkMultiviewPerViewAttributesInfoNVX"/>
             </require>
@@ -15485,7 +17449,7 @@
                 <enum value="&quot;VK_GOOGLE_extension_49&quot;"                name="VK_GOOGLE_EXTENSION_49_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_GGP_stream_descriptor_surface" number="50" type="instance" requires="VK_KHR_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
+        <extension name="VK_GGP_stream_descriptor_surface" number="50" type="instance" depends="VK_KHR_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_GGP_stream_descriptor_surface&quot;"      name="VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME"/>
@@ -15495,7 +17459,7 @@
                 <command name="vkCreateStreamDescriptorSurfaceGGP"/>
             </require>
         </extension>
-        <extension name="VK_NV_corner_sampled_image" number="51" author="NV" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Daniel Koch @dgkoch" supported="vulkan">
+        <extension name="VK_NV_corner_sampled_image" number="51" author="NV" type="device" depends="VK_KHR_get_physical_device_properties2" contact="Daniel Koch @dgkoch" supported="vulkan">
             <require>
                 <enum value="2"                                                 name="VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_corner_sampled_image&quot;"            name="VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME"/>
@@ -15504,10 +17468,11 @@
                 <type name="VkPhysicalDeviceCornerSampledImageFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_52" number="52" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_NV_private_vendor_info" number="52" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkansc">
             <require>
-                <enum value="0"                                                 name="VK_NV_EXTENSION_52_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_52&quot;"                    name="VK_NV_EXTENSION_52_EXTENSION_NAME"/>
+                <enum value="2"                                                 name="VK_NV_PRIVATE_VENDOR_INFO_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_private_vendor_info&quot;"             name="VK_NV_PRIVATE_VENDOR_INFO_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PRIVATE_VENDOR_INFO_PLACEHOLDER_OFFSET_0_NV"/>
             </require>
         </extension>
         <extension name="VK_NV_extension_53" number="53" author="NV" contact="Jeff Bolz @jeffbolznv" supported="disabled">
@@ -15516,7 +17481,7 @@
                 <enum value="&quot;VK_NV_extension_53&quot;"                    name="VK_NV_EXTENSION_53_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_multiview" number="54" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_multiview" number="54" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_MULTIVIEW_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_multiview&quot;"                      name="VK_KHR_MULTIVIEW_EXTENSION_NAME"/>
@@ -15555,7 +17520,7 @@
                 <command name="vkGetPhysicalDeviceExternalImageFormatPropertiesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_external_memory" number="57" type="device" requires="VK_NV_external_memory_capabilities" author="NV" contact="James Jones @cubanismo" supported="vulkan" deprecatedby="VK_KHR_external_memory">
+        <extension name="VK_NV_external_memory" number="57" type="device" depends="VK_NV_external_memory_capabilities" author="NV" contact="James Jones @cubanismo" supported="vulkan" deprecatedby="VK_KHR_external_memory">
             <require>
                 <enum value="1"                                                 name="VK_NV_EXTERNAL_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_external_memory&quot;"                 name="VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME"/>
@@ -15565,7 +17530,7 @@
                 <type name="VkExportMemoryAllocateInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_external_memory_win32" number="58" type="device" requires="VK_NV_external_memory" author="NV" contact="James Jones @cubanismo" platform="win32" supported="vulkan" deprecatedby="VK_KHR_external_memory_win32">
+        <extension name="VK_NV_external_memory_win32" number="58" type="device" depends="VK_NV_external_memory" author="NV" contact="James Jones @cubanismo" platform="win32" supported="vulkan" deprecatedby="VK_KHR_external_memory_win32">
             <require>
                 <enum value="1"                                                 name="VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_external_memory_win32&quot;"           name="VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/>
@@ -15576,7 +17541,7 @@
                 <command name="vkGetMemoryWin32HandleNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_win32_keyed_mutex" number="59" type="device" requires="VK_NV_external_memory_win32" author="NV" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan" promotedto="VK_KHR_win32_keyed_mutex">
+        <extension name="VK_NV_win32_keyed_mutex" number="59" type="device" depends="VK_NV_external_memory_win32" author="NV" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan" promotedto="VK_KHR_win32_keyed_mutex">
             <require>
                 <enum value="2"                                                 name="VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_win32_keyed_mutex&quot;"               name="VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME"/>
@@ -15584,7 +17549,7 @@
                 <type name="VkWin32KeyedMutexAcquireReleaseInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_get_physical_device_properties2" number="60" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_get_physical_device_properties2" number="60" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="2"                                                 name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_get_physical_device_properties2&quot;" name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"/>
@@ -15615,7 +17580,7 @@
                 <command name="vkGetPhysicalDeviceSparseImageFormatProperties2KHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_device_group" number="61" type="device" author="KHR" requires="VK_KHR_device_group_creation" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_device_group" number="61" type="device" author="KHR" depends="VK_KHR_device_group_creation" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="4"                                                 name="VK_KHR_DEVICE_GROUP_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_device_group&quot;"                   name="VK_KHR_DEVICE_GROUP_EXTENSION_NAME"/>
@@ -15645,14 +17610,14 @@
                 <enum extends="VkPipelineCreateFlagBits"                        name="VK_PIPELINE_CREATE_DISPATCH_BASE_KHR" alias="VK_PIPELINE_CREATE_DISPATCH_BASE"/>
                 <enum extends="VkDependencyFlagBits"                            name="VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR" alias="VK_DEPENDENCY_DEVICE_GROUP_BIT"/>
             </require>
-            <require extension="VK_KHR_bind_memory2">
+            <require depends="VK_KHR_bind_memory2">
                 <enum extends="VkStructureType"                                 name="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"/>
                 <enum extends="VkStructureType"                                 name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"/>
                 <type name="VkBindBufferMemoryDeviceGroupInfoKHR"/>
                 <type name="VkBindImageMemoryDeviceGroupInfoKHR"/>
                 <enum extends="VkImageCreateFlagBits"                           name="VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" alias="VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"/>
             </require>
-            <require extension="VK_KHR_surface">
+            <require depends="VK_KHR_surface">
                 <enum offset="7" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"/>
                 <type name="VkDeviceGroupPresentModeFlagBitsKHR"/>
                 <type name="VkDeviceGroupPresentModeFlagsKHR"/>
@@ -15661,7 +17626,7 @@
                 <command name="vkGetDeviceGroupSurfacePresentModesKHR"/>
                 <command name="vkGetPhysicalDevicePresentRectanglesKHR"/>
             </require>
-            <require extension="VK_KHR_swapchain">
+            <require depends="VK_KHR_swapchain">
                 <enum offset="8" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"/>
                 <enum offset="9" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"/>
                 <enum offset="10" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"/>
@@ -15676,16 +17641,16 @@
                 <command name="vkAcquireNextImage2KHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_validation_flags" number="62" type="instance" author="GOOGLE" contact="Tobin Ehlis @tobine" specialuse="debugging" supported="vulkan" deprecatedby="VK_EXT_validation_features">
+        <extension name="VK_EXT_validation_flags" number="62" type="instance" author="GOOGLE" contact="Tobin Ehlis @tobine" specialuse="debugging" supported="vulkan" deprecatedby="VK_EXT_layer_settings">
             <require>
-                <enum value="2"                                                 name="VK_EXT_VALIDATION_FLAGS_SPEC_VERSION"/>
+                <enum value="3"                                                 name="VK_EXT_VALIDATION_FLAGS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_validation_flags&quot;"               name="VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"/>
                 <type name="VkValidationFlagsEXT"/>
                 <type name="VkValidationCheckEXT"/>
             </require>
         </extension>
-        <extension name="VK_NN_vi_surface" number="63" type="instance" author="NN" contact="Mathias Heyer gitlab:@mheyer" requires="VK_KHR_surface" platform="vi" supported="vulkan">
+        <extension name="VK_NN_vi_surface" number="63" type="instance" author="NN" contact="Mathias Heyer gitlab:@mheyer" depends="VK_KHR_surface" platform="vi" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_NN_VI_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_NN_vi_surface&quot;"                      name="VK_NN_VI_SURFACE_EXTENSION_NAME"/>
@@ -15695,7 +17660,7 @@
                 <command name="vkCreateViSurfaceNN"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_draw_parameters" number="64" type="device" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_shader_draw_parameters" number="64" type="device" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_draw_parameters&quot;"         name="VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME"/>
@@ -15713,7 +17678,7 @@
                 <enum value="&quot;VK_EXT_shader_subgroup_vote&quot;"           name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                                 name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_texture_compression_astc_hdr&quot;"   name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME"/>
@@ -15735,7 +17700,7 @@
                 <enum extends="VkFormat"                                        name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK"/>
             </require>
         </extension>
-        <extension name="VK_EXT_astc_decode_mode" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan">
+        <extension name="VK_EXT_astc_decode_mode" number="68" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_astc_decode_mode&quot;"               name="VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME"/>
@@ -15745,7 +17710,7 @@
                 <type name="VkPhysicalDeviceASTCDecodeFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pipeline_robustness" requires="VK_KHR_get_physical_device_properties2" number="69" type="device" author="IMG" contact="Jarred Davies" supported="vulkan">
+        <extension name="VK_EXT_pipeline_robustness" depends="VK_KHR_get_physical_device_properties2" number="69" type="device" author="IMG" contact="Jarred Davies" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pipeline_robustness&quot;"            name="VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME"/>
@@ -15759,12 +17724,12 @@
                 <type name="VkPipelineRobustnessImageBehaviorEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_maintenance1" number="70" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_maintenance1" number="70" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="2"                                                 name="VK_KHR_MAINTENANCE_1_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_maintenance1&quot;"                   name="VK_KHR_MAINTENANCE_1_EXTENSION_NAME"/>
-                <enum alias="VK_KHR_MAINTENANCE_1_SPEC_VERSION"                 name="VK_KHR_MAINTENANCE1_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
-                <enum alias="VK_KHR_MAINTENANCE_1_EXTENSION_NAME"               name="VK_KHR_MAINTENANCE1_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_KHR_MAINTENANCE_1_SPEC_VERSION"                 name="VK_KHR_MAINTENANCE1_SPEC_VERSION" deprecated="aliased"/>
+                <enum alias="VK_KHR_MAINTENANCE_1_EXTENSION_NAME"               name="VK_KHR_MAINTENANCE1_EXTENSION_NAME" deprecated="aliased"/>
                 <enum extends="VkResult"                                        name="VK_ERROR_OUT_OF_POOL_MEMORY_KHR" alias="VK_ERROR_OUT_OF_POOL_MEMORY"/>
                 <enum extends="VkFormatFeatureFlagBits"                         name="VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR" alias="VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"/>
                 <enum extends="VkFormatFeatureFlagBits"                         name="VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" alias="VK_FORMAT_FEATURE_TRANSFER_DST_BIT"/>
@@ -15773,7 +17738,7 @@
                 <command name="vkTrimCommandPoolKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_device_group_creation" number="71" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_device_group_creation" number="71" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_device_group_creation&quot;"          name="VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME"/>
@@ -15786,7 +17751,7 @@
                 <enum extends="VkMemoryHeapFlagBits"                            name="VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR" alias="VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_memory_capabilities" number="72" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_memory_capabilities" number="72" type="instance" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_memory_capabilities&quot;"   name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"/>
@@ -15819,7 +17784,7 @@
                 <command name="vkGetPhysicalDeviceExternalBufferPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_memory" number="73" type="device" requires="VK_KHR_external_memory_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_memory" number="73" type="device" depends="VK_KHR_external_memory_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_memory&quot;"                name="VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME"/>
@@ -15833,7 +17798,7 @@
                 <type name="VkExportMemoryAllocateInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_memory_win32" number="74" type="device" requires="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan">
+        <extension name="VK_KHR_external_memory_win32" number="74" type="device" depends="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_memory_win32&quot;"          name="VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/>
@@ -15849,7 +17814,7 @@
                 <command name="vkGetMemoryWin32HandlePropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_memory_fd" number="75" type="device" requires="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_KHR_external_memory_fd" number="75" type="device" depends="VK_KHR_external_memory,VK_VERSION_1_1" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_memory_fd&quot;"             name="VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME"/>
@@ -15863,7 +17828,7 @@
                 <command name="vkGetMemoryFdPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_win32_keyed_mutex" number="76" type="device" requires="VK_KHR_external_memory_win32" author="KHR" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan">
+        <extension name="VK_KHR_win32_keyed_mutex" number="76" type="device" depends="VK_KHR_external_memory_win32" author="KHR" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_win32_keyed_mutex&quot;"              name="VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME"/>
@@ -15871,7 +17836,7 @@
                 <type name="VkWin32KeyedMutexAcquireReleaseInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_semaphore_capabilities" number="77" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_semaphore_capabilities" number="77" type="instance" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_semaphore_capabilities&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME"/>
@@ -15896,7 +17861,7 @@
                 <command name="vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_semaphore" number="78" type="device" requires="VK_KHR_external_semaphore_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_semaphore" number="78" type="device" depends="VK_KHR_external_semaphore_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_semaphore&quot;"         name="VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME"/>
@@ -15907,7 +17872,7 @@
                 <type name="VkExportSemaphoreCreateInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_semaphore_win32" number="79" type="device" requires="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan">
+        <extension name="VK_KHR_external_semaphore_win32" number="79" type="device" depends="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_semaphore_win32&quot;"   name="VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME"/>
@@ -15923,7 +17888,7 @@
                 <command name="vkGetSemaphoreWin32HandleKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_semaphore_fd" number="80" type="device" requires="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_KHR_external_semaphore_fd" number="80" type="device" depends="VK_KHR_external_semaphore,VK_VERSION_1_1" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_semaphore_fd&quot;"      name="VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME"/>
@@ -15935,7 +17900,7 @@
                 <command name="vkGetSemaphoreFdKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_push_descriptor" number="81" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_KHR_push_descriptor" number="81" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="2"                                             name="VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_push_descriptor&quot;"            name="VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME"/>
@@ -15944,16 +17909,16 @@
                 <command name="vkCmdPushDescriptorSetKHR"/>
                 <type name="VkPhysicalDevicePushDescriptorPropertiesKHR"/>
             </require>
-            <require feature="VK_VERSION_1_1">
+            <require depends="VK_VERSION_1_1">
                 <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
                 <enum value="1" extends="VkDescriptorUpdateTemplateType"    name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
             </require>
-            <require extension="VK_KHR_descriptor_update_template">
+            <require depends="VK_KHR_descriptor_update_template">
                 <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
                 <enum value="1" extends="VkDescriptorUpdateTemplateType"    name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
             </require>
         </extension>
-        <extension name="VK_EXT_conditional_rendering" number="82" type="device" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan">
+        <extension name="VK_EXT_conditional_rendering" number="82" type="device" author="NV" contact="Vikram Kushwaha @vkushwaha" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_conditional_rendering&quot;"      name="VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME"/>
@@ -15972,7 +17937,7 @@
                 <type name="VkCommandBufferInheritanceConditionalRenderingInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_float16_int8" number="83" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_shader_float16_int8" number="83" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_float16_int8&quot;"        name="VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME"/>
@@ -15982,7 +17947,7 @@
                 <type name="VkPhysicalDeviceFloat16Int8FeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_16bit_storage" number="84" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" author="KHR" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_16bit_storage" number="84" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class" author="KHR" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_16BIT_STORAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_16bit_storage&quot;"              name="VK_KHR_16BIT_STORAGE_EXTENSION_NAME"/>
@@ -15990,7 +17955,7 @@
                 <type name="VkPhysicalDevice16BitStorageFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_incremental_present" number="85" type="device" author="KHR" requires="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_KHR_incremental_present" number="85" type="device" author="KHR" depends="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_incremental_present&quot;"        name="VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME"/>
@@ -16000,7 +17965,7 @@
                 <type name="VkRectLayerKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_descriptor_update_template&quot;" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME"/>
@@ -16016,11 +17981,11 @@
                 <type name="VkDescriptorUpdateTemplateCreateInfoKHR"/>
                 <enum extends="VkDescriptorUpdateTemplateType"              name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR" alias="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"/>
             </require>
-            <require extension="VK_KHR_push_descriptor">
+            <require depends="VK_KHR_push_descriptor">
                 <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
                 <enum value="1" extends="VkDescriptorUpdateTemplateType"    name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
             </require>
-            <require extension="VK_EXT_debug_report">
+            <require depends="VK_EXT_debug_report">
                 <enum extends="VkDebugReportObjectTypeEXT"                  name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"/>
             </require>
         </extension>
@@ -16041,14 +18006,14 @@
                 <command name="vkCmdSetViewportWScalingNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_direct_mode_display" number="89" type="instance" requires="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_EXT_direct_mode_display" number="89" type="instance" depends="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_direct_mode_display&quot;"        name="VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME"/>
                 <command name="vkReleaseDisplayEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_acquire_xlib_display" number="90" type="instance" requires="VK_EXT_direct_mode_display" author="NV" contact="James Jones @cubanismo" platform="xlib_xrandr" supported="vulkan">
+        <extension name="VK_EXT_acquire_xlib_display" number="90" type="instance" depends="VK_EXT_direct_mode_display" author="NV" contact="James Jones @cubanismo" platform="xlib_xrandr" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_acquire_xlib_display&quot;"       name="VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME"/>
@@ -16056,19 +18021,19 @@
                 <command name="vkGetRandROutputDisplayEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_display_surface_counter" number="91" type="instance" requires="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_EXT_display_surface_counter" number="91" type="instance" depends="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_display_surface_counter&quot;"    name="VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME"/>
                 <enum offset="0"                                           extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"/>
-                <enum alias="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT" comment="Backwards-compatible alias containing a typo"/>
+                <enum api="vulkan" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT" alias="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" deprecated="aliased"/>
                 <type name="VkSurfaceCounterFlagsEXT"/>
                 <type name="VkSurfaceCounterFlagBitsEXT"/>
                 <type name="VkSurfaceCapabilities2EXT"/>
                 <command name="vkGetPhysicalDeviceSurfaceCapabilities2EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_display_control" number="92" type="device" requires="VK_EXT_display_surface_counter,VK_KHR_swapchain" author="NV" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_EXT_display_control" number="92" type="device" depends="VK_EXT_display_surface_counter+VK_KHR_swapchain" author="NV" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_DISPLAY_CONTROL_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_display_control&quot;"            name="VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME"/>
@@ -16089,7 +18054,7 @@
                 <command name="vkGetSwapchainCounterEXT"/>
             </require>
         </extension>
-        <extension name="VK_GOOGLE_display_timing" number="93" type="device" author="GOOGLE" requires="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan">
+        <extension name="VK_GOOGLE_display_timing" number="93" type="device" author="GOOGLE" depends="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_display_timing&quot;"          name="VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME"/>
@@ -16129,11 +18094,11 @@
             <require>
                 <enum value="1"                                             name="VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_viewport_array2&quot;"             name="VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME"/>
-                <enum alias="VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION"           name="VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
-                <enum alias="VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME"         name="VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION"           name="VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION" deprecated="aliased"/>
+                <enum alias="VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME"         name="VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME" deprecated="aliased"/>
             </require>
         </extension>
-        <extension name="VK_NVX_multiview_per_view_attributes" number="98" type="device" requires="VK_KHR_multiview" author="NVX" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_NVX_multiview_per_view_attributes" number="98" type="device" depends="VK_KHR_multiview" author="NVX" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION"/>
                 <enum value="&quot;VK_NVX_multiview_per_view_attributes&quot;" name="VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME"/>
@@ -16154,18 +18119,22 @@
                 <type name="VkPipelineViewportSwizzleStateCreateFlagsNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_discard_rectangles" number="100" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_discard_rectangles" number="100" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" ratified="vulkan">
             <require>
-                <enum value="1"                                             name="VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"/>
+                <enum value="2"                                             name="VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_discard_rectangles&quot;"         name="VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"/>
                 <enum offset="0" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"/>
+                <enum offset="1" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT"/>
+                <enum offset="2" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT"/>
                 <type name="VkPhysicalDeviceDiscardRectanglePropertiesEXT"/>
                 <type name="VkPipelineDiscardRectangleStateCreateInfoEXT"/>
                 <type name="VkPipelineDiscardRectangleStateCreateFlagsEXT"/>
                 <type name="VkDiscardRectangleModeEXT"/>
                 <command name="vkCmdSetDiscardRectangleEXT"/>
+                <command name="vkCmdSetDiscardRectangleEnableEXT"/>
+                <command name="vkCmdSetDiscardRectangleModeEXT"/>
             </require>
         </extension>
         <extension name="VK_NV_extension_101" number="101" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
@@ -16174,7 +18143,7 @@
                 <enum value="&quot;VK_NV_extension_101&quot;"               name="VK_NV_EXTENSION_101_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_conservative_rasterization" number="102" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_conservative_rasterization" number="102" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_conservative_rasterization&quot;" name="VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME"/>
@@ -16186,7 +18155,7 @@
                 <type name="VkConservativeRasterizationModeEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_depth_clip_enable" number="103" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" specialuse="d3demulation" supported="vulkan">
+        <extension name="VK_EXT_depth_clip_enable" number="103" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" specialuse="d3demulation" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_depth_clip_enable&quot;"          name="VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME"/>
@@ -16201,9 +18170,10 @@
             <require>
                 <enum value="0"                                             name="VK_NV_EXTENSION_104_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_extension_104&quot;"               name="VK_NV_EXTENSION_104_EXTENSION_NAME"/>
+                <enum bitpos="0"  extends="VkPrivateDataSlotCreateFlagBits" name="VK_PRIVATE_DATA_SLOT_CREATE_RESERVED_0_BIT_NV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" requires="VK_KHR_surface" supported="vulkan">
+        <extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" depends="VK_KHR_surface" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan,vulkansc">
             <require>
                 <enum value="4"                                             name="VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_swapchain_colorspace&quot;"       name="VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME"/>
@@ -16221,10 +18191,10 @@
                 <enum offset="12" extends="VkColorSpaceKHR"                 name="VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"/>
                 <enum offset="13" extends="VkColorSpaceKHR"                 name="VK_COLOR_SPACE_PASS_THROUGH_EXT"/>
                 <enum offset="14" extends="VkColorSpaceKHR"                 name="VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"/>
-                <enum extends="VkColorSpaceKHR"                             name="VK_COLOR_SPACE_DCI_P3_LINEAR_EXT" alias="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT" comment="Backwards-compatible alias containing a typo"/>
+                <enum api="vulkan" extends="VkColorSpaceKHR"                name="VK_COLOR_SPACE_DCI_P3_LINEAR_EXT" alias="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT" deprecated="aliased"/>
             </require>
         </extension>
-        <extension name="VK_EXT_hdr_metadata" number="106" type="device" requires="VK_KHR_swapchain" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan">
+        <extension name="VK_EXT_hdr_metadata" number="106" type="device" depends="VK_KHR_swapchain" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_HDR_METADATA_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_hdr_metadata&quot;"               name="VK_EXT_HDR_METADATA_EXTENSION_NAME"/>
@@ -16246,7 +18216,7 @@
                 <enum value="&quot;VK_IMG_extension_108&quot;"              name="VK_IMG_EXTENSION_108_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_imageless_framebuffer" requires="VK_KHR_maintenance2,VK_KHR_image_format_list" number="109" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_imageless_framebuffer" depends="VK_KHR_maintenance2+VK_KHR_image_format_list+VK_KHR_get_physical_device_properties2" number="109" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_imageless_framebuffer&quot;"      name="VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME"/>
@@ -16261,7 +18231,7 @@
                 <enum extends="VkFramebufferCreateFlagBits"                 name="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR" alias="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_create_renderpass2" requires="VK_KHR_multiview,VK_KHR_maintenance2" number="110" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_create_renderpass2" depends="VK_KHR_multiview+VK_KHR_maintenance2" number="110" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_create_renderpass2&quot;"         name="VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME"/>
@@ -16285,13 +18255,15 @@
                 <type name="VkSubpassEndInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_IMG_extension_111" number="111" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
+        <extension name="VK_IMG_relaxed_line_rasterization" number="111" type="device" depends="(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="IMG" contact="James Fitzpatrick @jamesfitzpatrick" supported="vulkan" specialuse="glemulation">
             <require>
-                <enum value="0"                                             name="VK_IMG_EXTENSION_111_SPEC_VERSION"/>
-                <enum value="&quot;VK_IMG_extension_111&quot;"              name="VK_IMG_EXTENSION_111_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION"/>
+                <enum value="&quot;VK_IMG_relaxed_line_rasterization&quot;" name="VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"/>
+                <type name="VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shared_presentable_image" number="112" type="device" requires="VK_KHR_swapchain,VK_KHR_get_physical_device_properties2,VK_KHR_get_surface_capabilities2" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan">
+        <extension name="VK_KHR_shared_presentable_image" number="112" type="device" depends="VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shared_presentable_image&quot;"   name="VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME"/>
@@ -16303,7 +18275,7 @@
                 <command name="vkGetSwapchainStatusKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_fence_capabilities" number="113" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_fence_capabilities" number="113" type="instance" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_fence_capabilities&quot;" name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME"/>
@@ -16327,7 +18299,7 @@
                 <command name="vkGetPhysicalDeviceExternalFencePropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_fence" number="114" type="device" requires="VK_KHR_external_fence_capabilities" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_external_fence" number="114" type="device" depends="VK_KHR_external_fence_capabilities" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_FENCE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_fence&quot;"             name="VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME"/>
@@ -16338,7 +18310,7 @@
                 <type name="VkExportFenceCreateInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_fence_win32" number="115" type="device" requires="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" platform="win32" supported="vulkan">
+        <extension name="VK_KHR_external_fence_win32" number="115" type="device" depends="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" platform="win32" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_fence_win32&quot;"       name="VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME"/>
@@ -16352,7 +18324,7 @@
                 <command name="vkGetFenceWin32HandleKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_fence_fd" number="116" type="device" requires="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" supported="vulkan">
+        <extension name="VK_KHR_external_fence_fd" number="116" type="device" depends="VK_KHR_external_fence,VK_VERSION_1_1" author="KHR" contact="Jesse Hall @critsec" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_fence_fd&quot;"          name="VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME"/>
@@ -16364,7 +18336,7 @@
                 <command name="vkGetFenceFdKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_performance_query" number="117" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alon Or-bach @alonorbach" specialuse="devtools" supported="vulkan">
+        <extension name="VK_KHR_performance_query" number="117" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="KHR" contact="Alon Or-bach @alonorbach" specialuse="devtools" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                    name="VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_performance_query&quot;" name="VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME"/>
@@ -16396,13 +18368,17 @@
                 <command name="vkAcquireProfilingLockKHR"/>
                 <command name="vkReleaseProfilingLockKHR"/>
             </require>
+            <require depends="VKSC_VERSION_1_0" api="vulkansc">
+                <enum offset="7" extends="VkStructureType"         name="VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR"/>
+                <type name="VkPerformanceQueryReservationInfoKHR"/>
+            </require>
         </extension>
-        <extension name="VK_KHR_maintenance2" number="118" type="device" author="KHR" contact="Michael Worcester @michaelworcester" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_maintenance2" number="118" type="device" author="KHR" contact="Michael Worcester @michaelworcester" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_MAINTENANCE_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_maintenance2&quot;"               name="VK_KHR_MAINTENANCE_2_EXTENSION_NAME"/>
-                <enum alias="VK_KHR_MAINTENANCE_2_SPEC_VERSION"             name="VK_KHR_MAINTENANCE2_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
-                <enum alias="VK_KHR_MAINTENANCE_2_EXTENSION_NAME"           name="VK_KHR_MAINTENANCE2_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_KHR_MAINTENANCE_2_SPEC_VERSION"             name="VK_KHR_MAINTENANCE2_SPEC_VERSION" deprecated="aliased"/>
+                <enum alias="VK_KHR_MAINTENANCE_2_EXTENSION_NAME"           name="VK_KHR_MAINTENANCE2_EXTENSION_NAME" deprecated="aliased"/>
                 <enum extends="VkImageCreateFlagBits"                       name="VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR" alias="VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"/>
                 <enum extends="VkImageCreateFlagBits"                       name="VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR" alias="VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"/>
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"/>
@@ -16430,7 +18406,7 @@
                 <enum value="&quot;VK_KHR_extension_119&quot;"              name="VK_KHR_EXTENSION_119_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_get_surface_capabilities2" number="120" type="instance" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_KHR_get_surface_capabilities2" number="120" type="instance" depends="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_get_surface_capabilities2&quot;"  name="VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME"/>
@@ -16444,7 +18420,7 @@
                 <command name="vkGetPhysicalDeviceSurfaceFormats2KHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_variable_pointers" number="121" type="device" author="KHR" contact="Jesse Hall @critsec" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_variable_pointers" number="121" type="device" author="KHR" contact="Jesse Hall @critsec" depends="VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_VARIABLE_POINTERS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_variable_pointers&quot;"          name="VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME"/>
@@ -16454,7 +18430,7 @@
                 <type name="VkPhysicalDeviceVariablePointersFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_get_display_properties2" number="122" type="instance" requires="VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_KHR_get_display_properties2" number="122" type="instance" depends="VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_get_display_properties2&quot;"    name="VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME"/>
@@ -16474,7 +18450,7 @@
                 <command name="vkGetDisplayPlaneCapabilities2KHR"/>
             </require>
         </extension>
-        <extension name="VK_MVK_ios_surface" number="123" type="instance" requires="VK_KHR_surface" platform="ios" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
+        <extension name="VK_MVK_ios_surface" number="123" type="instance" depends="VK_KHR_surface" platform="ios" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
             <require>
                 <enum value="3"                                             name="VK_MVK_IOS_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_MVK_ios_surface&quot;"                name="VK_MVK_IOS_SURFACE_EXTENSION_NAME"/>
@@ -16484,7 +18460,7 @@
                 <command name="vkCreateIOSSurfaceMVK"/>
             </require>
         </extension>
-        <extension name="VK_MVK_macos_surface" number="124" type="instance" requires="VK_KHR_surface" platform="macos" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
+        <extension name="VK_MVK_macos_surface" number="124" type="instance" depends="VK_KHR_surface" platform="macos" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
             <require>
                 <enum value="3"                                             name="VK_MVK_MACOS_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_MVK_macos_surface&quot;"              name="VK_MVK_MACOS_SURFACE_EXTENSION_NAME"/>
@@ -16500,21 +18476,21 @@
                 <enum value="&quot;VK_MVK_moltenvk&quot;"                   name="VK_MVK_MOLTENVK_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_external_memory_dma_buf" number="126" type="device" requires="VK_KHR_external_memory_fd" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
+        <extension name="VK_EXT_external_memory_dma_buf" number="126" type="device" depends="VK_KHR_external_memory_fd" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_external_memory_dma_buf&quot;"    name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME"/>
                 <enum bitpos="9" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" requires="VK_KHR_external_memory" contact="Chad Versace @chadversary" supported="vulkan">
+        <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_queue_family_foreign&quot;"       name="VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME"/>
                 <enum                                                       name="VK_QUEUE_FAMILY_FOREIGN_EXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_dedicated_allocation" number="128" type="device" author="KHR" requires="VK_KHR_get_memory_requirements2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_dedicated_allocation" number="128" type="device" author="KHR" depends="VK_KHR_get_memory_requirements2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="3"                                             name="VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_dedicated_allocation&quot;"       name="VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME"/>
@@ -16524,7 +18500,7 @@
                 <type name="VkMemoryDedicatedAllocateInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_debug_utils" number="129" type="instance" author="EXT" contact="Mark Young @marky-lunarg" specialuse="debugging" supported="vulkan">
+        <extension name="VK_EXT_debug_utils" number="129" type="instance" author="EXT" contact="Mark Young @marky-lunarg" specialuse="debugging" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_DEBUG_UTILS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_debug_utils&quot;"                name="VK_EXT_DEBUG_UTILS_EXTENSION_NAME"/>
@@ -16560,7 +18536,7 @@
                 <command name="vkSubmitDebugUtilsMessageEXT"/>
             </require>
         </extension>
-        <extension name="VK_ANDROID_external_memory_android_hardware_buffer" number="130" type="device" author="ANDROID" requires="VK_KHR_sampler_ycbcr_conversion,VK_KHR_external_memory,VK_EXT_queue_family_foreign,VK_KHR_dedicated_allocation" platform="android" contact="Jesse Hall @critsec" supported="vulkan">
+        <extension name="VK_ANDROID_external_memory_android_hardware_buffer" number="130" type="device" author="ANDROID" depends="VK_KHR_sampler_ycbcr_conversion+VK_KHR_external_memory+VK_EXT_queue_family_foreign+VK_KHR_dedicated_allocation" platform="android" contact="Jesse Hall @critsec" supported="vulkan">
             <require>
                 <enum value="5"                                             name="VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION"/>
                 <enum value="&quot;VK_ANDROID_external_memory_android_hardware_buffer&quot;" name="VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME"/>
@@ -16581,12 +18557,12 @@
                 <command name="vkGetMemoryAndroidHardwareBufferANDROID"/>
                 <type name="AHardwareBuffer"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <type name="VkAndroidHardwareBufferFormatProperties2ANDROID"/>
                 <enum offset="6" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"/>
             </require>
         </extension>
-        <extension name="VK_EXT_sampler_filter_minmax" number="131" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_EXT_sampler_filter_minmax" number="131" type="device" author="NV" depends="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
             <require>
                 <enum value="2"                                             name="VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_sampler_filter_minmax&quot;"      name="VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME"/>
@@ -16601,7 +18577,7 @@
                 <type name="VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_storage_buffer_storage_class" number="132" type="device" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_storage_buffer_storage_class" number="132" type="device" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_storage_buffer_storage_class&quot;" name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME"/>
@@ -16619,17 +18595,50 @@
                 <enum value="&quot;VK_AMD_extension_134&quot;"              name="VK_AMD_EXTENSION_134_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_AMD_extension_135" number="135" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
+        <extension name="VK_AMDX_shader_enqueue" number="135" author="AMD" depends="VK_KHR_get_physical_device_properties2+VK_KHR_synchronization2+VK_KHR_pipeline_library+VK_KHR_spirv_1_4" type="device" contact="Tobias Hector @tobski" provisional="true" platform="provisional" supported="vulkan">
             <require>
-                <enum value="0"                                             name="VK_AMD_EXTENSION_135_SPEC_VERSION"/>
-                <enum value="&quot;VK_AMD_extension_135&quot;"              name="VK_AMD_EXTENSION_135_EXTENSION_NAME"/>
-                <enum bitpos="25" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_25_BIT_AMD"/>
+                <enum value="1"                                             name="VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION"/>
+                <enum value="&quot;VK_AMDX_shader_enqueue&quot;"             name="VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME"/>
+                <enum                                                       name="VK_SHADER_INDEX_UNUSED_AMDX"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="25" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0" extends="VkPipelineBindPoint"              name="VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <type name="VkPhysicalDeviceShaderEnqueueFeaturesAMDX"/>
+                <type name="VkPhysicalDeviceShaderEnqueuePropertiesAMDX"/>
+                <type name="VkExecutionGraphPipelineScratchSizeAMDX"/>
+                <type name="VkExecutionGraphPipelineCreateInfoAMDX"/>
+                <type name="VkDispatchGraphInfoAMDX"/>
+                <type name="VkDispatchGraphCountInfoAMDX"/>
+                <type name="VkPipelineShaderStageNodeCreateInfoAMDX"/>
+                <type name="VkDeviceOrHostAddressConstAMDX"/>
+                <command name="vkCreateExecutionGraphPipelinesAMDX"/>
+                <command name="vkGetExecutionGraphPipelineScratchSizeAMDX"/>
+                <command name="vkGetExecutionGraphPipelineNodeIndexAMDX"/>
+                <command name="vkCmdInitializeGraphScratchMemoryAMDX"/>
+                <command name="vkCmdDispatchGraphAMDX"/>
+                <command name="vkCmdDispatchGraphIndirectAMDX"/>
+                <command name="vkCmdDispatchGraphIndirectCountAMDX"/>
+            </require>
+            <require depends="VK_KHR_maintenance5">
+                <enum bitpos="25" extends="VkBufferUsageFlagBits2KHR"       name="VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"/>
             </require>
         </extension>
-        <extension name="VK_AMD_extension_136" number="136" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
+        <extension name="VK_KHR_extension_136" number="136" type="device" author="KHR" contact="Tobias Hector @tobski" supported="disabled">
             <require>
-                <enum value="0"                                             name="VK_AMD_EXTENSION_136_SPEC_VERSION"/>
-                <enum value="&quot;VK_AMD_extension_136&quot;"              name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_136_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_136&quot;"              name="VK_KHR_EXTENSION_136_EXTENSION_NAME"/>
+                <enum bitpos="28" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_28_BIT_KHR"/>
+                <enum bitpos="29" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_29_BIT_KHR"/>
+                <enum bitpos="30" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_30_BIT_KHR"/>
+            </require>
+            <require depends="VK_KHR_maintenance5">
+                <enum bitpos="28" extends="VkBufferUsageFlagBits2KHR"       name="VK_BUFFER_USAGE_2_RESERVED_28_BIT_KHR"/>
+                <enum bitpos="29" extends="VkBufferUsageFlagBits2KHR"       name="VK_BUFFER_USAGE_2_RESERVED_29_BIT_KHR"/>
+                <enum bitpos="30" extends="VkBufferUsageFlagBits2KHR"       name="VK_BUFFER_USAGE_2_RESERVED_30_BIT_KHR"/>
             </require>
         </extension>
         <extension name="VK_AMD_mixed_attachment_samples" number="137" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
@@ -16644,7 +18653,7 @@
                 <enum value="&quot;VK_AMD_shader_fragment_mask&quot;"       name="VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_inline_uniform_block" number="139" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2,VK_KHR_maintenance1" contact="Daniel Rakos @aqnuep" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_inline_uniform_block" number="139" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1" contact="Daniel Rakos @aqnuep" supported="vulkan" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_inline_uniform_block&quot;"       name="VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME"/>
@@ -16665,7 +18674,7 @@
                 <enum value="&quot;VK_AMD_extension_140&quot;"              name="VK_AMD_EXTENSION_140_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_stencil_export" number="141" type="device" author="EXT" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan">
+        <extension name="VK_EXT_shader_stencil_export" number="141" type="device" author="EXT" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_stencil_export&quot;"      name="VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME"/>
@@ -16683,7 +18692,7 @@
                 <enum value="&quot;VK_AMD_extension_143&quot;"              name="VK_AMD_EXTENSION_143_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_sample_locations" number="144" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
+        <extension name="VK_EXT_sample_locations" number="144" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_sample_locations&quot;"           name="VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME"/>
@@ -16706,7 +18715,7 @@
                 <command name="vkGetPhysicalDeviceMultisamplePropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnkslang" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnkslang" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_relaxed_block_layout&quot;"       name="VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME"/>
@@ -16718,7 +18727,7 @@
                 <enum value="&quot;VK_RESERVED_do_not_use_146&quot;"        name="VK_RESERVED_DO_NOT_USE_146_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_get_memory_requirements2" number="147" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_get_memory_requirements2" number="147" type="device" author="KHR" contact="Faith Ekstrand @gfxstrand" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1" name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_get_memory_requirements2&quot;"   name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME"/>
@@ -16737,7 +18746,7 @@
                 <command name="vkGetImageSparseMemoryRequirements2KHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_image_format_list" number="148" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_image_format_list" number="148" type="device" author="KHR" contact="Faith Ekstrand @gfxstrand" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_image_format_list&quot;"          name="VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME"/>
@@ -16745,7 +18754,7 @@
                 <type name="VkImageFormatListCreateInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_blend_operation_advanced" number="149" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
+        <extension name="VK_EXT_blend_operation_advanced" number="149" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_blend_operation_advanced&quot;"   name="VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME"/>
@@ -16814,7 +18823,7 @@
                 <type name="VkPipelineCoverageToColorStateCreateInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_acceleration_structure" number="151" type="device" requiresCore="1.1" requires="VK_EXT_descriptor_indexing,VK_KHR_buffer_device_address,VK_KHR_deferred_host_operations" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
+        <extension name="VK_KHR_acceleration_structure" number="151" type="device" depends="VK_VERSION_1_1+VK_EXT_descriptor_indexing+VK_KHR_buffer_device_address+VK_KHR_deferred_host_operations" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1" ratified="vulkan">
             <require>
                 <enum value="13"                                            name="VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_acceleration_structure&quot;"     name="VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME"/>
@@ -16840,7 +18849,6 @@
                 <enum offset="0"  extends="VkQueryType"                     name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR"/>
                 <enum offset="1"  extends="VkQueryType"                     name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"/>
                 <enum offset="0"  extends="VkObjectType"                    name="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"/>
-                <enum offset="0"  extends="VkDebugReportObjectTypeEXT"      name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT"/>
                 <enum offset="0"  extends="VkIndexType" extnumber="166"     name="VK_INDEX_TYPE_NONE_KHR"/>
                 <enum bitpos="29" extends="VkFormatFeatureFlagBits"         name="VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"/>
                 <enum bitpos="19" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"/>
@@ -16899,11 +18907,14 @@
                 <command name="vkGetDeviceAccelerationStructureCompatibilityKHR"/>
                 <command name="vkGetAccelerationStructureBuildSizesKHR"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <enum bitpos="29" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"/>
             </require>
+            <require depends="VK_EXT_debug_report">
+                <enum offset="0"  extends="VkDebugReportObjectTypeEXT"      name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT"/>
+            </require>
         </extension>
-        <extension name="VK_KHR_ray_tracing_pipeline" number="348" type="device" requiresCore="1.1" requires="VK_KHR_spirv_1_4,VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
+        <extension name="VK_KHR_ray_tracing_pipeline" number="348" type="device" depends="VK_KHR_spirv_1_4+VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_ray_tracing_pipeline&quot;"       name="VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME"/>
@@ -16948,7 +18959,7 @@
                 <command name="vkCmdSetRayTracingPipelineStackSizeKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_ray_query" number="349" type="device" requiresCore="1.1" requires="VK_KHR_spirv_1_4,VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
+        <extension name="VK_KHR_ray_query" number="349" type="device" depends="VK_KHR_spirv_1_4+VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_RAY_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_ray_query&quot;"                  name="VK_KHR_RAY_QUERY_EXTENSION_NAME"/>
@@ -16979,7 +18990,7 @@
                 <enum offset="0" extends="VkPolygonMode"                    name="VK_POLYGON_MODE_FILL_RECTANGLE_NV"/>
             </require>
         </extension>
-        <extension name="VK_NV_shader_sm_builtins" number="155" type="device" requiresCore="1.1" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
+        <extension name="VK_NV_shader_sm_builtins" number="155" type="device" depends="VK_VERSION_1_1" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_shader_sm_builtins&quot;"          name="VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME"/>
@@ -16989,13 +19000,13 @@
                 <type name="VkPhysicalDeviceShaderSMBuiltinsFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_post_depth_coverage" number="156" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
+        <extension name="VK_EXT_post_depth_coverage" number="156" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_post_depth_coverage&quot;"        name="VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_sampler_ycbcr_conversion" number="157" type="device" requires="VK_KHR_maintenance1,VK_KHR_bind_memory2,VK_KHR_get_memory_requirements2,VK_KHR_get_physical_device_properties2" author="KHR" contact="Andrew Garrard @fluppeteer" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_sampler_ycbcr_conversion" number="157" type="device" depends="VK_KHR_maintenance1+VK_KHR_bind_memory2+VK_KHR_get_memory_requirements2+VK_KHR_get_physical_device_properties2" author="KHR" contact="Andrew Garrard @fluppeteer" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="14"                                            name="VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_sampler_ycbcr_conversion&quot;"   name="VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME"/>
@@ -17005,7 +19016,6 @@
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"/>
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"/>
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"/>
-                <enum extends="VkDebugReportObjectTypeEXT"                  name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
                 <enum extends="VkObjectType"                                name="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR" alias="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"/>
                 <enum extends="VkFormat"                                    name="VK_FORMAT_G8B8G8R8_422_UNORM_KHR" alias="VK_FORMAT_G8B8G8R8_422_UNORM"/>
                 <enum extends="VkFormat"                                    name="VK_FORMAT_B8G8R8G8_422_UNORM_KHR" alias="VK_FORMAT_B8G8R8G8_422_UNORM"/>
@@ -17074,11 +19084,12 @@
                 <enum extends="VkChromaLocation"                            name="VK_CHROMA_LOCATION_COSITED_EVEN_KHR" alias="VK_CHROMA_LOCATION_COSITED_EVEN"/>
                 <enum extends="VkChromaLocation"                            name="VK_CHROMA_LOCATION_MIDPOINT_KHR" alias="VK_CHROMA_LOCATION_MIDPOINT"/>
             </require>
-            <require extension="VK_EXT_debug_report">
+            <require depends="VK_EXT_debug_report">
                 <enum extends="VkDebugReportObjectTypeEXT" offset="0"       name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
+                <enum extends="VkDebugReportObjectTypeEXT"                  name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_bind_memory2" number="158" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_bind_memory2" number="158" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_BIND_MEMORY_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_bind_memory2&quot;"               name="VK_KHR_BIND_MEMORY_2_EXTENSION_NAME"/>
@@ -17091,7 +19102,7 @@
                 <type name="VkBindImageMemoryInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_image_format_list,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
+        <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" depends="((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_drm_format_modifier&quot;"  name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
@@ -17114,7 +19125,7 @@
                 <type name="VkImageDrmFormatModifierPropertiesEXT"/>
                 <command name="vkGetImageDrmFormatModifierPropertiesEXT"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <type name="VkDrmFormatModifierPropertiesList2EXT"/>
                 <type name="VkDrmFormatModifierProperties2EXT"/>
                 <enum offset="6" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"/>
@@ -17144,7 +19155,7 @@
                 <command name="vkGetValidationCacheDataEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_descriptor_indexing" number="162" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_maintenance3" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_EXT_descriptor_indexing" number="162" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
             <require>
                 <enum value="2"                                             name="VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_descriptor_indexing&quot;"        name="VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME"/>
@@ -17175,7 +19186,7 @@
                 <enum value="&quot;VK_EXT_shader_viewport_index_layer&quot;" name="VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_portability_subset" number="164" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Bill Hollings @billhollings" platform="provisional" supported="vulkan" provisional="true">
+        <extension name="VK_KHR_portability_subset" number="164" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Bill Hollings @billhollings" platform="provisional" supported="vulkan" provisional="true" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_portability_subset&quot;"         name="VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME"/>
@@ -17185,7 +19196,7 @@
                 <type name="VkPhysicalDevicePortabilitySubsetPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_shading_rate_image" number="165" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
+        <extension name="VK_NV_shading_rate_image" number="165" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
             <require>
                 <enum value="3"                                             name="VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_shading_rate_image&quot;"          name="VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME"/>
@@ -17213,7 +19224,7 @@
                 <command name="vkCmdSetCoarseSampleOrderNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_ray_tracing" number="166" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_get_memory_requirements2" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
+        <extension name="VK_NV_ray_tracing" number="166" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
             <require>
                 <enum value="3"                               name="VK_NV_RAY_TRACING_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_ray_tracing&quot;"   name="VK_NV_RAY_TRACING_EXTENSION_NAME"/>
@@ -17245,7 +19256,6 @@
                 <enum offset="0" extends="VkQueryType"        name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"/>
                 <enum bitpos="5" extends="VkPipelineCreateFlagBits"      name="VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"/>
                 <enum offset="0" extends="VkObjectType"       name="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"/>
-                <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"/>
                 <enum extends="VkIndexType"                   name="VK_INDEX_TYPE_NONE_NV" alias="VK_INDEX_TYPE_NONE_KHR"/>
                 <type name="VkRayTracingShaderGroupCreateInfoNV"/>
                 <type name="VkRayTracingShaderGroupTypeNV"/>
@@ -17290,7 +19300,6 @@
                 <type name="VkWriteDescriptorSetAccelerationStructureNV"/>
                 <type name="VkAccelerationStructureMemoryRequirementsInfoNV"/>
                 <type name="VkPhysicalDeviceRayTracingPropertiesNV"/>
-                <type name="VkMemoryRequirements2KHR"/>
                 <type name="VkAccelerationStructureMemoryRequirementsTypeNV"/>
                 <type name="VkTransformMatrixNV"/>
                 <type name="VkAabbPositionsNV"/>
@@ -17308,8 +19317,14 @@
                 <command name="vkCmdWriteAccelerationStructuresPropertiesNV"/>
                 <command name="vkCompileDeferredNV"/>
             </require>
+            <require depends="VK_KHR_get_memory_requirements2">
+                <type name="VkMemoryRequirements2KHR"/>
+            </require>
+            <require depends="VK_EXT_debug_report">
+                <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"/>
+            </require>
         </extension>
-        <extension name="VK_NV_representative_fragment_test" number="167" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
+        <extension name="VK_NV_representative_fragment_test" number="167" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_representative_fragment_test&quot;" name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME"/>
@@ -17325,12 +19340,12 @@
                 <enum value="&quot;VK_NV_extension_168&quot;"               name="VK_NV_EXTENSION_168_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_maintenance3" number="169" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
+        <extension name="VK_KHR_maintenance3" number="169" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_MAINTENANCE_3_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_maintenance3&quot;"               name="VK_KHR_MAINTENANCE_3_EXTENSION_NAME"/>
-                <enum alias="VK_KHR_MAINTENANCE_3_SPEC_VERSION"             name="VK_KHR_MAINTENANCE3_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
-                <enum alias="VK_KHR_MAINTENANCE_3_EXTENSION_NAME"           name="VK_KHR_MAINTENANCE3_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_KHR_MAINTENANCE_3_SPEC_VERSION"             name="VK_KHR_MAINTENANCE3_SPEC_VERSION" deprecated="aliased"/>
+                <enum alias="VK_KHR_MAINTENANCE_3_EXTENSION_NAME"           name="VK_KHR_MAINTENANCE3_EXTENSION_NAME" deprecated="aliased"/>
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"/>
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"/>
                 <type name="VkPhysicalDeviceMaintenance3PropertiesKHR"/>
@@ -17338,7 +19353,7 @@
                 <command name="vkGetDescriptorSetLayoutSupportKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_draw_indirect_count" number="170" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_draw_indirect_count" number="170" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_draw_indirect_count&quot;"        name="VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME"/>
@@ -17346,7 +19361,7 @@
                 <command name="vkCmdDrawIndexedIndirectCountKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_filter_cubic" number="171" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
+        <extension name="VK_EXT_filter_cubic" number="171" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan,vulkansc">
             <require>
                 <enum value="3"                                             name="VK_EXT_FILTER_CUBIC_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_filter_cubic&quot;"               name="VK_EXT_FILTER_CUBIC_EXTENSION_NAME"/>
@@ -17358,7 +19373,7 @@
                 <type name="VkFilterCubicImageViewImageFormatPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_render_pass_shader_resolve" number="172" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
+        <extension name="VK_QCOM_render_pass_shader_resolve" number="172" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="4"                                                 name="VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_render_pass_shader_resolve&quot;"    name="VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME"/>
@@ -17366,32 +19381,29 @@
                 <enum bitpos="3" extends="VkSubpassDescriptionFlagBits"         name="VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_173" number="173" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_173" number="173" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_173_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_173&quot;"             name="VK_QCOM_EXTENSION_173_EXTENSION_NAME"/>
-                <enum bitpos="18" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM"/>
-                <enum bitpos="16" extends="VkImageUsageFlagBits"            name="VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM"/>
-                <enum bitpos="17" extends="VkImageUsageFlagBits"            name="VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_174" number="174" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_174" number="174" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_174_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_174&quot;"             name="VK_QCOM_EXTENSION_174_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_global_priority" number="175" type="device" author="EXT" contact="Andres Rodriguez @lostgoat" supported="vulkan" promotedto="VK_KHR_global_priority">
+        <extension name="VK_EXT_global_priority" number="175" type="device" author="EXT" contact="Andres Rodriguez @lostgoat" supported="vulkan,vulkansc" promotedto="VK_KHR_global_priority">
             <require>
                 <enum value="2"                                             name="VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_global_priority&quot;"            name="VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME"/>
-                <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"/>
-                <enum extends="VkResult" alias="VK_ERROR_NOT_PERMITTED_KHR" name="VK_ERROR_NOT_PERMITTED_EXT"/>
+                <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"/>
+                <enum extends="VkResult" name="VK_ERROR_NOT_PERMITTED_EXT" alias="VK_ERROR_NOT_PERMITTED_KHR"/>
                 <type name="VkDeviceQueueGlobalPriorityCreateInfoEXT"/>
                 <type name="VkQueueGlobalPriorityEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_subgroup_extended_types" number="176" type="device" requiresCore="1.1" author="KHR" contact="Neil Henning @sheredom" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_shader_subgroup_extended_types" number="176" type="device" depends="VK_VERSION_1_1" author="KHR" contact="Neil Henning @sheredom" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_subgroup_extended_types&quot;" name="VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME"/>
@@ -17405,7 +19417,7 @@
                 <enum value="&quot;VK_EXT_extension_177&quot;"              name="VK_EXT_EXTENSION_177_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_8bit_storage" number="178" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_8bit_storage" number="178" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_8BIT_STORAGE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_8bit_storage&quot;"               name="VK_KHR_8BIT_STORAGE_EXTENSION_NAME"/>
@@ -17413,7 +19425,7 @@
                 <type name="VkPhysicalDevice8BitStorageFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" requires="VK_KHR_external_memory" contact="Daniel Rakos @drakos-amd" supported="vulkan">
+        <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_external_memory_host&quot;"       name="VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME"/>
@@ -17435,7 +19447,7 @@
                 <command name="vkCmdWriteBufferMarkerAMD"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_atomic_int64" number="181" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_shader_atomic_int64" number="181" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_atomic_int64&quot;"        name="VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME"/>
@@ -17443,7 +19455,7 @@
                 <type name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_clock" number="182" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan">
+        <extension name="VK_KHR_shader_clock" number="182" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Aaron Hagan @ahagan" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                          name="VK_KHR_SHADER_CLOCK_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_clock&quot;"            name="VK_KHR_SHADER_CLOCK_EXTENSION_NAME"/>
@@ -17467,18 +19479,22 @@
                 <type name="VkPipelineCompilerControlCreateInfoAMD"/>
             </require>
         </extension>
-        <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan">
+        <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Daniel Rakos @drakos-amd" promotedto="VK_KHR_calibrated_timestamps" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_calibrated_timestamps&quot;"      name="VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"/>
+                <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT" alias="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"/>
+                <enum extends="VkTimeDomainKHR"                             name="VK_TIME_DOMAIN_DEVICE_EXT"                       alias="VK_TIME_DOMAIN_DEVICE_KHR"/>
+                <enum extends="VkTimeDomainKHR"                             name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"              alias="VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR"/>
+                <enum extends="VkTimeDomainKHR"                             name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"          alias="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR"/>
+                <enum extends="VkTimeDomainKHR"                             name="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"    alias="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR"/>
                 <type name="VkTimeDomainEXT"/>
                 <type name="VkCalibratedTimestampInfoEXT"/>
                 <command name="vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"/>
                 <command name="vkGetCalibratedTimestampsEXT"/>
             </require>
         </extension>
-        <extension name="VK_AMD_shader_core_properties" number="186" type="device" author="AMD" requires="VK_KHR_get_physical_device_properties2" contact="Martin Dinkov @mdinkov" supported="vulkan">
+        <extension name="VK_AMD_shader_core_properties" number="186" type="device" author="AMD" depends="VK_KHR_get_physical_device_properties2" contact="Martin Dinkov @mdinkov" supported="vulkan">
             <require>
                 <enum value="2"                                          name="VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_shader_core_properties&quot;"  name="VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME"/>
@@ -17492,28 +19508,28 @@
                 <enum value="&quot;VK_AMD_extension_187&quot;"              name="VK_AMD_EXTENSION_187_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_video_decode_h265" number="188" type="device" requires="VK_KHR_video_decode_queue" author="KHR" contact="peter.fang@amd.com" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_decode_h265" number="188" type="device" depends="VK_KHR_video_decode_queue" author="KHR" contact="peter.fang@amd.com" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="6"                                         name="VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_video_decode_h265&quot;"      name="VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="1" extends="VkVideoCodecOperationFlagBitsKHR"      name="VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum value="8"                                             name="VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_video_decode_h265&quot;"          name="VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR"/>
+                <enum bitpos="1" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR"/>
 
-                <type name="VkVideoDecodeH265ProfileInfoEXT"/>
-                <type name="VkVideoDecodeH265CapabilitiesEXT"/>
+                <type name="VkVideoDecodeH265ProfileInfoKHR"/>
+                <type name="VkVideoDecodeH265CapabilitiesKHR"/>
 
-                <type name="VkVideoDecodeH265SessionParametersCreateInfoEXT"/>
-                <type name="VkVideoDecodeH265SessionParametersAddInfoEXT"/>
-                <type name="VkVideoDecodeH265PictureInfoEXT"/>
-                <type name="VkVideoDecodeH265DpbSlotInfoEXT"/>
+                <type name="VkVideoDecodeH265SessionParametersCreateInfoKHR"/>
+                <type name="VkVideoDecodeH265SessionParametersAddInfoKHR"/>
+                <type name="VkVideoDecodeH265PictureInfoKHR"/>
+                <type name="VkVideoDecodeH265DpbSlotInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_global_priority" number="189" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_KHR_global_priority" number="189" type="device" author="KHR" contact="Tobias Hector @tobski" depends="VK_KHR_get_physical_device_properties2" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_global_priority&quot;"            name="VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME"/>
@@ -17537,20 +19553,20 @@
                 <type name="VkDeviceMemoryOverallocationCreateInfoAMD"/>
             </require>
         </extension>
-        <extension name="VK_EXT_vertex_attribute_divisor" number="191" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan">
+        <extension name="VK_EXT_vertex_attribute_divisor" number="191" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan,vulkansc" promotedto="VK_KHR_vertex_attribute_divisor">
             <require>
-                <enum value="3"                                         name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_vertex_attribute_divisor&quot;"   name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"/>
-                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"/>
-                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"/>
+                <enum value="3"                                           name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_vertex_attribute_divisor&quot;" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"/>
+                <enum            extends="VkStructureType"                name="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"/>
+                <enum            extends="VkStructureType"                name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"/>
                 <type name="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT"/>
                 <type name="VkVertexInputBindingDivisorDescriptionEXT"/>
                 <type name="VkPipelineVertexInputDivisorStateCreateInfoEXT"/>
                 <type name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_GGP_frame_token" number="192" type="device" requires="VK_KHR_swapchain,VK_GGP_stream_descriptor_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
+        <extension name="VK_GGP_frame_token" number="192" type="device" depends="VK_KHR_swapchain+VK_GGP_stream_descriptor_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_GGP_FRAME_TOKEN_SPEC_VERSION"/>
                 <enum value="&quot;VK_GGP_frame_token&quot;"                    name="VK_GGP_FRAME_TOKEN_EXTENSION_NAME"/>
@@ -17585,11 +19601,9 @@
             <require>
                 <enum value="0"                                         name="VK_GOOGLE_EXTENSION_196_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_extension_196&quot;"       name="VK_GOOGLE_EXTENSION_196_EXTENSION_NAME"/>
-                <enum bitpos="1"  extends="VkPipelineCacheCreateFlagBits"
-                    name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_driver_properties" number="197" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_driver_properties" number="197" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_driver_properties&quot;"          name="VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME"/>
@@ -17613,7 +19627,7 @@
                 <type name="VkPhysicalDeviceDriverPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_float_controls" number="198" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_shader_float_controls" number="198" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="4"                                             name="VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_float_controls&quot;"      name="VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME"/>
@@ -17625,14 +19639,14 @@
                 <enum extends="VkShaderFloatControlsIndependence"           name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR"        alias="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"/>
             </require>
         </extension>
-        <extension name="VK_NV_shader_subgroup_partitioned" number="199" type="device" requiresCore="1.1" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_NV_shader_subgroup_partitioned" number="199" type="device" depends="VK_VERSION_1_1" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_shader_subgroup_partitioned&quot;" name="VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME"/>
                 <enum bitpos="8" extends="VkSubgroupFeatureFlagBits"        name="VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_depth_stencil_resolve" number="200" type="device" requires="VK_KHR_create_renderpass2" author="KHR" contact="Jan-Harald Fredriksen @janharald" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_depth_stencil_resolve" number="200" type="device" depends="VK_KHR_create_renderpass2" author="KHR" contact="Jan-Harald Fredriksen @janharald" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_depth_stencil_resolve&quot;"      name="VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME"/>
@@ -17649,14 +19663,14 @@
                 <enum extends="VkResolveModeFlagBits"                       name="VK_RESOLVE_MODE_MAX_BIT_KHR" alias="VK_RESOLVE_MODE_MAX_BIT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_swapchain_mutable_format" number="201" type="device" author="KHR" requires="VK_KHR_swapchain,VK_KHR_maintenance2,VK_KHR_image_format_list" contact="Daniel Rakos @drakos-arm" supported="vulkan">
+        <extension name="VK_KHR_swapchain_mutable_format" number="201" type="device" author="KHR" depends="VK_KHR_swapchain+(VK_KHR_maintenance2,VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                         name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_swapchain_mutable_format&quot;" name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME"/>
                 <enum bitpos="2" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_compute_shader_derivatives" number="202" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
+        <extension name="VK_NV_compute_shader_derivatives" number="202" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_compute_shader_derivatives&quot;" name="VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME"/>
@@ -17664,7 +19678,7 @@
                 <type name="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_mesh_shader" number="203" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
+        <extension name="VK_NV_mesh_shader" number="203" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_NV_MESH_SHADER_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_mesh_shader&quot;"             name="VK_NV_MESH_SHADER_EXTENSION_NAME"/>
@@ -17682,7 +19696,7 @@
                 <type name="VkDrawMeshTasksIndirectCommandNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_fragment_shader_barycentric" number="204" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan" promotedto="VK_KHR_fragment_shader_barycentric">
+        <extension name="VK_NV_fragment_shader_barycentric" number="204" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan" promotedto="VK_KHR_fragment_shader_barycentric">
             <require>
                 <enum value="1"                                         name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_fragment_shader_barycentric&quot;" name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME"/>
@@ -17690,7 +19704,7 @@
                 <type name="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_shader_image_footprint" number="205" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
+        <extension name="VK_NV_shader_image_footprint" number="205" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
             <require>
                 <enum value="2"                                         name="VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_shader_image_footprint&quot;"  name="VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME"/>
@@ -17698,19 +19712,21 @@
                 <type name="VkPhysicalDeviceShaderImageFootprintFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_scissor_exclusive" number="206" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
+        <extension name="VK_NV_scissor_exclusive" number="206" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
             <require>
-                <enum value="1"                                         name="VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION"/>
+                <enum value="2"                                         name="VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_scissor_exclusive&quot;"       name="VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"/>
-                <enum offset="1" extends="VkDynamicState" name="VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"/>
                 <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"/>
+                <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV"/>
+                <enum offset="1" extends="VkDynamicState" name="VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"/>
                 <type name="VkPipelineViewportExclusiveScissorStateCreateInfoNV"/>
                 <type name="VkPhysicalDeviceExclusiveScissorFeaturesNV"/>
+                <command name="vkCmdSetExclusiveScissorEnableNV"/>
                 <command name="vkCmdSetExclusiveScissorNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_device_diagnostic_checkpoints" type="device" number="207" requires="VK_KHR_get_physical_device_properties2" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
+        <extension name="VK_NV_device_diagnostic_checkpoints" type="device" number="207" depends="VK_KHR_get_physical_device_properties2" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
             <require>
                 <enum value="2"                                         name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_device_diagnostic_checkpoints&quot;" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME"/>
@@ -17722,7 +19738,7 @@
                 <command name="vkGetQueueCheckpointDataNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_timeline_semaphore" number="208" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_timeline_semaphore" number="208" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Faith Ekstrand @gfxstrand" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="2"                                         name="VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_timeline_semaphore&quot;"     name="VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME"/>
@@ -17755,7 +19771,7 @@
                 <enum value="&quot;VK_KHR_extension_209&quot;"          name="VK_KHR_EXTENSION_209_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_INTEL_shader_integer_functions2" number="210" type="device" requires="VK_KHR_get_physical_device_properties2" author="INTEL" contact="Ian Romanick @ianromanick" supported="vulkan">
+        <extension name="VK_INTEL_shader_integer_functions2" number="210" type="device" depends="VK_KHR_get_physical_device_properties2" author="INTEL" contact="Ian Romanick @ianromanick" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_INTEL_shader_integer_functions2&quot;" name="VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME"/>
@@ -17768,7 +19784,7 @@
                 <enum value="2"                                         name="VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_INTEL_performance_query&quot;"    name="VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"/>
-                <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL" alias="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" comment="Backwards-compatible alias containing a typo"/>
+                <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL" alias="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" deprecated="aliased"/>
                 <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"/>
                 <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"/>
                 <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"/>
@@ -17802,7 +19818,7 @@
                 <command name="vkGetPerformanceParameterINTEL"/>
             </require>
         </extension>
-        <extension name="VK_KHR_vulkan_memory_model" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_vulkan_memory_model" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" depends="VK_KHR_get_physical_device_properties2" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="3"                                         name="VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_vulkan_memory_model&quot;"    name="VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME"/>
@@ -17810,7 +19826,7 @@
                 <type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
+        <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Matthaeus G. Chajdas @anteru" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                         name="VK_EXT_PCI_BUS_INFO_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pci_bus_info&quot;"           name="VK_EXT_PCI_BUS_INFO_EXTENSION_NAME"/>
@@ -17818,7 +19834,7 @@
                 <type name="VkPhysicalDevicePCIBusInfoPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_AMD_display_native_hdr" number="214" type="device" author="AMD" requires="VK_KHR_get_physical_device_properties2,VK_KHR_get_surface_capabilities2,VK_KHR_swapchain" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
+        <extension name="VK_AMD_display_native_hdr" number="214" type="device" author="AMD" depends="VK_KHR_get_physical_device_properties2+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_display_native_hdr&quot;"     name="VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME"/>
@@ -17830,7 +19846,7 @@
                 <command name="vkSetLocalDimmingAMD"/>
             </require>
         </extension>
-        <extension name="VK_FUCHSIA_imagepipe_surface" number="215" type="instance" author="FUCHSIA" requires="VK_KHR_surface" platform="fuchsia" contact="Craig Stout @cdotstout" supported="vulkan">
+        <extension name="VK_FUCHSIA_imagepipe_surface" number="215" type="instance" author="FUCHSIA" depends="VK_KHR_surface" platform="fuchsia" contact="Craig Stout @cdotstout" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_FUCHSIA_imagepipe_surface&quot;"  name="VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME"/>
@@ -17840,7 +19856,7 @@
                 <command name="vkCreateImagePipeSurfaceFUCHSIA"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_terminate_invocation" number="216" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_shader_terminate_invocation" number="216" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Jesse Hall @critsec" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_terminate_invocation&quot;"    name="VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME"/>
@@ -17854,7 +19870,7 @@
                 <enum value="&quot;VK_GOOGLE_extension_217&quot;"           name="VK_GOOGLE_EXTENSION_217_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_metal_surface" number="218" type="instance" requires="VK_KHR_surface" platform="metal" supported="vulkan" author="EXT" contact="Dzmitry Malyshau @kvark">
+        <extension name="VK_EXT_metal_surface" number="218" type="instance" depends="VK_KHR_surface" platform="metal" supported="vulkan" author="EXT" contact="Dzmitry Malyshau @kvark">
             <require>
                 <enum value="1"                                             name="VK_EXT_METAL_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_metal_surface&quot;"              name="VK_EXT_METAL_SURFACE_EXTENSION_NAME"/>
@@ -17865,7 +19881,7 @@
                 <type name="CAMetalLayer"/>
             </require>
         </extension>
-        <extension name="VK_EXT_fragment_density_map" number="219" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
+        <extension name="VK_EXT_fragment_density_map" number="219" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_fragment_density_map&quot;"       name="VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME"/>
@@ -17885,7 +19901,7 @@
                 <type name="VkPhysicalDeviceFragmentDensityMapPropertiesEXT"/>
                 <type name="VkRenderPassFragmentDensityMapCreateInfoEXT"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <enum bitpos="24" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"/>
             </require>
         </extension>
@@ -17902,7 +19918,7 @@
                 <enum bitpos="0" extends="VkRenderPassCreateFlagBits"        name="VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_scalar_block_layout" number="222" requires="VK_KHR_get_physical_device_properties2" type="device" author="EXT" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_EXT_scalar_block_layout" number="222" depends="VK_KHR_get_physical_device_properties2" type="device" author="EXT" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2">
             <require>
                 <enum value="1"                                             name="VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_scalar_block_layout&quot;"        name="VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME"/>
@@ -17920,8 +19936,8 @@
             <require>
                 <enum value="1"                                             name="VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_hlsl_functionality1&quot;"     name="VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME"/>
-                <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION"   name="VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
-                <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME" name="VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
+                <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION"   name="VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION" deprecated="aliased"/>
+                <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME" name="VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME" deprecated="aliased"/>
             </require>
         </extension>
         <extension name="VK_GOOGLE_decorate_string" number="225" type="device" author="GOOGLE" contact="Hai Nguyen @chaoticbob" supported="vulkan">
@@ -17930,7 +19946,7 @@
                 <enum value="&quot;VK_GOOGLE_decorate_string&quot;"         name="VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_subgroup_size_control" number="226" type="device" requiresCore="1.1" author="EXT" contact="Neil Henning @sheredom" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_subgroup_size_control" number="226" type="device" depends="VK_VERSION_1_1" author="EXT" contact="Neil Henning @sheredom" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="2"                                             name="VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_subgroup_size_control&quot;"      name="VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME"/>
@@ -17944,7 +19960,7 @@
                 <enum extends="VkPipelineShaderStageCreateFlagBits"         name="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT" alias="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_fragment_shading_rate" number="227" type="device" requires="VK_KHR_create_renderpass2,VK_KHR_get_physical_device_properties2" author="KHR" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_KHR_fragment_shading_rate" number="227" type="device" depends="(VK_KHR_create_renderpass2,VK_VERSION_1_2)+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="KHR" contact="Tobias Hector @tobski" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
             <require>
                 <enum value="2"                                                 name="VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_fragment_shading_rate&quot;" name="VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME"/>
@@ -17968,11 +19984,11 @@
                 <enum bitpos="22" extends="VkPipelineStageFlagBits"             name="VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
                 <enum bitpos="30" extends="VkFormatFeatureFlagBits"             name="VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <enum bitpos="30" extends="VkFormatFeatureFlagBits2"            name="VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_AMD_shader_core_properties2" number="228" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan" requires="VK_AMD_shader_core_properties">
+        <extension name="VK_AMD_shader_core_properties2" number="228" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan" depends="VK_AMD_shader_core_properties">
             <require>
                 <enum value="1"                                             name="VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_shader_core_properties2&quot;"    name="VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME"/>
@@ -17988,7 +20004,7 @@
                 <enum value="&quot;VK_AMD_extension_229&quot;"              name="VK_AMD_EXTENSION_229_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_AMD_device_coherent_memory" number="230" type="device" author="AMD" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_AMD_device_coherent_memory" number="230" type="device" author="AMD" contact="Tobias Hector @tobski" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_device_coherent_memory&quot;"     name="VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME"/>
@@ -18022,7 +20038,7 @@
                 <enum value="&quot;VK_AMD_extension_234&quot;"              name="VK_AMD_EXTENSION_234_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_image_atomic_int64" number="235" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_EXT_shader_image_atomic_int64" number="235" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Tobias Hector @tobski" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_image_atomic_int64&quot;"  name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME"/>
@@ -18036,13 +20052,13 @@
                 <enum value="&quot;VK_AMD_extension_236&quot;"              name="VK_AMD_EXTENSION_236_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_spirv_1_4" number="237" type="device" requiresCore="1.1" requires="VK_KHR_shader_float_controls" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_spirv_1_4" number="237" type="device" depends="VK_VERSION_1_1+VK_KHR_shader_float_controls" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SPIRV_1_4_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_spirv_1_4&quot;"                  name="VK_KHR_SPIRV_1_4_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_memory_budget" number="238" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_EXT_memory_budget" number="238" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_MEMORY_BUDGET_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_memory_budget&quot;"              name="VK_EXT_MEMORY_BUDGET_EXTENSION_NAME"/>
@@ -18050,7 +20066,7 @@
                 <type name="VkPhysicalDeviceMemoryBudgetPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_memory_priority" number="239" type="device" requires="VK_KHR_get_physical_device_properties2"  author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_EXT_memory_priority" number="239" type="device" depends="VK_KHR_get_physical_device_properties2"  author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_MEMORY_PRIORITY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_memory_priority&quot;"            name="VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME"/>
@@ -18060,7 +20076,7 @@
                 <type name="VkMemoryPriorityAllocateInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_surface_protected_capabilities" number="240" type="instance" requiresCore="1.1" requires="VK_KHR_get_surface_capabilities2" author="KHR" contact="Sandeep Shinde @sashinde" supported="vulkan">
+        <extension name="VK_KHR_surface_protected_capabilities" number="240" type="instance" depends="VK_VERSION_1_1+VK_KHR_get_surface_capabilities2" author="KHR" contact="Sandeep Shinde @sashinde" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_surface_protected_capabilities&quot;"   name="VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME"/>
@@ -18068,7 +20084,7 @@
                 <type name="VkSurfaceProtectedCapabilitiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_dedicated_allocation_image_aliasing" number="241" type="device" requires="VK_KHR_dedicated_allocation" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
+        <extension name="VK_NV_dedicated_allocation_image_aliasing" number="241" type="device" depends="VK_KHR_dedicated_allocation+VK_KHR_get_physical_device_properties2" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
             <require>
                 <enum value="1"                                                         name="VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_dedicated_allocation_image_aliasing&quot;"     name="VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME"/>
@@ -18076,7 +20092,7 @@
                 <type name="VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_separate_depth_stencil_layouts" number="242" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_create_renderpass2" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_separate_depth_stencil_layouts" number="242" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_create_renderpass2" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                                   name="VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_separate_depth_stencil_layouts&quot;"   name="VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME"/>
@@ -18096,7 +20112,7 @@
             <require>
                 <enum value="0"                                              name="VK_INTEL_EXTENSION_243_SPEC_VERSION"/>
                 <enum value="&quot;VK_INTEL_extension_243&quot;"             name="VK_INTEL_EXTENSION_243_EXTENSION_NAME"/>
-                <enum bitpos="46" extends="VkAccessFlagBits2"                name="VK_ACCESS_2_RESERVED_46_BIT_EXT"/>
+                <enum bitpos="46" extends="VkAccessFlagBits2"                name="VK_ACCESS_2_RESERVED_46_BIT_INTEL"/>
             </require>
         </extension>
         <extension name="VK_MESA_extension_244" number="244" author="MESA" contact="Andres Rodriguez @lostgoat" supported="disabled">
@@ -18105,7 +20121,7 @@
                 <enum value="&quot;VK_MESA_extension_244&quot;"              name="VK_MESA_EXTENSION_244_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_buffer_device_address" number="245" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv"  deprecatedby="VK_KHR_buffer_device_address" supported="vulkan">
+        <extension name="VK_EXT_buffer_device_address" number="245" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv"  deprecatedby="VK_KHR_buffer_device_address" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_buffer_device_address&quot;"      name="VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME"/>
@@ -18133,13 +20149,13 @@
                 <type                                                       name="VkPhysicalDeviceToolPropertiesEXT"/>
                 <command                                                    name="vkGetPhysicalDeviceToolPropertiesEXT"/>
             </require>
-            <require extension="VK_EXT_debug_report">
+            <require depends="VK_EXT_debug_report">
                 <enum bitpos="5" extends="VkToolPurposeFlagBits"            name="VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"/>
             </require>
-            <require extension="VK_EXT_debug_marker">
+            <require depends="VK_EXT_debug_marker">
                 <enum bitpos="6" extends="VkToolPurposeFlagBits"            name="VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"/>
             </require>
-            <require extension="VK_EXT_debug_utils">
+            <require depends="VK_EXT_debug_utils">
                 <enum bitpos="5" extends="VkToolPurposeFlagBits"            name="VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"/>
                 <enum bitpos="6" extends="VkToolPurposeFlagBits"            name="VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"/>
             </require>
@@ -18152,9 +20168,9 @@
                 <type name="VkImageStencilUsageCreateInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_validation_features" number="248" type="instance" author="LUNARG" contact="Karl Schultz @karl-lunarg" specialuse="debugging" supported="vulkan">
+        <extension name="VK_EXT_validation_features" number="248" type="instance" author="LUNARG" contact="Karl Schultz @karl-lunarg" specialuse="debugging" supported="vulkan,vulkansc" deprecatedby="VK_EXT_layer_settings">
             <require>
-                <enum value="5"                                             name="VK_EXT_VALIDATION_FEATURES_SPEC_VERSION"/>
+                <enum value="6"                                             name="VK_EXT_VALIDATION_FEATURES_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_validation_features&quot;"        name="VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"/>
                 <type name="VkValidationFeaturesEXT"/>
@@ -18162,7 +20178,7 @@
                 <type name="VkValidationFeatureDisableEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_present_wait" number="249" type="device" requires="VK_KHR_swapchain,VK_KHR_present_id" author="KHR" contact="Keith Packard @keithp" supported="vulkan">
+        <extension name="VK_KHR_present_wait" number="249" type="device" depends="VK_KHR_swapchain+VK_KHR_present_id" author="KHR" contact="Keith Packard @keithp" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                         name="VK_KHR_PRESENT_WAIT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_present_wait&quot;"           name="VK_KHR_PRESENT_WAIT_EXTENSION_NAME"/>
@@ -18171,7 +20187,7 @@
                 <type name="VkPhysicalDevicePresentWaitFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_cooperative_matrix" number="250" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+        <extension name="VK_NV_cooperative_matrix" number="250" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
             <require>
                 <enum value="1"                                              name="VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_cooperative_matrix&quot;"           name="VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME"/>
@@ -18180,13 +20196,28 @@
                 <enum offset="2" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"/>
                 <type name="VkCooperativeMatrixPropertiesNV"/>
                 <type name="VkScopeNV"/>
+                <enum extends="VkScopeKHR" name="VK_SCOPE_DEVICE_NV"         alias="VK_SCOPE_DEVICE_KHR"/>
+                <enum extends="VkScopeKHR" name="VK_SCOPE_WORKGROUP_NV"      alias="VK_SCOPE_WORKGROUP_KHR"/>
+                <enum extends="VkScopeKHR" name="VK_SCOPE_SUBGROUP_NV"       alias="VK_SCOPE_SUBGROUP_KHR"/>
+                <enum extends="VkScopeKHR" name="VK_SCOPE_QUEUE_FAMILY_NV"   alias="VK_SCOPE_QUEUE_FAMILY_KHR"/>
                 <type name="VkComponentTypeNV"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_FLOAT16_NV"  alias="VK_COMPONENT_TYPE_FLOAT16_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_FLOAT32_NV"  alias="VK_COMPONENT_TYPE_FLOAT32_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_FLOAT64_NV"  alias="VK_COMPONENT_TYPE_FLOAT64_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_SINT8_NV"    alias="VK_COMPONENT_TYPE_SINT8_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_SINT16_NV"   alias="VK_COMPONENT_TYPE_SINT16_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_SINT32_NV"   alias="VK_COMPONENT_TYPE_SINT32_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_SINT64_NV"   alias="VK_COMPONENT_TYPE_SINT64_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_UINT8_NV"    alias="VK_COMPONENT_TYPE_UINT8_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_UINT16_NV"   alias="VK_COMPONENT_TYPE_UINT16_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_UINT32_NV"   alias="VK_COMPONENT_TYPE_UINT32_KHR"/>
+                <enum extends="VkComponentTypeKHR" name="VK_COMPONENT_TYPE_UINT64_NV"   alias="VK_COMPONENT_TYPE_UINT64_KHR"/>
                 <type name="VkPhysicalDeviceCooperativeMatrixFeaturesNV"/>
                 <type name="VkPhysicalDeviceCooperativeMatrixPropertiesNV"/>
                 <command name="vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_coverage_reduction_mode" number="251" requires="VK_NV_framebuffer_mixed_samples" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
+        <extension name="VK_NV_coverage_reduction_mode" number="251" depends="VK_NV_framebuffer_mixed_samples+VK_KHR_get_physical_device_properties2" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_coverage_reduction_mode&quot;"     name="VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME"/>
@@ -18201,7 +20232,7 @@
                 <command name="vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_fragment_shader_interlock" number="252" author="EXT" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_fragment_shader_interlock" number="252" author="EXT" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_fragment_shader_interlock&quot;"      name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME"/>
@@ -18209,7 +20240,7 @@
                 <type name="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_ycbcr_image_arrays&quot;"         name="VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME"/>
@@ -18217,7 +20248,7 @@
                 <type name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_uniform_buffer_standard_layout" number="254" requires="VK_KHR_get_physical_device_properties2" type="device" author="KHR" contact="Graeme Leese @gnl21" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_uniform_buffer_standard_layout" number="254" depends="VK_KHR_get_physical_device_properties2" type="device" author="KHR" contact="Graeme Leese @gnl21" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_uniform_buffer_standard_layout&quot;" name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME"/>
@@ -18225,7 +20256,7 @@
                 <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"/>
             </require>
         </extension>
-        <extension name="VK_EXT_provoking_vertex" number="255" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @jessehall" specialuse="glemulation" supported="vulkan">
+        <extension name="VK_EXT_provoking_vertex" number="255" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @jessehall" specialuse="glemulation" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_PROVOKING_VERTEX_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_provoking_vertex&quot;"           name="VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME"/>
@@ -18238,7 +20269,7 @@
                 <type name="VkProvokingVertexModeEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_full_screen_exclusive" number="256" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2,VK_KHR_surface,VK_KHR_get_surface_capabilities2,VK_KHR_swapchain" platform="win32" contact="James Jones @cubanismo" supported="vulkan">
+        <extension name="VK_EXT_full_screen_exclusive" number="256" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2+VK_KHR_surface+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain" platform="win32" contact="James Jones @cubanismo" supported="vulkan">
             <require>
                 <enum value="4"                                             name="VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_full_screen_exclusive&quot;"      name="VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME"/>
@@ -18252,18 +20283,18 @@
                 <command name="vkAcquireFullScreenExclusiveModeEXT"/>
                 <command name="vkReleaseFullScreenExclusiveModeEXT"/>
             </require>
-            <require extension="VK_KHR_win32_surface">
+            <require depends="VK_KHR_win32_surface">
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"/>
                 <type name="VkSurfaceFullScreenExclusiveWin32InfoEXT"/>
             </require>
-            <require extension="VK_KHR_device_group">
+            <require depends="VK_KHR_device_group">
                 <command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
             </require>
-            <require feature="VK_VERSION_1_1">
+            <require depends="VK_VERSION_1_1">
                 <command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_headless_surface" number="257" type="instance" requires="VK_KHR_surface" author="EXT" contact="Lisa Wu @chengtianww" supported="vulkan">
+        <extension name="VK_EXT_headless_surface" number="257" type="instance" depends="VK_KHR_surface" author="EXT" contact="Lisa Wu @chengtianww" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_EXT_HEADLESS_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_headless_surface&quot;"               name="VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME"/>
@@ -18273,7 +20304,7 @@
                 <command name="vkCreateHeadlessSurfaceEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_buffer_device_address" number="258" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
+        <extension name="VK_KHR_buffer_device_address" number="258" type="device" depends="(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_buffer_device_address&quot;"      name="VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME"/>
@@ -18307,7 +20338,7 @@
                 <enum bitpos="19" extends="VkImageCreateFlagBits"           name="VK_IMAGE_CREATE_RESERVED_19_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_line_rasterization" number="260" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" specialuse="cadsupport" supported="vulkan">
+        <extension name="VK_EXT_line_rasterization" number="260" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" specialuse="cadsupport" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_LINE_RASTERIZATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_line_rasterization&quot;"         name="VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME"/>
@@ -18322,7 +20353,7 @@
                 <command name="vkCmdSetLineStippleEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_atomic_float" number="261" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
+        <extension name="VK_EXT_shader_atomic_float" number="261" type="device" author="NV" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_atomic_float&quot;"        name="VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME"/>
@@ -18330,7 +20361,7 @@
                 <type name="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_host_query_reset" number="262" author="EXT" contact="Bas Nieuwenhuizen @BNieuwenhuizen" supported="vulkan" type="device" requires="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_2">
+        <extension name="VK_EXT_host_query_reset" number="262" author="EXT" contact="Bas Nieuwenhuizen @BNieuwenhuizen" supported="vulkan" type="device" depends="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_2">
             <require>
                 <enum value="1"                                             name="VK_EXT_HOST_QUERY_RESET_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_host_query_reset&quot;"           name="VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME"/>
@@ -18357,7 +20388,7 @@
                 <enum value="&quot;VK_BRCM_extension_265&quot;"             name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_index_type_uint8&quot;"           name="VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME"/>
@@ -18372,7 +20403,7 @@
                 <enum value="&quot;VK_EXT_extension_267&quot;"              name="VK_EXT_EXTENSION_267_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extended_dynamic_state" number="268" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_extended_dynamic_state" number="268" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extended_dynamic_state&quot;"     name="VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME"/>
@@ -18404,7 +20435,7 @@
                 <command name="vkCmdSetStencilOpEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_deferred_host_operations" number="269" type="device" author="KHR" contact="Josh Barczak @jbarczak" supported="vulkan">
+        <extension name="VK_KHR_deferred_host_operations" number="269" type="device" author="KHR" contact="Josh Barczak @jbarczak" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="4"                                             name="VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_deferred_host_operations&quot;"   name="VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME"/>
@@ -18421,7 +20452,7 @@
                 <enum extends="VkResult"       offset="3"       name="VK_OPERATION_NOT_DEFERRED_KHR" />
             </require>
         </extension>
-        <extension name="VK_KHR_pipeline_executable_properties" number="270" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jason Ekstrand @jekstrand" specialuse="devtools" supported="vulkan">
+        <extension name="VK_KHR_pipeline_executable_properties" number="270" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Faith Ekstrand @gfxstrand" specialuse="devtools" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                         name="VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_pipeline_executable_properties&quot;"   name="VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME"/>
@@ -18446,26 +20477,64 @@
                 <command name="vkGetPipelineExecutableInternalRepresentationsKHR"/>
             </require>
         </extension>
-        <extension name="VK_INTEL_extension_271" number="271" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
+        <extension name="VK_EXT_host_image_copy" number="271" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_copy_commands2+VK_KHR_format_feature_flags2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_INTEL_EXTENSION_271_SPEC_VERSION"/>
-                <enum value="&quot;VK_INTEL_extension_271&quot;"            name="VK_INTEL_EXTENSION_271_EXTENSION_NAME"/>
-                <enum bitpos="22" extends="VkImageUsageFlagBits"            name="VK_IMAGE_USAGE_RESERVED_22_BIT_EXT"/>
+                <enum value="1"                                         name="VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_host_image_copy&quot;"        name="VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"/>
+                <enum offset="1"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"/>
+                <enum offset="2"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT"/>
+                <enum offset="3"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT"/>
+                <enum offset="4"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT"/>
+                <enum offset="5"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT"/>
+                <enum offset="6"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"/>
+                <enum offset="7"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT"/>
+                <enum offset="8"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"/>
+                <enum offset="9"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"/>
+                <enum bitpos="22" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT"               comment="Can be used with host image copies"/>
+                <enum bitpos="46" extends="VkFormatFeatureFlagBits2"    name="VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT"    comment="Host image copies are supported"/>
+                <type name="VkPhysicalDeviceHostImageCopyFeaturesEXT"/>
+                <type name="VkPhysicalDeviceHostImageCopyPropertiesEXT"/>
+                <type name="VkHostImageCopyFlagBitsEXT"/>
+                <type name="VkHostImageCopyFlagsEXT"/>
+                <type name="VkMemoryToImageCopyEXT"/>
+                <type name="VkImageToMemoryCopyEXT"/>
+                <type name="VkCopyMemoryToImageInfoEXT"/>
+                <type name="VkCopyImageToMemoryInfoEXT"/>
+                <type name="VkCopyImageToImageInfoEXT"/>
+                <type name="VkHostImageLayoutTransitionInfoEXT"/>
+                <type name="VkSubresourceHostMemcpySizeEXT"/>
+                <type name="VkHostImageCopyDevicePerformanceQueryEXT"/>
+                <command name="vkCopyMemoryToImageEXT"/>
+                <command name="vkCopyImageToMemoryEXT"/>
+                <command name="vkCopyImageToImageEXT"/>
+                <command name="vkTransitionImageLayoutEXT"/>
+
+                <type name="VkSubresourceLayout2EXT"/>
+                <type name="VkImageSubresource2EXT"/>
+                <command name="vkGetImageSubresourceLayout2EXT" comment="Taken from VK_EXT_image_compression_control. VkStructureType enums defined in that extension"/>
             </require>
         </extension>
-        <extension name="VK_INTEL_extension_272" number="272" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
+        <extension name="VK_KHR_map_memory2" number="272" type="device" author="KHR" contact="Faith Ekstrand @gfxstrand" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_INTEL_EXTENSION_272_SPEC_VERSION"/>
-                <enum value="&quot;VK_INTEL_extension_272&quot;"            name="VK_INTEL_EXTENSION_272_EXTENSION_NAME"/>
+                <enum value="1"                               name="VK_KHR_MAP_MEMORY_2_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_map_memory2&quot;"  name="VK_KHR_MAP_MEMORY_2_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"    name="VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR"/>
+                <enum offset="1" extends="VkStructureType"    name="VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR"/>
+                <type name="VkMemoryMapInfoKHR"/>
+                <type name="VkMemoryUnmapInfoKHR"/>
+                <type name="VkMemoryUnmapFlagsKHR"/>
+                <command name="vkMapMemory2KHR"/>
+                <command name="vkUnmapMemory2KHR"/>
             </require>
         </extension>
-        <extension name="VK_INTEL_extension_273" number="273" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
+        <extension name="VK_INTEL_extension_273" number="273" type="device" author="INTEL" contact="Faith Ekstrand @gfxstrand" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_INTEL_EXTENSION_273_SPEC_VERSION"/>
                 <enum value="&quot;VK_INTEL_extension_273&quot;"            name="VK_INTEL_EXTENSION_273_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_atomic_float2" number="274" type="device" requires="VK_EXT_shader_atomic_float" author="EXT" contact="Jason Ekstrand @jekstrand" supported="vulkan">
+        <extension name="VK_EXT_shader_atomic_float2" number="274" type="device" depends="VK_EXT_shader_atomic_float" author="EXT" contact="Faith Ekstrand @gfxstrand" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_atomic_float2&quot;"       name="VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME"/>
@@ -18473,7 +20542,7 @@
                 <type name="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_surface_maintenance1" number="275" type="instance" requires="VK_KHR_surface,VK_KHR_get_surface_capabilities2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
+        <extension name="VK_EXT_surface_maintenance1" number="275" type="instance" depends="VK_KHR_surface+VK_KHR_get_surface_capabilities2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_surface_maintenance1&quot;"       name="VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME"/>
@@ -18489,7 +20558,7 @@
                 <type name="VkSurfacePresentModeCompatibilityEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_swapchain_maintenance1" number="276" type="device" requires="VK_KHR_swapchain,VK_EXT_surface_maintenance1,VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
+        <extension name="VK_EXT_swapchain_maintenance1" number="276" type="device" depends="VK_KHR_swapchain+VK_EXT_surface_maintenance1+VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_swapchain_maintenance1&quot;"     name="VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME"/>
@@ -18509,7 +20578,7 @@
                 <command name="vkReleaseSwapchainImagesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_demote_to_helper_invocation" number="277" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_shader_demote_to_helper_invocation" number="277" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_demote_to_helper_invocation&quot;" name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME"/>
@@ -18517,7 +20586,7 @@
                 <type name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_NV_device_generated_commands" number="278" type="device" requiresCore="1.1" requires="VK_KHR_buffer_device_address" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
+        <extension name="VK_NV_device_generated_commands" number="278" type="device" depends="VK_VERSION_1_1+VK_KHR_buffer_device_address" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
             <require>
                 <comment>
                     This extension requires buffer_device_address functionality.
@@ -18565,7 +20634,7 @@
                 <command name="vkDestroyIndirectCommandsLayoutNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_inherited_viewport_scissor" number="279" type="device" author="NV" contact="David Zhao Akeley @akeley98" supported="vulkan">
+        <extension name="VK_NV_inherited_viewport_scissor" number="279" type="device" author="NV" contact="David Zhao Akeley @akeley98" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_inherited_viewport_scissor&quot;"  name="VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME"/>
@@ -18575,13 +20644,13 @@
                 <type name="VkCommandBufferInheritanceViewportScissorInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_280" number="280" type="device" author="KHR" contact="Kevin Petit @kevinpetit" supported="disabled">
+        <extension name="VK_KHR_extension_280" number="280" type="device" author="KHR" contact="Kevin Petit @kpet" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_KHR_EXTENSION_280_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_extension_280&quot;"              name="VK_KHR_EXTENSION_280_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_integer_dot_product" number="281" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Kevin Petit @kevinpetit" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_shader_integer_dot_product" number="281" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Kevin Petit @kpet" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_integer_dot_product&quot;" name="VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME"/>
@@ -18591,7 +20660,7 @@
                 <type name="VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_texel_buffer_alignment" number="282" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_texel_buffer_alignment" number="282" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_texel_buffer_alignment&quot;"     name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME"/>
@@ -18601,9 +20670,9 @@
                 <type name="VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_render_pass_transform" number="283" type="device" requires="VK_KHR_swapchain,VK_KHR_surface" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
+        <extension name="VK_QCOM_render_pass_transform" number="283" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
-                <enum value="3"                                             name="VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION"/>
+                <enum value="4"                                             name="VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_render_pass_transform&quot;"     name="VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"/>
@@ -18612,13 +20681,21 @@
                 <type name="VkCommandBufferInheritanceRenderPassTransformInfoQCOM"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_284" number="284" type="device" author="EXT" contact="Samuel Pitoiset @hakzsam" supported="disabled">
+        <extension name="VK_EXT_depth_bias_control" number="284" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" specialuse="d3demulation" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_EXT_EXTENSION_284_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_284&quot;"              name="VK_EXT_EXTENSION_284_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_depth_bias_control&quot;"         name="VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT"/>
+                <type name="VkPhysicalDeviceDepthBiasControlFeaturesEXT"/>
+                <type name="VkDepthBiasInfoEXT"/>
+                <type name="VkDepthBiasRepresentationEXT"/>
+                <type name="VkDepthBiasRepresentationInfoEXT"/>
+                <command name="vkCmdSetDepthBias2EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_device_memory_report" number="285" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" specialuse="devtools" supported="vulkan">
+        <extension name="VK_EXT_device_memory_report" number="285" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" specialuse="devtools" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_device_memory_report&quot;"       name="VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME"/>
@@ -18633,7 +20710,7 @@
                 <type name="PFN_vkDeviceMemoryReportCallbackEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_acquire_drm_display" number="286" type="instance" requires="VK_EXT_direct_mode_display" author="EXT" contact="Drew DeVault sir@cmpwn.com" supported="vulkan">
+        <extension name="VK_EXT_acquire_drm_display" number="286" type="instance" depends="VK_EXT_direct_mode_display" author="EXT" contact="Drew DeVault sir@cmpwn.com" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_acquire_drm_display&quot;"        name="VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME"/>
@@ -18641,7 +20718,7 @@
                 <command name="vkGetDrmDisplayEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_robustness2" number="287"  type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" supported="vulkan">
+        <extension name="VK_EXT_robustness2" number="287"  type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Liam Middlebrook @liam-middlebrook" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                                 name="VK_EXT_ROBUSTNESS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_robustness2&quot;"                    name="VK_EXT_ROBUSTNESS_2_EXTENSION_NAME"/>
@@ -18651,7 +20728,7 @@
                 <type name="VkPhysicalDeviceRobustness2PropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_custom_border_color" number="288" type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" specialuse="glemulation,d3demulation" supported="vulkan">
+        <extension name="VK_EXT_custom_border_color" number="288" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Liam Middlebrook @liam-middlebrook" specialuse="glemulation,d3demulation" supported="vulkan,vulkansc">
             <require>
                 <enum value="12"                                            name="VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_custom_border_color&quot;"        name="VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME"/>
@@ -18712,7 +20789,7 @@
                 <enum value="&quot;VK_GOOGLE_user_type&quot;"               name="VK_GOOGLE_USER_TYPE_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_pipeline_library" number="291" type="device" author="KHR" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
+        <extension name="VK_KHR_pipeline_library" number="291" type="device" author="KHR" contact="Christoph Kubisch @pixeljetstream" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_pipeline_library&quot;"           name="VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME"/>
@@ -18727,7 +20804,7 @@
                 <enum value="&quot;VK_NV_extension_292&quot;"               name="VK_NV_EXTENSION_292_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_present_barrier" number="293" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2,VK_KHR_surface,VK_KHR_get_surface_capabilities2,VK_KHR_swapchain" contact="Liya Li @liyli" supported="vulkan">
+        <extension name="VK_NV_present_barrier" number="293" type="device" author="NV" depends="VK_KHR_get_physical_device_properties2+VK_KHR_surface+VK_KHR_get_surface_capabilities2+VK_KHR_swapchain" contact="Liya Li @liyli" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_PRESENT_BARRIER_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_present_barrier&quot;"             name="VK_NV_PRESENT_BARRIER_EXTENSION_NAME"/>
@@ -18739,13 +20816,13 @@
                 <type name="VkSwapchainPresentBarrierCreateInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_non_semantic_info" number="294" type="device" author="KHR" contact="Baldur Karlsson @baldurk" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_shader_non_semantic_info" number="294" type="device" author="KHR" contact="Baldur Karlsson @baldurk" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_non_semantic_info&quot;"   name="VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_present_id" number="295" type="device" requires="VK_KHR_swapchain" author="KHR" contact="Keith Packard @keithp" supported="vulkan">
+        <extension name="VK_KHR_present_id" number="295" type="device" depends="VK_KHR_swapchain+VK_KHR_get_physical_device_properties2" author="KHR" contact="Keith Packard @keithp" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                         name="VK_KHR_PRESENT_ID_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_present_id&quot;"             name="VK_KHR_PRESENT_ID_EXTENSION_NAME"/>
@@ -18755,7 +20832,7 @@
                 <type name="VkPhysicalDevicePresentIdFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_private_data" number="296" type="device" author="NV" contact="Matthew Rusch @mattruschnv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_private_data" number="296" type="device" author="NV" contact="Matthew Rusch @mattruschnv" supported="vulkan" depends="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_PRIVATE_DATA_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_private_data&quot;"               name="VK_EXT_PRIVATE_DATA_EXTENSION_NAME"/>
@@ -18781,7 +20858,7 @@
                 <enum bitpos="3" extends="VkPipelineShaderStageCreateFlagBits"  name="VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pipeline_creation_cache_control" number="298" type="device" author="AMD" contact="Gregory Grebe @grgrebe_amd" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_pipeline_creation_cache_control" number="298" type="device" author="AMD" contact="Gregory Grebe @grgrebe_amd" depends="VK_KHR_get_physical_device_properties2" supported="vulkan" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="3"                                             name="VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pipeline_creation_cache_control&quot;"    name="VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME"/>
@@ -18795,42 +20872,49 @@
                 <type name="VkPipelineCacheCreateFlagBits" comment="This is a temporary workaround for processors not recognizing that VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT above also requires this type"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_299" number="299" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
-            <require>
-                <enum value="0"                                             name="VK_KHR_EXTENSION_299_SPEC_VERSION"/>
-                <enum value="&quot;VK_KHR_extension_299&quot;"              name="VK_KHR_EXTENSION_299_EXTENSION_NAME"/>
-                <enum bitpos="2"  extends="VkMemoryHeapFlagBits"            name="VK_MEMORY_HEAP_RESERVED_2_BIT_KHR"/>
-                <enum             extends="VkPipelineCacheCreateFlagBits"   name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_KHR" alias="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
-                <enum bitpos="2"  extends="VkPipelineCacheCreateFlagBits"   name="VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_KHR"/>
+        <extension name="VK_KHR_extension_299" number="299" type="device" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
+            <require comment="used for Vulkan SC 1.0 namespace">
+                <enum value="0"                                         name="VK_KHR_EXTENSION_299_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_299&quot;"          name="VK_KHR_EXTENSION_299_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_video_encode_queue" number="300"  type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
+        <extension name="VK_KHR_video_encode_queue" number="300"  type="device" depends="VK_KHR_video_queue+VK_KHR_synchronization2" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="7"                                         name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/>
+                <enum value="12"                                        name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_video_encode_queue&quot;"     name="VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME"/>
                 <!-- VkPipelineStageFlagBits bitpos="27" is reserved by this extension, but not used -->
-                <enum bitpos="27" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
-                <enum bitpos="37" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
-                <enum bitpos="38" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="6" extends="VkQueueFlagBits"              name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="1" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="2" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="15" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="16" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="13" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="14" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="15" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="27" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="28" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="0" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="1" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="2" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum offset="0" extends="VkQueryType"                  name="VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="27" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"/>
+                <enum bitpos="37" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"/>
+                <enum bitpos="38" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR"/>
+                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR"/>
+                <enum offset="7" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR"/>
+                <enum offset="8" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR"/>
+                <enum offset="9" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR"/>
+                <enum offset="10" extends="VkStructureType"             name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR"/>
+                <enum bitpos="6" extends="VkQueueFlagBits"              name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR"/>
+                <enum bitpos="1" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"/>
+                <enum bitpos="2" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR"/>
+                <enum bitpos="15" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"/>
+                <enum bitpos="16" extends="VkBufferUsageFlagBits"       name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"/>
+                <enum bitpos="13" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"/>
+                <enum bitpos="14" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"/>
+                <enum bitpos="15" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"/>
+                <enum bitpos="27" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"/>
+                <enum bitpos="28" extends="VkFormatFeatureFlagBits"     name="VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"/>
+                <enum bitpos="1" extends="VkVideoSessionCreateFlagBitsKHR" name="VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR"/>
+                <enum offset="0" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR"/>
+                <enum offset="1" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR"/>
+                <enum offset="2" extends="VkImageLayout"                name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR"/>
+                <enum offset="0" extends="VkQueryType"                  name="VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR"/>
+                <enum offset="0" extends="VkQueryResultStatusKHR" dir="-" name="VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR"/>
+
+                <enum offset="0" extends="VkResult" dir="-"             name="VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR"/>
 
                 <type name="VkVideoEncodeFlagsKHR"/>
                 <type name="VkVideoEncodeInfoKHR"/>
@@ -18839,6 +20923,10 @@
                 <type name="VkVideoEncodeCapabilityFlagsKHR"/>
                 <type name="VkVideoEncodeCapabilitiesKHR"/>
 
+                <type name="VkQueryPoolVideoEncodeFeedbackCreateInfoKHR"/>
+                <type name="VkVideoEncodeFeedbackFlagBitsKHR"/>
+                <type name="VkVideoEncodeFeedbackFlagsKHR"/>
+
                 <type name="VkVideoEncodeUsageFlagBitsKHR"/>
                 <type name="VkVideoEncodeUsageFlagsKHR"/>
                 <type name="VkVideoEncodeContentFlagBitsKHR"/>
@@ -18852,14 +20940,23 @@
                 <type name="VkVideoEncodeRateControlInfoKHR"/>
                 <type name="VkVideoEncodeRateControlLayerInfoKHR"/>
 
+                <type name="VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR"/>
+                <type name="VkVideoEncodeQualityLevelPropertiesKHR"/>
+                <type name="VkVideoEncodeQualityLevelInfoKHR"/>
+
+                <type name="VkVideoEncodeSessionParametersGetInfoKHR"/>
+                <type name="VkVideoEncodeSessionParametersFeedbackInfoKHR"/>
+
+                <command name="vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"/>
+                <command name="vkGetEncodedVideoSessionParametersKHR"/>
                 <command name="vkCmdEncodeVideoKHR"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
-                <enum bitpos="27" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-                <enum bitpos="28" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+            <require depends="VK_KHR_format_feature_flags2">
+                <enum bitpos="27" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"/>
+                <enum bitpos="28" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_device_diagnostics_config" number="301" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
+        <extension name="VK_NV_device_diagnostics_config" number="301" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_device_diagnostics_config&quot;"   name="VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME"/>
@@ -18871,66 +20968,104 @@
                 <type name="VkDeviceDiagnosticsConfigFlagBitsNV"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_render_pass_store_ops" number="302" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
+        <extension name="VK_QCOM_render_pass_store_ops" number="302" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="2"                                             name="VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_render_pass_store_ops&quot;"     name="VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME"/>
                 <enum extends="VkAttachmentStoreOp"                         name="VK_ATTACHMENT_STORE_OP_NONE_QCOM" alias="VK_ATTACHMENT_STORE_OP_NONE"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_303" number="303" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_303" number="303" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_303_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_303&quot;"             name="VK_QCOM_EXTENSION_303_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_304" number="304" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_304" number="304" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_304_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_304&quot;"             name="VK_QCOM_EXTENSION_304_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_305" number="305" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_305" number="305" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_305_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_305&quot;"             name="VK_QCOM_EXTENSION_305_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_306" number="306" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_306" number="306" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_306_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_306&quot;"             name="VK_QCOM_EXTENSION_306_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_307" number="307" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
+        <extension name="VK_QCOM_extension_307" number="307" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_307_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_307&quot;"             name="VK_QCOM_EXTENSION_307_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_308" number="308" type="device" author="NV" contact="Tristan Lorach @tlorach" supported="disabled">
+        <extension name="VK_NV_cuda_kernel_launch" number="308" type="device" author="NV" contact="Tristan Lorach @tlorach" supported="vulkan" provisional="true">
             <require>
-                <enum value="0"                                             name="VK_NV_EXTENSION_308_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_308&quot;"               name="VK_NV_EXTENSION_308_EXTENSION_NAME"/>
+                <enum value="2"                                             name="VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_cuda_kernel_launch&quot;"          name="VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV"/>
+                <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"/>
+                <enum offset="0" extends="VkObjectType"                     name="VK_OBJECT_TYPE_CUDA_MODULE_NV"/>
+                <enum offset="1" extends="VkObjectType"                     name="VK_OBJECT_TYPE_CUDA_FUNCTION_NV"/>
+                <type name="VkCudaModuleNV"/>
+                <type name="VkCudaFunctionNV"/>
+                <type name="VkCudaModuleCreateInfoNV"/>
+                <type name="VkCudaFunctionCreateInfoNV"/>
+                <type name="VkCudaLaunchInfoNV"/>
+                <type name="VkPhysicalDeviceCudaKernelLaunchFeaturesNV"/>
+                <type name="VkPhysicalDeviceCudaKernelLaunchPropertiesNV"/>
+                <command name="vkCreateCudaModuleNV"/>
+                <command name="vkGetCudaModuleCacheNV"/>
+                <command name="vkCreateCudaFunctionNV"/>
+                <command name="vkDestroyCudaModuleNV"/>
+                <command name="vkDestroyCudaFunctionNV"/>
+                <command name="vkCmdCudaLaunchKernelNV"/>
+            </require>
+            <require depends="VK_EXT_debug_report">
+                <enum offset="0" extends="VkDebugReportObjectTypeEXT"       name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT"/>
+                <enum offset="1" extends="VkDebugReportObjectTypeEXT"       name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_309" number="309" author="KHR" contact="Aidan Fabius @afabius" supported="disabled">
+        <extension name="VK_KHR_object_refresh" number="309" type="device" author="KHR" contact="Aidan Fabius @afabius" supported="vulkansc" ratified="vulkansc">
             <require>
-                <enum value="0"                                             name="VK_KHR_EXTENSION_309_SPEC_VERSION"/>
-                <enum value="&quot;VK_KHR_extension_309&quot;"              name="VK_KHR_EXTENSION_309_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_KHR_OBJECT_REFRESH_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_object_refresh&quot;"             name="VK_KHR_OBJECT_REFRESH_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR"/>
+                <type name="VkRefreshObjectListKHR"/>
+                <type name="VkRefreshObjectKHR"/>
+                <type name="VkRefreshObjectFlagBitsKHR"/>
+                <type name="VkRefreshObjectFlagsKHR"/>
+                <command name="vkCmdRefreshObjectsKHR"/>
+                <command name="vkGetPhysicalDeviceRefreshableObjectTypesKHR"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_310" number="310" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
+        <extension name="VK_QCOM_extension_310" number="310" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_QCOM_EXTENSION_310_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_310&quot;"             name="VK_QCOM_EXTENSION_310_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_RESERVED_QCOM"/>
+                <enum bitpos="27" extends="VkBufferUsageFlagBits"           name="VK_BUFFER_USAGE_RESERVED_27_BIT_QCOM"/>
+                <enum bitpos="27" extends="VkBufferUsageFlagBits2KHR"       name="VK_BUFFER_USAGE_2_RESERVED_27_BIT_QCOM"/>
+                <enum bitpos="51" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_51_BIT_QCOM"/>
+                <enum bitpos="52" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_52_BIT_QCOM"/>
+                <enum bitpos="53" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_53_BIT_QCOM"/>
+                <enum bitpos="54" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_54_BIT_QCOM"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_311" number="311" author="NV" contact="Charles Hansen @cshansen" supported="disabled">
+        <extension name="VK_NV_low_latency" number="311" author="NV" type="device" supported="vulkan" contact="Charles Hansen @cshansen" >
             <require>
-                <enum value="0"                                             name="VK_NV_EXTENSION_311_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_311&quot;"               name="VK_NV_EXTENSION_311_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_NV_LOW_LATENCY_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_low_latency&quot;"                 name="VK_NV_LOW_LATENCY_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV"/>
+                <type name="VkQueryLowLatencySupportNV"/>
             </require>
         </extension>
         <extension name="VK_EXT_metal_objects" number="312" type="device" platform="metal" supported="vulkan" author="EXT" contact="Bill Hollings @billhollings">
@@ -18984,7 +21119,7 @@
                 <enum value="&quot;VK_AMD_extension_314&quot;"              name="VK_AMD_EXTENSION_314_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_synchronization2" number="315" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_synchronization2" number="315" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Tobias Hector @tobski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_synchronization2&quot;"           name="VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME"/>
@@ -19023,65 +21158,65 @@
                 <command name="vkCmdWriteTimestamp2KHR"/>
                 <command name="vkQueueSubmit2KHR"/>
             </require>
-            <require extension="VK_EXT_transform_feedback">
+            <require depends="VK_EXT_transform_feedback">
                 <enum bitpos="24" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"/>
                 <enum bitpos="25" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"/>
                 <enum bitpos="26" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"/>
                 <enum bitpos="27" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"/>
             </require>
-            <require extension="VK_EXT_conditional_rendering">
+            <require depends="VK_EXT_conditional_rendering">
                 <enum bitpos="18" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" comment="A pipeline stage for conditional rendering predicate fetch"/>
                 <enum bitpos="20" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"  comment="read access flag for reading conditional rendering predicate"/>
             </require>
-            <require extension="VK_NV_device_generated_commands">
+            <require depends="VK_NV_device_generated_commands">
                 <enum bitpos="17" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
                 <enum bitpos="17" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"/>
                 <enum bitpos="18" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
             </require>
-            <require extension="VK_KHR_fragment_shading_rate">
+            <require depends="VK_KHR_fragment_shading_rate">
                 <enum bitpos="22" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
                 <enum bitpos="23" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
             </require>
-            <require extension="VK_NV_shading_rate_image">
+            <require depends="VK_NV_shading_rate_image">
                 <enum extends="VkPipelineStageFlagBits2"                    name="VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV" alias="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
                 <enum extends="VkAccessFlagBits2"                           name="VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"    alias="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
             </require>
-            <require extension="VK_KHR_acceleration_structure">
+            <require depends="VK_KHR_acceleration_structure">
                 <enum bitpos="25" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
                 <enum bitpos="21" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
                 <enum bitpos="22" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
             </require>
-            <require extension="VK_KHR_ray_tracing_pipeline">
+            <require depends="VK_KHR_ray_tracing_pipeline">
                 <enum bitpos="21" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"/>
             </require>
-            <require extension="VK_NV_ray_tracing">
+            <require depends="VK_NV_ray_tracing">
                 <enum extends="VkPipelineStageFlagBits2"                    name="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"/>
                 <enum extends="VkPipelineStageFlagBits2"                    name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV" alias="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
                 <enum extends="VkAccessFlagBits2"                           name="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV" alias="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
                 <enum extends="VkAccessFlagBits2"                           name="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV" alias="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
             </require>
-            <require extension="VK_EXT_fragment_density_map">
+            <require depends="VK_EXT_fragment_density_map">
                 <enum bitpos="23" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"/>
                 <enum bitpos="24" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"/>
             </require>
-            <require extension="VK_EXT_blend_operation_advanced">
+            <require depends="VK_EXT_blend_operation_advanced">
                 <enum bitpos="19" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"/>
             </require>
-            <require extension="VK_NV_mesh_shader">
+            <require depends="VK_NV_mesh_shader">
                 <enum extends="VkPipelineStageFlagBits2"                    name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"/>
                 <enum extends="VkPipelineStageFlagBits2"                    name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"/>
             </require>
-            <require extension="VK_AMD_buffer_marker">
+            <require depends="VK_AMD_buffer_marker">
                 <command name="vkCmdWriteBufferMarker2AMD"/>
             </require>
-            <require extension="VK_NV_device_diagnostic_checkpoints">
+            <require depends="VK_NV_device_diagnostic_checkpoints">
                 <type name="VkQueueFamilyCheckpointProperties2NV"/>
                 <type name="VkCheckpointData2NV"/>
                 <command name="vkGetQueueCheckpointData2NV"/>
                 <enum offset="8" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"/>
                 <enum offset="9" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"/>
             </require>
-            <require extension="VK_EXT_mesh_shader">
+            <require depends="VK_EXT_mesh_shader">
                 <enum bitpos="19" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"/>
                 <enum bitpos="20" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"/>
             </require>
@@ -19092,7 +21227,7 @@
                 <enum value="&quot;VK_AMD_extension_316&quot;"              name="VK_AMD_EXTENSION_316_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_descriptor_buffer" number="317" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2,VK_KHR_buffer_device_address,VK_KHR_synchronization2,VK_EXT_descriptor_indexing" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_EXT_descriptor_buffer" number="317" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2+VK_KHR_buffer_device_address+VK_KHR_synchronization2+VK_EXT_descriptor_indexing" contact="Tobias Hector @tobski" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_descriptor_buffer&quot;"              name="VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME"/>
@@ -19144,7 +21279,7 @@
                 <command name="vkGetImageViewOpaqueCaptureDescriptorDataEXT"/>
                 <command name="vkGetSamplerOpaqueCaptureDescriptorDataEXT"/>
             </require>
-            <require extension="VK_KHR_acceleration_structure,VK_NV_ray_tracing">
+            <require depends="VK_KHR_acceleration_structure,VK_NV_ray_tracing">
                 <enum offset="9" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"/>
                 <type name="VkAccelerationStructureCaptureDescriptorDataInfoEXT"/>
                 <command name="vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"/>
@@ -19170,7 +21305,7 @@
                 <enum value="&quot;VK_AMD_extension_320&quot;"              name="VK_AMD_EXTENSION_320_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_graphics_pipeline_library" number="321" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_pipeline_library" author="AMD" contact="Tobias Hector @tobski" supported="vulkan">
+        <extension name="VK_EXT_graphics_pipeline_library" number="321" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_pipeline_library" author="AMD" contact="Tobias Hector @tobski" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_graphics_pipeline_library&quot;"  name="VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME"/>
@@ -19188,7 +21323,7 @@
                 <enum bitpos="1" extends="VkPipelineLayoutCreateFlagBits" name="VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_AMD_shader_early_and_late_fragment_tests" number="322" author="EXT" contact="Tobias Hector @tobski" type="device" supported="vulkan">
+        <extension name="VK_AMD_shader_early_and_late_fragment_tests" number="322" author="EXT" contact="Tobias Hector @tobski" type="device" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_shader_early_and_late_fragment_tests&quot;" name="VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME"/>
@@ -19196,7 +21331,7 @@
                 <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"/>
             </require>
         </extension>
-        <extension name="VK_KHR_fragment_shader_barycentric" number="323" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Stu Smith" supported="vulkan">
+        <extension name="VK_KHR_fragment_shader_barycentric" number="323" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Stu Smith" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                              name="VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_fragment_shader_barycentric&quot;" name="VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME"/>
@@ -19206,7 +21341,7 @@
                 <type name="VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_shader_subgroup_uniform_control_flow" number="324" type="device" requiresCore="1.1" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan">
+        <extension name="VK_KHR_shader_subgroup_uniform_control_flow" number="324" type="device" depends="VK_VERSION_1_1" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1" name="VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_shader_subgroup_uniform_control_flow&quot;" name="VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME"/>
@@ -19220,7 +21355,7 @@
                 <enum value="&quot;VK_KHR_extension_325&quot;"              name="VK_KHR_EXTENSION_325_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_zero_initialize_workgroup_memory" number="326" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_zero_initialize_workgroup_memory" number="326" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="1"                                                   name="VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_zero_initialize_workgroup_memory&quot;" name="VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME"/>
@@ -19228,7 +21363,7 @@
                 <type name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_NV_fragment_shading_rate_enums" number="327" type="device" requires="VK_KHR_fragment_shading_rate" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
+        <extension name="VK_NV_fragment_shading_rate_enums" number="327" type="device" depends="VK_KHR_fragment_shading_rate" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_fragment_shading_rate_enums&quot;" name="VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME"/>
@@ -19243,7 +21378,7 @@
                 <command name="vkCmdSetFragmentShadingRateEnumNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_ray_tracing_motion_blur" number="328" type="device" requires="VK_KHR_ray_tracing_pipeline" author="NV" contact="Eric Werness" supported="vulkan">
+        <extension name="VK_NV_ray_tracing_motion_blur" number="328" type="device" depends="VK_KHR_ray_tracing_pipeline" author="NV" contact="Eric Werness" supported="vulkan">
             <require>
                 <enum value="1"                                                    name="VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_ray_tracing_motion_blur&quot;"            name="VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME"/>
@@ -19266,7 +21401,7 @@
                 <type name="VkAccelerationStructureMotionInstanceFlagsNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_mesh_shader" number="329" type="device" requiresCore="1.1" requires="VK_KHR_get_physical_device_properties2,VK_KHR_spirv_1_4" author="EXT" sortorder="1" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
+        <extension name="VK_EXT_mesh_shader" number="329" type="device" depends="VK_KHR_spirv_1_4" author="EXT" sortorder="1" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_EXT_MESH_SHADER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_mesh_shader&quot;"            name="VK_EXT_MESH_SHADER_EXTENSION_NAME"/>
@@ -19286,7 +21421,7 @@
                 <type name="VkPhysicalDeviceMeshShaderPropertiesEXT"/>
                 <type name="VkDrawMeshTasksIndirectCommandEXT"/>
             </require>
-            <require extension="VK_NV_device_generated_commands">
+            <require depends="VK_NV_device_generated_commands">
                 <enum offset="0" extends="VkIndirectCommandsTokenTypeNV" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"/>
             </require>
         </extension>
@@ -19296,7 +21431,7 @@
                 <enum value="&quot;VK_NV_extension_330&quot;"               name="VK_NV_EXTENSION_330_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_ycbcr_2plane_444_formats" number="331" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_ycbcr_2plane_444_formats" number="331" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <comment>
                     VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and
@@ -19319,7 +21454,7 @@
                 <enum value="&quot;VK_NV_extension_332&quot;"               name="VK_NV_EXTENSION_332_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_fragment_density_map2" number="333" type="device" requires="VK_EXT_fragment_density_map" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
+        <extension name="VK_EXT_fragment_density_map2" number="333" type="device" depends="VK_EXT_fragment_density_map" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_fragment_density_map2&quot;"      name="VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME"/>
@@ -19330,21 +21465,21 @@
                 <type name="VkPhysicalDeviceFragmentDensityMap2PropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_rotated_copy_commands" number="334" type="device" requires="VK_KHR_swapchain,VK_KHR_copy_commands2" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
+        <extension name="VK_QCOM_rotated_copy_commands" number="334" type="device" depends="VK_KHR_copy_commands2" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
-                <enum value="1"                                             name="VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION"/>
+                <enum value="2"                                             name="VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_rotated_copy_commands&quot;"     name="VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"/>
                 <type name="VkCopyCommandTransformInfoQCOM"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_335" number="335" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
+        <extension name="VK_KHR_extension_335" number="335" type="device" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_KHR_EXTENSION_335_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_extension_335&quot;"              name="VK_KHR_EXTENSION_335_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_robustness" number="336" type="device" author="EXT" contact="Graeme Leese @gnl21" supported="vulkan" requires="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_image_robustness" number="336" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Graeme Leese @gnl21" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_robustness&quot;"           name="VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME"/>
@@ -19352,7 +21487,7 @@
                 <type name="VkPhysicalDeviceImageRobustnessFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_workgroup_memory_explicit_layout" number="337" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Caio Marcelo de Oliveira Filho @cmarcelo" supported="vulkan">
+        <extension name="VK_KHR_workgroup_memory_explicit_layout" number="337" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Caio Marcelo de Oliveira Filho @cmarcelo" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                                      name="VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_workgroup_memory_explicit_layout&quot;"    name="VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME"/>
@@ -19360,7 +21495,7 @@
                 <type name="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_copy_commands2" number="338" author="KHR" type="device" contact="Jeff Leger @jackohound" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_copy_commands2" number="338" author="KHR" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Jeff Leger @jackohound" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3" ratified="vulkan,vulkansc">
             <require>
                 <enum value="1"                                             name="VK_KHR_COPY_COMMANDS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_copy_commands2&quot;"             name="VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME"/>
@@ -19394,7 +21529,7 @@
                 <command name="vkCmdResolveImage2KHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_compression_control" number="339" type="device" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
+        <extension name="VK_EXT_image_compression_control" number="339" type="device" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_compression_control&quot;"  name="VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME"/>
@@ -19402,9 +21537,9 @@
                 <type name="VkPhysicalDeviceImageCompressionControlFeaturesEXT"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"/>
                 <type name="VkImageCompressionControlEXT"/>
-                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"/>
+                <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT" alias="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR"/>
                 <type name="VkSubresourceLayout2EXT"/>
-                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"/>
+                <enum extends="VkStructureType"                             name="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT" alias="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR"/>
                 <type name="VkImageSubresource2EXT"/>
                 <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"/>
                 <type name="VkImageCompressionPropertiesEXT"/>
@@ -19416,7 +21551,7 @@
                 <command name="vkGetImageSubresourceLayout2EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_attachment_feedback_loop_layout" number="340" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan">
+        <extension name="VK_EXT_attachment_feedback_loop_layout" number="340" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="2"                                                    name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_attachment_feedback_loop_layout&quot;"   name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME"/>
@@ -19429,7 +21564,7 @@
                 <type name="VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_4444_formats" number="341" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_4444_formats" number="341" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <comment>
                     VkPhysicalDevice4444FormatsFeaturesEXT and
@@ -19444,9 +21579,9 @@
                 <type name="VkPhysicalDevice4444FormatsFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_device_fault" number="342" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Ralph Potter gitlab:@r_potter" supported="vulkan">
+        <extension name="VK_EXT_device_fault" number="342" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Ralph Potter gitlab:@r_potter" supported="vulkan">
             <require>
-                <enum value="1"                                             name="VK_EXT_DEVICE_FAULT_SPEC_VERSION"/>
+                <enum value="2"                                             name="VK_EXT_DEVICE_FAULT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_device_fault&quot;"               name="VK_EXT_DEVICE_FAULT_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"/>
@@ -19462,7 +21597,7 @@
                 <command name="vkGetDeviceFaultInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_ARM_rasterization_order_attachment_access" number="343" type="device" requires="VK_KHR_get_physical_device_properties2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" promotedto="VK_EXT_rasterization_order_attachment_access">
+        <extension name="VK_ARM_rasterization_order_attachment_access" number="343" type="device" depends="VK_KHR_get_physical_device_properties2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" promotedto="VK_EXT_rasterization_order_attachment_access">
             <require>
                 <enum value="1"                                                        name="VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_ARM_rasterization_order_attachment_access&quot;" name="VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME"/>
@@ -19482,7 +21617,7 @@
                 <enum value="&quot;VK_ARM_extension_344&quot;"              name="VK_ARM_EXTENSION_344_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_rgba10x6_formats" number="345" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
+        <extension name="VK_EXT_rgba10x6_formats" number="345" type="device" depends="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
              <require>
                     <enum value="1"                                                name="VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION"/>
                     <enum value="&quot;VK_EXT_rgba10x6_formats&quot;"              name="VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME"/>
@@ -19490,7 +21625,7 @@
                     <type name="VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_NV_acquire_winrt_display" number="346" type="device" requires="VK_EXT_direct_mode_display" author="NV" contact="Jeff Juliano @jjuliano" platform="win32" supported="vulkan">
+        <extension name="VK_NV_acquire_winrt_display" number="346" type="device" depends="VK_EXT_direct_mode_display" author="NV" contact="Jeff Juliano @jjuliano" platform="win32" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_acquire_winrt_display&quot;"       name="VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME"/>
@@ -19498,7 +21633,7 @@
                 <command name="vkGetWinrtDisplayNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_directfb_surface" number="347" type="instance" requires="VK_KHR_surface" platform="directfb" supported="vulkan" author="EXT" contact="Nicolas Caramelli @caramelli">
+        <extension name="VK_EXT_directfb_surface" number="347" type="instance" depends="VK_KHR_surface" platform="directfb" supported="vulkan" author="EXT" contact="Nicolas Caramelli @caramelli">
             <require>
                 <enum value="1"                                             name="VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_directfb_surface&quot;"           name="VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME"/>
@@ -19509,7 +21644,7 @@
                 <command name="vkGetPhysicalDeviceDirectFBPresentationSupportEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_350" number="350" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
+        <extension name="VK_KHR_extension_350" number="350" type="device" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
             <require>
                 <enum value="0"                                             name="VK_KHR_EXTENSION_350_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_extension_350&quot;"              name="VK_KHR_EXTENSION_350_EXTENSION_NAME"/>
@@ -19521,7 +21656,7 @@
                 <enum value="&quot;VK_NV_extension_351&quot;"               name="VK_NV_EXTENSION_351_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_VALVE_mutable_descriptor_type" number="352" type="device" supported="vulkan" author="VALVE" contact="Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" requires="VK_KHR_maintenance3" promotedto="VK_EXT_mutable_descriptor_type">
+        <extension name="VK_VALVE_mutable_descriptor_type" number="352" type="device" supported="vulkan" author="VALVE" contact="Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" depends="VK_KHR_maintenance3" promotedto="VK_EXT_mutable_descriptor_type">
             <require>
                 <enum value="1"                                                name="VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION"/>
                 <enum value="&quot;VK_VALVE_mutable_descriptor_type&quot;"     name="VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME"/>
@@ -19535,7 +21670,7 @@
                 <type name="VkMutableDescriptorTypeCreateInfoVALVE"/>
             </require>
         </extension>
-        <extension name="VK_EXT_vertex_input_dynamic_state" number="353" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_vertex_input_dynamic_state" number="353" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
             <require>
                 <enum value="2"                                             name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_vertex_input_dynamic_state&quot;" name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME"/>
@@ -19549,7 +21684,7 @@
                 <command name="vkCmdSetVertexInputEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_physical_device_drm" number="354" author="EXT" type="device" contact="Simon Ser @emersion" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
+        <extension name="VK_EXT_physical_device_drm" number="354" author="EXT" type="device" contact="Simon Ser @emersion" supported="vulkan" depends="VK_KHR_get_physical_device_properties2">
             <require>
                 <enum value="1"                                             name="VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_physical_device_drm&quot;"        name="VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME"/>
@@ -19559,7 +21694,7 @@
                 <type name="VkPhysicalDeviceDrmPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_device_address_binding_report" number="355" type="device" requires="VK_KHR_get_physical_device_properties2,VK_EXT_debug_utils" author="EXT" contact="Ralph Potter gitlab:@r_potter" specialuse="debugging,devtools" supported="vulkan">
+        <extension name="VK_EXT_device_address_binding_report" number="355" type="device" depends="VK_KHR_get_physical_device_properties2+VK_EXT_debug_utils" author="EXT" contact="Ralph Potter gitlab:@r_potter" specialuse="debugging,devtools" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_device_address_binding_report&quot;"  name="VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME"/>
@@ -19573,7 +21708,7 @@
                 <type name="VkDeviceAddressBindingTypeEXT" />
             </require>
         </extension>
-        <extension name="VK_EXT_depth_clip_control" number="356" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
+        <extension name="VK_EXT_depth_clip_control" number="356" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
             <require>
                 <enum value="1"                                             name="VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_depth_clip_control&quot;"         name="VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME"/>
@@ -19583,7 +21718,7 @@
                 <type name="VkPipelineViewportDepthClipControlCreateInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_primitive_topology_list_restart" number="357" type="device" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
+        <extension name="VK_EXT_primitive_topology_list_restart" number="357" type="device" author="EXT" contact="Shahbaz Youssefi @syoussefi" depends="VK_KHR_get_physical_device_properties2" supported="vulkan" specialuse="glemulation">
             <require>
                 <enum value="1"                                             name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_primitive_topology_list_restart&quot;"           name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME"/>
@@ -19609,7 +21744,7 @@
                 <enum value="&quot;VK_EXT_extension_360&quot;"              name="VK_EXT_EXTENSION_360_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_format_feature_flags2" number="361" author="KHR" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Lionel Landwerlin @llandwerlin" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_format_feature_flags2" number="361" author="KHR" type="device" depends="VK_KHR_get_physical_device_properties2" contact="Lionel Landwerlin @llandwerlin" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="2"                                             name="VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_format_feature_flags2&quot;"      name="VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME"/>
@@ -19637,7 +21772,7 @@
                 <enum value="&quot;VK_FUCHSIA_extension_364&quot;"          name="VK_FUCHSIA_EXTENSION_364_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_FUCHSIA_external_memory" number="365" type="device" requires="VK_KHR_external_memory_capabilities,VK_KHR_external_memory" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
+        <extension name="VK_FUCHSIA_external_memory" number="365" type="device" depends="VK_KHR_external_memory_capabilities+VK_KHR_external_memory" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
             <require>
                 <enum value="1"                                                name="VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_FUCHSIA_external_memory&quot;"           name="VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME"/>
@@ -19652,7 +21787,7 @@
                 <command name="vkGetMemoryZirconHandlePropertiesFUCHSIA"/>
             </require>
         </extension>
-        <extension name="VK_FUCHSIA_external_semaphore" number="366" type="device" requires="VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
+        <extension name="VK_FUCHSIA_external_semaphore" number="366" type="device" depends="VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
             <require>
                 <enum value="1"                                                name="VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION"/>
                 <enum value="&quot;VK_FUCHSIA_external_semaphore&quot;"        name="VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME"/>
@@ -19665,13 +21800,12 @@
                 <command name="vkGetSemaphoreZirconHandleFUCHSIA"/>
             </require>
         </extension>
-        <extension name="VK_FUCHSIA_buffer_collection" number="367" type="device" requires="VK_FUCHSIA_external_memory,VK_KHR_sampler_ycbcr_conversion" author="FUCHSIA" contact="John Rosasco @rosasco" supported="vulkan" platform="fuchsia">
+        <extension name="VK_FUCHSIA_buffer_collection" number="367" type="device" depends="VK_FUCHSIA_external_memory+VK_KHR_sampler_ycbcr_conversion" author="FUCHSIA" contact="John Rosasco @rosasco" supported="vulkan" platform="fuchsia">
             <require>
                 <enum value="2"                                         name="VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION"/>
                 <enum value="&quot;VK_FUCHSIA_buffer_collection&quot;"  name="VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"/>
                 <enum offset="0" extends="VkObjectType"                 name="VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA" comment="VkBufferCollectionFUCHSIA"/>
-                <enum offset="0" extends="VkDebugReportObjectTypeEXT"   name="VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT"/>
                 <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"/>
                 <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"/>
                 <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"/>
@@ -19701,6 +21835,9 @@
                 <command name="vkDestroyBufferCollectionFUCHSIA"/>
                 <command name="vkGetBufferCollectionPropertiesFUCHSIA"/>
             </require>
+            <require depends="VK_EXT_debug_report">
+                <enum offset="0" extends="VkDebugReportObjectTypeEXT"   name="VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT"/>
+            </require>
         </extension>
         <extension name="VK_FUCHSIA_extension_368" number="368" author="FUCHSIA" contact="Craig Stout @cdotstout" supported="disabled">
             <require>
@@ -19715,15 +21852,16 @@
                 <enum bitpos="4" extends="VkDescriptorBindingFlagBits"  name="VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM"/>
             </require>
         </extension>
-        <extension name="VK_HUAWEI_subpass_shading" number="370" type="device" author="HUAWEI" contact="Pan Gao @PanGao-h" requires="VK_KHR_create_renderpass2,VK_KHR_synchronization2" supported="vulkan">
+        <extension name="VK_HUAWEI_subpass_shading" number="370" type="device" author="HUAWEI" contact="Pan Gao @PanGao-h" depends="VK_KHR_create_renderpass2+VK_KHR_synchronization2" supported="vulkan">
             <require>
-                <enum value="2"                                         name="VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION"/>
+                <enum value="3"                                         name="VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION"/>
                 <enum value="&quot;VK_HUAWEI_subpass_shading&quot;"         name="VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"/>
                 <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"/>
                 <enum offset="3" extends="VkPipelineBindPoint" extnumber="370" name="VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI"/>
-                <enum bitpos="39" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"/>
+                <enum bitpos="39" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI"/>
+                <enum             extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI" alias="VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI" deprecated="aliased"/>
                 <enum bitpos="14" extends="VkShaderStageFlagBits"           name="VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"/>
                 <type name="VkSubpassShadingPipelineCreateInfoHUAWEI"/>
                 <type name="VkPhysicalDeviceSubpassShadingFeaturesHUAWEI"/>
@@ -19732,7 +21870,7 @@
                 <command name="vkCmdSubpassShadingHUAWEI"/>
             </require>
         </extension>
-        <extension name="VK_HUAWEI_invocation_mask" number="371" type="device" requires="VK_KHR_ray_tracing_pipeline,VK_KHR_synchronization2" author="Huawei" contact="Pan Gao @PanGao-h" supported="vulkan">
+        <extension name="VK_HUAWEI_invocation_mask" number="371" type="device" depends="VK_KHR_ray_tracing_pipeline+VK_KHR_synchronization2" author="Huawei" contact="Pan Gao @PanGao-h" supported="vulkan">
             <require>
                 <enum value="1"                                              name="VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION"/>
                 <enum value="&quot;VK_HUAWEI_invocation_mask&quot;"        name="VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME"/>
@@ -19744,7 +21882,7 @@
                 <command name="vkCmdBindInvocationMaskHUAWEI"/>
             </require>
         </extension>
-        <extension name="VK_NV_external_memory_rdma" number="372" type="device" requires="VK_KHR_external_memory" author="NV" contact="Carsten Rohde @crohde" supported="vulkan">
+        <extension name="VK_NV_external_memory_rdma" number="372" type="device" depends="VK_KHR_external_memory" author="NV" contact="Carsten Rohde @crohde" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_external_memory_rdma&quot;"            name="VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME"/>
@@ -19758,7 +21896,7 @@
                 <command name="vkGetMemoryRemoteAddressNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pipeline_properties" number="373" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Mukund Keshava @mkeshavanv" supported="vulkan">
+        <extension name="VK_EXT_pipeline_properties" number="373" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Mukund Keshava @mkeshavanv" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pipeline_properties&quot;"        name="VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME"/>
@@ -19771,29 +21909,75 @@
                 <command name="vkGetPipelinePropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_374" number="374" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_NV_external_sci_sync" number="374" depends="VK_VERSION_1_1" platform="sci" type="device" author="NV" contact="Kai Zhang @kazhang" supported="vulkansc" deprecatedby="VK_NV_external_sci_sync2">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_374_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_374&quot;"           name="VK_NV_EXTENSION_374_EXTENSION_NAME"/>
-                <enum bitpos="4" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_BIT_NV"/>
-                <enum bitpos="5" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_BIT_NV"/>
-                <enum bitpos="5" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_BIT_NV"/>
+                <enum value="2"                                         name="VK_NV_EXTERNAL_SCI_SYNC_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_external_sci_sync&quot;"       name="VK_NV_EXTERNAL_SCI_SYNC_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV"/>
+                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV"/>
+                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV"/>
+                <enum offset="7" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV"/>
+                <enum bitpos="4" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV"/>
+                <enum bitpos="5" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV"/>
+                <enum bitpos="5" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV"/>
+                <type name="VkSciSyncClientTypeNV"/>
+                <type name="VkSciSyncPrimitiveTypeNV"/>
+                <type name="VkExportFenceSciSyncInfoNV"/>
+                <type name="VkImportFenceSciSyncInfoNV"/>
+                <type name="VkFenceGetSciSyncInfoNV"/>
+                <type name="VkSciSyncAttributesInfoNV"/>
+                <type name="VkExportSemaphoreSciSyncInfoNV"/>
+                <type name="VkImportSemaphoreSciSyncInfoNV"/>
+                <type name="VkSemaphoreGetSciSyncInfoNV"/>
+                <type name="VkPhysicalDeviceExternalSciSyncFeaturesNV"/>
+                <command name="vkGetFenceSciSyncFenceNV"/>
+                <command name="vkGetFenceSciSyncObjNV"/>
+                <command name="vkImportFenceSciSyncFenceNV"/>
+                <command name="vkImportFenceSciSyncObjNV"/>
+                <command name="vkGetPhysicalDeviceSciSyncAttributesNV"/>
+                <command name="vkGetSemaphoreSciSyncObjNV"/>
+                <command name="vkImportSemaphoreSciSyncObjNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_375" number="375" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_NV_external_memory_sci_buf" number="375" depends="VK_VERSION_1_1" platform="sci" type="device" author="NV" contact="Kai Zhang @kazhang" supported="vulkansc">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_375_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_375&quot;"           name="VK_NV_EXTENSION_375_EXTENSION_NAME"/>
-                <enum bitpos="13" extends="VkExternalMemoryHandleTypeFlagBits"  name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_13_BIT_NV"/>
+                <enum value="2"                                         name="VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_external_memory_sci_buf&quot;" name="VK_NV_EXTERNAL_MEMORY_SCI_BUF_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"/>
+                <enum extends="VkStructureType"                         name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"/>
+                <enum bitpos="13" extends="VkExternalMemoryHandleTypeFlagBits"  name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV"/>
+                <type name="VkExportMemorySciBufInfoNV"/>
+                <type name="VkImportMemorySciBufInfoNV"/>
+                <type name="VkMemoryGetSciBufInfoNV"/>
+                <type name="VkMemorySciBufPropertiesNV"/>
+                <type name="VkPhysicalDeviceExternalMemorySciBufFeaturesNV"/>
+                <type name="VkPhysicalDeviceExternalSciBufFeaturesNV"/>
+                <command name="vkGetMemorySciBufNV"/>
+                <command name="vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV"/>
+                <command name="vkGetPhysicalDeviceSciBufAttributesNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_376" number="376" author="EXT" contact="Melih Yasin Yalcin @yalcinmelihyasin" supported="disabled">
+        <extension name="VK_EXT_frame_boundary" number="376" type="device" author="EXT" contact="James Fitzpatrick @jamesfitzpatrick" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_EXT_EXTENSION_376_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_376&quot;"          name="VK_EXT_EXTENSION_376_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_EXT_FRAME_BOUNDARY_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_frame_boundary&quot;"         name="VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT"/>
+                <type name="VkPhysicalDeviceFrameBoundaryFeaturesEXT"/>
+                <type name="VkFrameBoundaryEXT"/>
+                <type name="VkFrameBoundaryFlagBitsEXT"/>
+                <type name="VkFrameBoundaryFlagsEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_multisampled_render_to_single_sampled" number="377" type="device" requires="VK_KHR_create_renderpass2,VK_KHR_depth_stencil_resolve" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
+        <extension name="VK_EXT_multisampled_render_to_single_sampled" number="377" type="device" depends="VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_multisampled_render_to_single_sampled&quot;"   name="VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME"/>
@@ -19806,7 +21990,7 @@
                 <type name="VkMultisampledRenderToSingleSampledInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extended_dynamic_state2" number="378" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_EXT_extended_dynamic_state2" number="378" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
             <require>
                 <enum value="1"                                             name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extended_dynamic_state2&quot;"    name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME"/>
@@ -19824,7 +22008,7 @@
                 <command name="vkCmdSetPrimitiveRestartEnableEXT"/>
             </require>
         </extension>
-        <extension name="VK_QNX_screen_surface" number="379" type="instance" requires="VK_KHR_surface" platform="screen" author="QNX" contact="Mike Gorchak @mgorchak-blackberry" supported="vulkan">
+        <extension name="VK_QNX_screen_surface" number="379" type="instance" depends="VK_KHR_surface" platform="screen" author="QNX" contact="Mike Gorchak @mgorchak-blackberry" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_QNX_SCREEN_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_QNX_screen_surface&quot;"         name="VK_QNX_SCREEN_SURFACE_EXTENSION_NAME"/>
@@ -19847,7 +22031,7 @@
                 <enum value="&quot;VK_KHR_extension_381&quot;"          name="VK_KHR_EXTENSION_381_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_color_write_enable" number="382" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Sharif Elcott @selcott" supported="vulkan">
+        <extension name="VK_EXT_color_write_enable" number="382" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Sharif Elcott @selcott" supported="vulkan,vulkansc">
             <require>
                 <enum value="1"                                         name="VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_color_write_enable&quot;"     name="VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME"/>
@@ -19859,7 +22043,7 @@
                 <command name="vkCmdSetColorWriteEnableEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_primitives_generated_query" number="383" type="device" requires="VK_EXT_transform_feedback" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
+        <extension name="VK_EXT_primitives_generated_query" number="383" type="device" depends="VK_EXT_transform_feedback" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
             <require>
                 <enum value="1"                                                 name="VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_primitives_generated_query&quot;"     name="VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME"/>
@@ -19886,7 +22070,7 @@
                 <enum value="&quot;VK_GOOGLE_extension_386&quot;"       name="VK_GOOGLE_EXTENSION_386_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_KHR_ray_tracing_maintenance1" number="387" type="device" requiresCore="1.1" requires="VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan">
+        <extension name="VK_KHR_ray_tracing_maintenance1" number="387" type="device" depends="VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_ray_tracing_maintenance1&quot;"   name="VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME"/>
@@ -19895,14 +22079,14 @@
                 <enum offset="1" extends="VkQueryType"                      name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR"/>
                 <type name="VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR"/>
             </require>
-            <require extension="VK_KHR_synchronization2">
+            <require depends="VK_KHR_synchronization2">
                 <!-- VkPipelineStageFlagBits bitpos="28" is reserved by this extension, but not used -->
                 <enum bitpos="28" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"/>
             </require>
-            <require extension="VK_KHR_synchronization2+VK_KHR_ray_tracing_pipeline">
+            <require depends="VK_KHR_synchronization2+VK_KHR_ray_tracing_pipeline">
                 <enum bitpos="40" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"/>
             </require>
-            <require extension="VK_KHR_ray_tracing_pipeline">
+            <require depends="VK_KHR_ray_tracing_pipeline">
                 <type name="VkTraceRaysIndirectCommand2KHR"/>
                 <command name="vkCmdTraceRaysIndirect2KHR"/>
             </require>
@@ -19913,12 +22097,12 @@
                 <enum value="&quot;VK_EXT_extension_388&quot;"              name="VK_EXT_EXTENSION_388_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_global_priority_query" number="389" type="device" requires="VK_EXT_global_priority,VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" supported="vulkan" promotedto="VK_KHR_global_priority">
+        <extension name="VK_EXT_global_priority_query" number="389" type="device" depends="VK_EXT_global_priority+VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" supported="vulkan" promotedto="VK_KHR_global_priority">
             <require>
                 <enum value="1"                                         name="VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_global_priority_query&quot;"  name="VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME"/>
-                <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"/>
-                <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"/>
+                <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"/>
+                <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"/>
                 <enum                                                   name="VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"/>
                 <type                                                   name="VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT"/>
                 <type                                                   name="VkQueueFamilyGlobalPriorityPropertiesEXT"/>
@@ -19936,7 +22120,7 @@
                 <enum value="&quot;VK_EXT_extension_391&quot;"              name="VK_EXT_EXTENSION_391_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_view_min_lod" number="392" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan">
+        <extension name="VK_EXT_image_view_min_lod" number="392" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_view_min_lod&quot;"         name="VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME"/>
@@ -19946,7 +22130,7 @@
                 <type                                                       name="VkImageViewMinLodCreateInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_multi_draw" number="393" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="vulkan">
+        <extension name="VK_EXT_multi_draw" number="393" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_EXT_MULTI_DRAW_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_multi_draw&quot;"             name="VK_EXT_MULTI_DRAW_EXTENSION_NAME"/>
@@ -19960,7 +22144,7 @@
                 <type name="VkMultiDrawIndexedInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_2d_view_of_3d" number="394" requires="VK_KHR_maintenance1,VK_KHR_get_physical_device_properties2" author="EXT" contact="Mike Blumenkrantz @zmike" specialuse="glemulation" type="device" supported="vulkan">
+        <extension name="VK_EXT_image_2d_view_of_3d" number="394" depends="VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2" author="EXT" contact="Mike Blumenkrantz @zmike" specialuse="glemulation" type="device" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_2d_view_of_3d&quot;"              name="VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME"/>
@@ -19969,20 +22153,24 @@
                 <enum extends="VkImageCreateFlagBits" bitpos="17"  name="VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT" comment="Image is created with a layout where individual slices are capable of being used as 2D images"/>
             </require>
         </extension>
-        <extension name="VK_KHR_portability_enumeration" number="395" author="KHR" contact="Charles Giessen @charles-lunarg" type="instance" supported="vulkan">
+        <extension name="VK_KHR_portability_enumeration" number="395" author="KHR" contact="Charles Giessen @charles-lunarg" type="instance" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="1"                                             name="VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_portability_enumeration&quot;"    name="VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME"/>
                 <enum bitpos="0" extends="VkInstanceCreateFlagBits"         name="VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_396" number="396" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
+        <extension name="VK_EXT_shader_tile_image" number="396" type="device" author="EXT" depends="VK_VERSION_1_3" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_KHR_EXTENSION_396_SPEC_VERSION"/>
-                <enum value="&quot;VK_KHR_extension_396&quot;"              name="VK_KHR_EXTENSION_396_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_shader_tile_image&quot;"          name="VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT"/>
+                <type name="VkPhysicalDeviceShaderTileImageFeaturesEXT"/>
+                <type name="VkPhysicalDeviceShaderTileImagePropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_opacity_micromap" number="397" type="device"  requires="VK_KHR_acceleration_structure,VK_KHR_synchronization2" author="EXT" contact="Christoph Kubisch @pixeljetstream, Eric Werness" supported="vulkan">
+        <extension name="VK_EXT_opacity_micromap" number="397" type="device"  depends="VK_KHR_acceleration_structure+VK_KHR_synchronization2" author="EXT" contact="Christoph Kubisch @pixeljetstream, Eric Werness" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="2"                                             name="VK_EXT_OPACITY_MICROMAP_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_opacity_micromap&quot;"           name="VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME"/>
@@ -20048,13 +22236,20 @@
                 <command name="vkGetMicromapBuildSizesEXT"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_398" number="398" author="NV" contact="Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv" supported="disabled">
+        <extension name="VK_NV_displacement_micromap" number="398" type="device" depends="VK_EXT_opacity_micromap" author="NV" contact="Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv" supported="vulkan" provisional="true" platform="provisional">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_398_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_398&quot;"           name="VK_NV_EXTENSION_398_EXTENSION_NAME"/>
-                <enum bitpos="28" extends="VkPipelineCreateFlagBits"    name="VK_PIPELINE_CREATE_RESERVED_BIT_28_NV"/>
-                <enum bitpos="9"  extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_9_NV"/>
-                <enum bitpos="10" extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_10_NV"/>
+                <enum value="2"                                        name="VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_displacement_micromap&quot;"  name="VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkStructureType"            name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="1"  extends="VkStructureType"            name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="2"  extends="VkStructureType"            name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="28" extends="VkPipelineCreateFlagBits"   name="VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="9"  extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum offset="0"  extends="VkMicromapTypeEXT"          name="VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <type name="VkPhysicalDeviceDisplacementMicromapFeaturesNV"/>
+                <type name="VkPhysicalDeviceDisplacementMicromapPropertiesNV"/>
+                <type name="VkAccelerationStructureTrianglesDisplacementMicromapNV"/>
+                <type name="VkDisplacementMicromapFormatNV"/>
             </require>
         </extension>
         <extension name="VK_JUICE_extension_399" number="399" author="JUICE" contact="Dean Beeler @canadacow" supported="disabled">
@@ -20095,12 +22290,21 @@
                 <enum value="&quot;VK_FB_extension_404&quot;"           name="VK_FB_EXTENSION_404_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_HUAWEI_extension_405" number="405" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" supported="disabled">
+        <extension name="VK_HUAWEI_cluster_culling_shader" number="405" type="device" depends="VK_KHR_get_physical_device_properties2" author="HUAWEI" contact="Yuchang Wang @richard_Wang2" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_HUAWEI_EXTENSION_405_SPEC_VERSION"/>
-                <enum value="&quot;VK_HUAWEI_extension_405&quot;"       name="VK_HUAWEI_EXTENSION_405_EXTENSION_NAME"/>
-                <enum bitpos="41" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_RESEVED_41_BIT_HUAWEI"/>
-                <enum bitpos="19" extends="VkShaderStageFlagBits"       name="VK_SHADER_STAGE_RESERVED_19_BIT_HUAWEI"/>
+                <enum value="3"                                              name="VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION"/>
+                <enum value="&quot;VK_HUAWEI_cluster_culling_shader&quot;"   name="VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"/>
+                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"/>
+                <enum offset="2" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"/>
+                <enum bitpos="41" extends="VkPipelineStageFlagBits2"         name="VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+                <enum bitpos="19" extends="VkShaderStageFlagBits"            name="VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI"/>
+                <enum bitpos="13" extends="VkQueryPipelineStatisticFlagBits" name="VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"/>
+                <command name="vkCmdDrawClusterHUAWEI"/>
+                <command name="vkCmdDrawClusterIndirectHUAWEI"/>
+                <type name="VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI"/>
+                <type name="VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI"/>
+                <type name="VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI"/>
             </require>
         </extension>
         <extension name="VK_HUAWEI_extension_406" number="406" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" supported="disabled">
@@ -20139,7 +22343,7 @@
                 <enum value="&quot;VK_GGP_extension_411&quot;"          name="VK_GGP_EXTENSION_411_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_border_color_swizzle" number="412" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" requires="VK_EXT_custom_border_color" specialuse="glemulation,d3demulation">
+        <extension name="VK_EXT_border_color_swizzle" number="412" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" depends="VK_EXT_custom_border_color" specialuse="glemulation,d3demulation">
             <require>
                 <enum value="1"                                         name="VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_border_color_swizzle&quot;"   name="VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME"/>
@@ -20149,7 +22353,7 @@
                 <type name="VkSamplerBorderColorComponentMappingCreateInfoEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pageable_device_local_memory" number="413" author="EXT" contact="Piers Daniell @pdaniell-nv" type="device" requires="VK_EXT_memory_priority" supported="vulkan">
+        <extension name="VK_EXT_pageable_device_local_memory" number="413" author="EXT" contact="Piers Daniell @pdaniell-nv" type="device" depends="VK_EXT_memory_priority" supported="vulkan">
             <require>
                 <enum value="1"                                                  name="VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pageable_device_local_memory&quot;"    name="VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME"/>
@@ -20158,7 +22362,7 @@
                 <command                                                         name="vkSetDeviceMemoryPriorityEXT"/>
             </require>
         </extension>
-        <extension name="VK_KHR_maintenance4" number="414" type="device" requiresCore="1.1" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
+        <extension name="VK_KHR_maintenance4" number="414" type="device" depends="VK_VERSION_1_1" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
             <require>
                 <enum value="2"                                             name="VK_KHR_MAINTENANCE_4_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_maintenance4&quot;"               name="VK_KHR_MAINTENANCE_4_EXTENSION_NAME"/>
@@ -20182,29 +22386,43 @@
                 <enum value="&quot;VK_HUAWEI_extension_415&quot;"         name="VK_HUAWEI_EXTENSION_415_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_ARM_extension_416" number="416" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
+        <extension name="VK_ARM_shader_core_properties" number="416" type="device" depends="VK_VERSION_1_1" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_ARM_EXTENSION_416_SPEC_VERSION"/>
-                <enum value="&quot;VK_ARM_extension_416&quot;"          name="VK_ARM_EXTENSION_416_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION"/>
+                <enum value="&quot;VK_ARM_shader_core_properties&quot;" name="VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"/>
+                <type name="VkPhysicalDeviceShaderCorePropertiesARM"/>
             </require>
         </extension>
-        <extension name="VK_KHR_extension_417" number="417" author="KHR" contact="Kevin Petit @kevinpetit" supported="disabled">
+        <extension name="VK_KHR_extension_417" number="417" author="KHR" contact="Kevin Petit @kpet" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_KHR_EXTENSION_417_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_extension_417&quot;"          name="VK_KHR_EXTENSION_417_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_ARM_extension_418" number="418" author="ARM" contact="Kevin Petit @kevinpetit" supported="disabled">
+        <extension name="VK_ARM_scheduling_controls" number="418" author="ARM" contact="Kevin Petit @kpet" type="device" depends="VK_ARM_shader_core_builtins" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_ARM_EXTENSION_418_SPEC_VERSION"/>
-                <enum value="&quot;VK_ARM_extension_418&quot;"          name="VK_ARM_EXTENSION_418_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION"/>
+                <enum value="&quot;VK_ARM_scheduling_controls&quot;"    name="VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME"/>
+                <enum extends="VkStructureType" offset="0"              name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM"/>
+                <enum extends="VkStructureType" offset="1"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM"/>
+                <enum extends="VkStructureType" offset="2"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM"/>
+                <type name="VkDeviceQueueShaderCoreControlCreateInfoARM"/>
+                <type name="VkPhysicalDeviceSchedulingControlsFeaturesARM"/>
+                <type name="VkPhysicalDeviceSchedulingControlsPropertiesARM"/>
+                <type name="VkPhysicalDeviceSchedulingControlsFlagsARM"/>
+                <type name="VkPhysicalDeviceSchedulingControlsFlagBitsARM"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_419" number="419" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
+        <extension name="VK_EXT_image_sliced_view_of_3d" number="419" depends="VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2" author="EXT" contact="Mike Blumenkrantz @zmike" specialuse="d3demulation" type="device" supported="vulkan">
             <require>
-                <enum value="0"                                             name="VK_EXT_EXTENSION_419_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_419&quot;"              name="VK_EXT_EXTENSION_419_EXTENSION_NAME"/>
-                <enum bitpos="3" extends="VkImageViewCreateFlagBits"        name="VK_IMAGE_VIEW_CREATE_RESERVED_3_BIT_EXT"/>
+                <enum value="1"                                             name="VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_image_sliced_view_of_3d&quot;"    name="VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT"/>
+                <enum name="VK_REMAINING_3D_SLICES_EXT"/>
+                <type name="VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT"/>
+                <type name="VkImageViewSlicedCreateInfoEXT"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_420" number="420" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
@@ -20214,7 +22432,7 @@
                 <enum bitpos="4" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_RESERVED_4_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_VALVE_descriptor_set_host_mapping" number="421" type="device" author="VALVE" contact="Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" supported="vulkan">
+        <extension name="VK_VALVE_descriptor_set_host_mapping" number="421" type="device" author="VALVE" contact="Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION"/>
                 <enum value="&quot;VK_VALVE_descriptor_set_host_mapping&quot;"  name="VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME"/>
@@ -20228,7 +22446,7 @@
                 <command name="vkGetDescriptorSetHostMappingVALVE"/>
             </require>
         </extension>
-        <extension name="VK_EXT_depth_clamp_zero_one" number="422" author="EXT" type="device" contact="Graeme Leese @gnl21" supported="vulkan">
+        <extension name="VK_EXT_depth_clamp_zero_one" number="422" author="EXT" type="device" contact="Graeme Leese @gnl21" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_depth_clamp_zero_one&quot;"       name="VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME"/>
@@ -20236,7 +22454,7 @@
                 <type name="VkPhysicalDeviceDepthClampZeroOneFeaturesEXT" />
             </require>
         </extension>
-        <extension name="VK_EXT_non_seamless_cube_map" number="423" author="EXT" type="device" contact="Georg Lehmann @DadSchoorse" specialuse="d3demulation,glemulation" supported="vulkan">
+        <extension name="VK_EXT_non_seamless_cube_map" number="423" author="EXT" type="device" contact="Georg Lehmann @DadSchoorse" specialuse="d3demulation,glemulation" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_non_seamless_cube_map&quot;"      name="VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME"/>
@@ -20251,13 +22469,23 @@
                 <enum value="&quot;VK_ARM_extension_424&quot;"          name="VK_ARM_EXTENSION_424_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_ARM_extension_425" number="425" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
+        <extension name="VK_ARM_render_pass_striped" number="425" type="device" depends="VK_KHR_get_physical_device_properties2,VK_KHR_synchronization2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_ARM_EXTENSION_425_SPEC_VERSION"/>
-                <enum value="&quot;VK_ARM_extension_425&quot;"          name="VK_ARM_EXTENSION_425_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION"/>
+                <enum value="&quot;VK_ARM_render_pass_striped&quot;"    name="VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"/>
+                <enum offset="1"  extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"/>
+                <enum offset="2"  extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"/>
+                <enum offset="3"  extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"/>
+                <enum offset="4"  extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"/>
+                <type name="VkPhysicalDeviceRenderPassStripedFeaturesARM"/>
+                <type name="VkPhysicalDeviceRenderPassStripedPropertiesARM"/>
+                <type name="VkRenderPassStripeBeginInfoARM"/>
+                <type name="VkRenderPassStripeInfoARM"/>
+                <type name="VkRenderPassStripeSubmitInfoARM"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_fragment_density_map_offset" number="426" type="device" requires="VK_KHR_get_physical_device_properties2,VK_EXT_fragment_density_map" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
+        <extension name="VK_QCOM_fragment_density_map_offset" number="426" type="device" depends="VK_KHR_get_physical_device_properties2+VK_EXT_fragment_density_map" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="1"                                               name="VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_fragment_density_map_offset&quot;" name="VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME"/>
@@ -20270,7 +22498,7 @@
                 <type name="VkSubpassFragmentDensityMapOffsetEndInfoQCOM"/>
             </require>
         </extension>
-        <extension name="VK_NV_copy_memory_indirect" number="427" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_buffer_device_address" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
+        <extension name="VK_NV_copy_memory_indirect" number="427" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_buffer_device_address" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_copy_memory_indirect&quot;"    name="VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME"/>
@@ -20284,7 +22512,7 @@
                 <command name="vkCmdCopyMemoryToImageIndirectNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_memory_decompression" number="428" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_buffer_device_address" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
+        <extension name="VK_NV_memory_decompression" number="428" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_buffer_device_address" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_memory_decompression&quot;"       name="VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME"/>
@@ -20299,10 +22527,23 @@
                 <command name="vkCmdDecompressMemoryIndirectCountNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_429" number="429" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
+        <extension name="VK_NV_device_generated_commands_compute" number="429" type="device" depends="VK_NV_device_generated_commands" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_429_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_429&quot;"           name="VK_NV_EXTENSION_429_EXTENSION_NAME"/>
+                <enum value="2"                                           name="VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_device_generated_commands_compute&quot;"  name="VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"/>
+                <enum offset="1" extends="VkStructureType"                name="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"/>
+                <enum offset="2" extends="VkStructureType"                name="VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"/>
+                <enum offset="3" extends="VkIndirectCommandsTokenTypeNV"  name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV"/>
+                <enum offset="4" extends="VkIndirectCommandsTokenTypeNV"  name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV"/>
+                <enum bitpos="7" extends="VkDescriptorSetLayoutCreateFlagBits"  name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV"/>
+                <type name="VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV"/>
+                <type name="VkComputePipelineIndirectBufferInfoNV"/>
+                <type name="VkPipelineIndirectDeviceAddressInfoNV"/>
+                <type name="VkBindPipelineIndirectCommandNV"/>
+                <command name="vkGetPipelineIndirectMemoryRequirementsNV"/>
+                <command name="vkCmdUpdatePipelineIndirectBufferNV"/>
+                <command name="vkGetPipelineIndirectDeviceAddressNV"/>
             </require>
         </extension>
         <extension name="VK_NV_extension_430" number="430" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
@@ -20311,14 +22552,14 @@
                 <enum value="&quot;VK_NV_extension_430&quot;"           name="VK_NV_EXTENSION_430_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_linear_color_attachment" number="431" type="device" author="NVIDIA" contact="sourav parmar @souravpNV" supported="vulkan">
+        <extension name="VK_NV_linear_color_attachment" number="431" type="device" author="NVIDIA" contact="sourav parmar @souravpNV" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_linear_color_attachment&quot;" name="VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"/>
                 <type                                                   name="VkPhysicalDeviceLinearColorAttachmentFeaturesNV"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <enum bitpos="38" extends="VkFormatFeatureFlagBits2"    name="VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" comment="Format support linear image as render target, it cannot be mixed with non linear attachment"/>
             </require>
         </extension>
@@ -20334,7 +22575,7 @@
                 <enum value="&quot;VK_NV_extension_433&quot;"           name="VK_NV_EXTENSION_433_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_GOOGLE_surfaceless_query" number="434" type="instance" requires="VK_KHR_surface" author="GOOGLE" contact="Shahbaz Youssefi @syoussefi" specialuse="glemulation" supported="vulkan">
+        <extension name="VK_GOOGLE_surfaceless_query" number="434" type="instance" depends="VK_KHR_surface" author="GOOGLE" contact="Shahbaz Youssefi @syoussefi" specialuse="glemulation" supported="vulkan">
             <require>
                 <enum value="2"                                         name="VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_surfaceless_query&quot;"   name="VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME"/>
@@ -20346,10 +22587,12 @@
                 <enum value="&quot;VK_KHR_extension_435&quot;"          name="VK_KHR_EXTENSION_435_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_436" number="436" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_EXT_application_parameters" number="436" type="instance" author="EXT" contact="Daniel Koch @dgkoch" supported="vulkansc">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_436_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_436&quot;"           name="VK_NV_EXTENSION_436_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_EXT_APPLICATION_PARAMETERS_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_application_parameters&quot;" name="VK_EXT_APPLICATION_PARAMETERS_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT"/>
+                <type name="VkApplicationParametersEXT"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_437" number="437" author="EXT" contact="Jonathan Weinstein @Jonathan-Weinstein" supported="disabled">
@@ -20358,7 +22601,7 @@
                 <enum value="&quot;VK_EXT_extension_437&quot;"          name="VK_EXT_EXTENSION_437_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_image_compression_control_swapchain" number="438" type="device" requires="VK_EXT_image_compression_control" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
+        <extension name="VK_EXT_image_compression_control_swapchain" number="438" type="device" depends="VK_EXT_image_compression_control" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_image_compression_control_swapchain&quot;"  name="VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME"/>
@@ -20372,7 +22615,7 @@
                 <enum value="&quot;VK_SEC_extension_439&quot;"          name="VK_SEC_EXTENSION_439_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_extension_440" number="440" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
+        <extension name="VK_QCOM_extension_440" number="440" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_QCOM_EXTENSION_440_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_extension_440&quot;"         name="VK_QCOM_EXTENSION_440_EXTENSION_NAME"/>
@@ -20380,7 +22623,7 @@
                 <enum bitpos="1" extends="VkDeviceQueueCreateFlagBits"  name="VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_image_processing" number="441" type="device" requires="VK_KHR_format_feature_flags2" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
+        <extension name="VK_QCOM_image_processing" number="441" type="device" depends="VK_KHR_format_feature_flags2" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="1"                                         name="VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_image_processing&quot;"      name="VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME"/>
@@ -20396,7 +22639,7 @@
                 <type name="VkPhysicalDeviceImageProcessingFeaturesQCOM"/>
                 <type name="VkPhysicalDeviceImageProcessingPropertiesQCOM"/>
             </require>
-            <require extension="VK_KHR_format_feature_flags2">
+            <require depends="VK_KHR_format_feature_flags2">
                 <enum bitpos="34" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"/>
                 <enum bitpos="35" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"/>
                 <enum bitpos="36" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"/>
@@ -20432,6 +22675,7 @@
             <require>
                 <enum value="0"                                             name="VK_COREAVI_EXTENSION_446_SPEC_VERSION"/>
                 <enum value="&quot;VK_COREAVI_extension_446&quot;"          name="VK_COREAVI_EXTENSION_446_EXTENSION_NAME"/>
+                <enum bitpos="24" extends="VkImageUsageFlagBits"            name="VK_IMAGE_USAGE_RESERVED_24_BIT_COREAVI"/>
             </require>
         </extension>
         <extension name="VK_COREAVI_extension_447" number="447" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
@@ -20464,31 +22708,44 @@
                 <enum value="&quot;VK_SEC_extension_451&quot;"          name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_452" number="452" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
+        <extension name="VK_EXT_nested_command_buffer" number="452" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_452_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_452&quot;"           name="VK_NV_EXTENSION_452_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_nested_command_buffer&quot;"  name="VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT"/>
+                <enum offset="0" extends="VkSubpassContents"            name="VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT"/>
+                <enum bitpos="4" extends="VkRenderingFlagBits"          name="VK_RENDERING_CONTENTS_INLINE_BIT_EXT"/>
+                <type                                                   name="VkPhysicalDeviceNestedCommandBufferFeaturesEXT"/>
+                <type                                                   name="VkPhysicalDeviceNestedCommandBufferPropertiesEXT"/>
             </require>
         </extension>
-        <extension name="VK_ARM_extension_453" number="453" author="Arm" contact="Kevin Petit @kevinpetit" supported="disabled">
+        <extension name="VK_ARM_extension_453" number="453" author="Arm" contact="Kevin Petit @kpet" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_ARM_EXTENSION_453_SPEC_VERSION"/>
                 <enum value="&quot;VK_ARM_extension_453&quot;"          name="VK_ARM_EXTENSION_453_EXTENSION_NAME"/>
+                <enum bitpos="11" extends="VkQueueFlagBits"             name="VK_QUEUE_RESERVED_11_BIT_ARM"/>
+                <enum bitpos="43" extends="VkPipelineStageFlagBits2"    name="VK_PIPELINE_STAGE_2_RESERVED_43_BIT_ARM"/>
+                <enum bitpos="49" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_RESERVED_49_BIT_ARM"/>
+                <enum bitpos="50" extends="VkAccessFlagBits2"           name="VK_ACCESS_2_RESERVED_50_BIT_ARM"/>
+                <enum bitpos="47" extends="VkFormatFeatureFlagBits2"    name="VK_FORMAT_FEATURE_2_RESERVED_47_BIT_ARM" />
             </require>
         </extension>
-        <extension name="VK_GOOGLE_extension_454" number="454" author="GOOGLE" contact="Chad Versace @chadversary" supported="disabled">
+        <extension name="VK_EXT_external_memory_acquire_unmodified" number="454" type="device" depends="VK_KHR_external_memory" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_GOOGLE_EXTENSION_454_SPEC_VERSION"/>
-                <enum value="&quot;VK_GOOGLE_extension_454&quot;"       name="VK_GOOGLE_EXTENSION_454_EXTENSION_NAME"/>
+                <enum value="1"                                                         name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_external_memory_acquire_unmodified&quot;"     name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                              name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"/>
+                <type name="VkExternalMemoryAcquireUnmodifiedEXT"/>
             </require>
         </extension>
-        <extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Chad Versace @chadversary" supported="disabled">
+        <extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Lina Versace @versalinyaa" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_GOOGLE_EXTENSION_455_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_extension_455&quot;"       name="VK_GOOGLE_EXTENSION_455_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extended_dynamic_state3" number="456" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+        <extension name="VK_EXT_extended_dynamic_state3" number="456" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan" ratified="vulkan">
             <require>
                 <enum value="2"                                              name="VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extended_dynamic_state3&quot;"     name="VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME"/>
@@ -20515,16 +22772,6 @@
                 <enum offset="20" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT"/>
                 <enum offset="21" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT"/>
                 <enum offset="22" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT"/>
-                <enum offset="23" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV"/>
-                <enum offset="24" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV"/>
-                <enum offset="25" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV"/>
-                <enum offset="26" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV"/>
-                <enum offset="27" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV"/>
-                <enum offset="28" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV"/>
-                <enum offset="29" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV"/>
-                <enum offset="30" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV"/>
-                <enum offset="31" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV"/>
-                <enum offset="32" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV"/>
                 <type name="VkPhysicalDeviceExtendedDynamicState3FeaturesEXT"/>
                 <type name="VkPhysicalDeviceExtendedDynamicState3PropertiesEXT"/>
                 <type name="VkColorBlendEquationEXT"/>
@@ -20550,31 +22797,55 @@
                 <command name="vkCmdSetLineRasterizationModeEXT"/>
                 <command name="vkCmdSetLineStippleEnableEXT"/>
                 <command name="vkCmdSetDepthClipNegativeOneToOneEXT"/>
+            </require>
+            <require depends="VK_NV_clip_space_w_scaling">
+                <enum offset="23" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV"/>
                 <command name="vkCmdSetViewportWScalingEnableNV"/>
+            </require>
+            <require depends="VK_NV_viewport_swizzle">
+                <enum offset="24" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV"/>
                 <command name="vkCmdSetViewportSwizzleNV"/>
+            </require>
+            <require depends="VK_NV_fragment_coverage_to_color">
+                <enum offset="25" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV"/>
+                <enum offset="26" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV"/>
                 <command name="vkCmdSetCoverageToColorEnableNV"/>
                 <command name="vkCmdSetCoverageToColorLocationNV"/>
+            </require>
+            <require depends="VK_NV_framebuffer_mixed_samples">
+                <enum offset="27" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV"/>
+                <enum offset="28" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV"/>
+                <enum offset="29" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV"/>
                 <command name="vkCmdSetCoverageModulationModeNV"/>
                 <command name="vkCmdSetCoverageModulationTableEnableNV"/>
                 <command name="vkCmdSetCoverageModulationTableNV"/>
+            </require>
+            <require depends="VK_NV_shading_rate_image">
+                <enum offset="30" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV"/>
                 <command name="vkCmdSetShadingRateImageEnableNV"/>
+            </require>
+            <require depends="VK_NV_representative_fragment_test">
+                <enum offset="31" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV"/>
                 <command name="vkCmdSetRepresentativeFragmentTestEnableNV"/>
+            </require>
+            <require depends="VK_NV_coverage_reduction_mode">
+                <enum offset="32" extends="VkDynamicState"                   name="VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV"/>
                 <command name="vkCmdSetCoverageReductionModeNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_457" number="457" author="RASTERGRID" contact="Daniel Rakos @aqnuep1" supported="disabled">
+        <extension name="VK_EXT_extension_457" number="457" author="RASTERGRID" contact="Daniel Rakos @aqnuep" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_EXT_EXTENSION_457_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extension_457&quot;"          name="VK_EXT_EXTENSION_457_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_458" number="458" author="RASTERGRID" contact="Daniel Rakos @aqnuep1" supported="disabled">
+        <extension name="VK_EXT_extension_458" number="458" author="RASTERGRID" contact="Daniel Rakos @aqnuep" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_EXT_EXTENSION_458_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extension_458&quot;"          name="VK_EXT_EXTENSION_458_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_subpass_merge_feedback" number="459" type="device" author="EXT" contact="Ting Wei @catweiting" supported="vulkan">
+        <extension name="VK_EXT_subpass_merge_feedback" number="459" type="device" author="EXT" contact="Ting Wei @catweiting" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="2"                                              name="VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_subpass_merge_feedback&quot;"      name="VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME"/>
@@ -20604,11 +22875,12 @@
                 <type name="PFN_vkGetInstanceProcAddrLUNARG"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_461" number="461" author="EXT" contact="Kevin Petit @kevinpetit" supported="disabled">
+        <extension name="VK_EXT_extension_461" number="461" author="EXT" contact="Kevin Petit @kpet" supported="disabled">
             <require>
                 <enum value="0"                                         name="VK_EXT_EXTENSION_461_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_extension_461&quot;"          name="VK_EXT_EXTENSION_461_EXTENSION_NAME"/>
                 <enum bitpos="39" extends="VkFormatFeatureFlagBits2"    name="VK_FORMAT_FEATURE_2_RESERVED_39_BIT_EXT"/>
+                <enum bitpos="23" extends="VkImageUsageFlagBits"        name="VK_IMAGE_USAGE_RESERVED_23_BIT_EXT"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_462" number="462" author="EXT" contact="Joshua Ashton @Joshua-Ashton,Liam Middlebrook @liam-middlebrook" supported="disabled">
@@ -20617,7 +22889,7 @@
                 <enum value="&quot;VK_EXT_extension_462&quot;"          name="VK_EXT_EXTENSION_462_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_shader_module_identifier" number="463" type="device" requires="VK_KHR_get_physical_device_properties2,VK_EXT_pipeline_creation_cache_control" author="EXT" contact="Hans-Kristian Arntzen @HansKristian-Work" supported="vulkan">
+        <extension name="VK_EXT_shader_module_identifier" number="463" type="device" depends="VK_KHR_get_physical_device_properties2+VK_EXT_pipeline_creation_cache_control" author="EXT" contact="Hans-Kristian Arntzen @HansKristian-Work" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_shader_module_identifier&quot;"   name="VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME"/>
@@ -20634,7 +22906,7 @@
                 <command name="vkGetShaderModuleCreateInfoIdentifierEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_rasterization_order_attachment_access" number="464" type="device" requires="VK_KHR_get_physical_device_properties2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
+        <extension name="VK_EXT_rasterization_order_attachment_access" number="464" type="device" depends="VK_KHR_get_physical_device_properties2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
             <require>
                 <enum value="1"                                                        name="VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_rasterization_order_attachment_access&quot;" name="VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME"/>
@@ -20650,7 +22922,7 @@
                 <enum bitpos="6" extends="VkSubpassDescriptionFlagBits"              name="VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_NV_optical_flow" number="465" requires="VK_KHR_get_physical_device_properties2,VK_KHR_format_feature_flags2,VK_KHR_synchronization2" type="device" author="NV" contact="Carsten Rohde @crohde" supported="vulkan">
+        <extension name="VK_NV_optical_flow" number="465" depends="VK_KHR_get_physical_device_properties2+VK_KHR_format_feature_flags2+VK_KHR_synchronization2" type="device" author="NV" contact="Carsten Rohde @crohde" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_NV_OPTICAL_FLOW_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_optical_flow&quot;"                name="VK_NV_OPTICAL_FLOW_EXTENSION_NAME"/>
@@ -20695,7 +22967,7 @@
                 <command name="vkCmdOpticalFlowExecuteNV"/>
             </require>
         </extension>
-        <extension name="VK_EXT_legacy_dithering" number="466" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
+        <extension name="VK_EXT_legacy_dithering" number="466" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
             <require>
                 <enum value="1"                                         name="VK_EXT_LEGACY_DITHERING_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_legacy_dithering&quot;"       name="VK_EXT_LEGACY_DITHERING_EXTENSION_NAME"/>
@@ -20703,14 +22975,14 @@
                 <enum bitpos="7" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"/>
                 <type name="VkPhysicalDeviceLegacyDitheringFeaturesEXT"/>
             </require>
-            <require feature="VK_VERSION_1_3">
+            <require depends="VK_VERSION_1_3">
                 <enum bitpos="3" extends="VkRenderingFlagBits"          name="VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"/>
             </require>
-            <require extension="VK_KHR_dynamic_rendering">
+            <require depends="VK_KHR_dynamic_rendering">
                 <enum bitpos="3" extends="VkRenderingFlagBits"          name="VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_pipeline_protected_access" number="467" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
+        <extension name="VK_EXT_pipeline_protected_access" number="467" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
             <require>
                 <enum value="1"                                             name="VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_pipeline_protected_access&quot;"  name="VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME"/>
@@ -20726,10 +22998,19 @@
                 <enum value="&quot;VK_EXT_extension_468&quot;"          name="VK_EXT_EXTENSION_468_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_ANDROID_extension_469" number="469" type="device" platform="android" author="ANDROID" contact="Chris Forbes @chrisforbes" supported="disabled">
+        <extension name="VK_ANDROID_external_format_resolve" number="469" type="device" depends="VK_ANDROID_external_memory_android_hardware_buffer" platform="android" author="ANDROID" contact="Chris Forbes @chrisforbes" specialuse="glemulation" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_ANDROID_EXTENSION_469_SPEC_VERSION"/>
-                <enum value="&quot;VK_ANDROID_extension_469&quot;"      name="VK_ANDROID_EXTENSION_469_EXTENSION_NAME"/>
+                <enum value="1"                                             name="VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION"/>
+                <enum value="&quot;VK_ANDROID_external_format_resolve&quot;"  name="VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"/>
+                <type name="VkPhysicalDeviceExternalFormatResolveFeaturesANDROID"/>
+                <type name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID"/>
+                <type name="VkAndroidHardwareBufferFormatResolvePropertiesANDROID"/>
+            </require>
+            <require depends="VK_KHR_dynamic_rendering">
+                <enum bitpos="4" extends="VkResolveModeFlagBits"            name="VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID"/>
             </require>
         </extension>
         <extension name="VK_AMD_extension_470" number="470" author="AMD" contact="Stu Smith" supported="disabled">
@@ -20738,10 +23019,135 @@
                 <enum value="&quot;VK_AMD_extension_470&quot;"          name="VK_AMD_EXTENSION_470_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_AMD_extension_471" number="471" author="AMD" contact="Stu Smith" supported="disabled">
+        <extension name="VK_KHR_maintenance5" number="471" type="device" depends="VK_VERSION_1_1+VK_KHR_dynamic_rendering" author="KHR" contact="Stu Smith @stu-s" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_AMD_EXTENSION_471_SPEC_VERSION"/>
-                <enum value="&quot;VK_AMD_extension_471&quot;"          name="VK_AMD_EXTENSION_471_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_KHR_MAINTENANCE_5_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_maintenance5&quot;"           name="VK_KHR_MAINTENANCE_5_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"/>
+                <type name="VkPhysicalDeviceMaintenance5FeaturesKHR"/>
+                <type name="VkPhysicalDeviceMaintenance5PropertiesKHR"/>
+                <enum offset="0" extends="VkFormat"                     name="VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR"/>
+                <enum offset="1" extends="VkFormat"                     name="VK_FORMAT_A8_UNORM_KHR"/>
+                <command name="vkCmdBindIndexBuffer2KHR"/>
+                <command name="vkGetRenderingAreaGranularityKHR"/>
+                <type name="VkRenderingAreaInfoKHR"/>
+                <command name="vkGetDeviceImageSubresourceLayoutKHR"/>
+                <command name="vkGetImageSubresourceLayout2KHR"/>
+                <type name="VkDeviceImageSubresourceInfoKHR"/>
+                <type name="VkImageSubresource2KHR"/>
+                <type name="VkSubresourceLayout2KHR"/>
+                <enum offset="2" extends="VkStructureType" extnumber="339" name="VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR"/>
+                <enum offset="3" extends="VkStructureType" extnumber="339" name="VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR"/>
+            </require>
+            <require comment="Split off new 64-bit flags separately, for the moment">
+                <type name="VkPipelineCreateFlags2KHR"/>
+                <type name="VkPipelineCreateFlagBits2KHR"/>
+                <type name="VkPipelineCreateFlags2CreateInfoKHR"/>
+                <type name="VkBufferUsageFlags2KHR"/>
+                <type name="VkBufferUsageFlagBits2KHR"/>
+                <type name="VkBufferUsageFlags2CreateInfoKHR"/>
+                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR"/>
+            </require>
+            <require depends="VK_VERSION_1_1,VK_KHR_device_group">
+                <enum bitpos="3"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"/>
+                <enum bitpos="4"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR"/>
+            </require>
+            <require depends="VK_NV_ray_tracing">
+                <enum bitpos="5"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV"/>
+            </require>
+            <require depends="VK_KHR_pipeline_executable_properties">
+                <enum bitpos="6"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR"/>
+                <enum bitpos="7"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"/>
+            </require>
+            <require depends="VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control">
+                <enum bitpos="8"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR"/>
+                <enum bitpos="9"  extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR"/>
+            </require>
+            <require depends="VK_EXT_graphics_pipeline_library">
+                <enum bitpos="10" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT"/>
+                <enum bitpos="23" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"/>
+            </require>
+            <require depends="VK_KHR_pipeline_library">
+                <enum bitpos="11" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR"/>
+            </require>
+            <require depends="VK_KHR_ray_tracing_pipeline">
+                <enum bitpos="12" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"/>
+                <enum bitpos="13" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR"/>
+                <enum bitpos="14" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"/>
+                <enum bitpos="15" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"/>
+                <enum bitpos="16" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"/>
+                <enum bitpos="17" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"/>
+                <enum bitpos="19" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"/>
+            </require>
+            <require depends="VK_NV_device_generated_commands">
+                <enum bitpos="18" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV"/>
+            </require>
+            <require depends="VK_NV_ray_tracing_motion_blur">
+                <enum bitpos="20" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV"/>
+            </require>
+            <require depends="VK_KHR_dynamic_rendering+VK_KHR_fragment_shading_rate">
+                <enum bitpos="21" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
+            </require>
+            <require depends="VK_KHR_dynamic_rendering+VK_EXT_fragment_density_map">
+                <enum bitpos="22" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_opacity_micromap">
+                <enum bitpos="24" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_attachment_feedback_loop_layout">
+                <enum bitpos="25" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"/>
+                <enum bitpos="26" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_pipeline_protected_access">
+                <enum bitpos="27" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT"/>
+                <enum bitpos="30" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT"/>
+            </require>
+            <require depends="VK_NV_displacement_micromap">
+                <enum bitpos="28" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"/>
+            </require>
+            <require depends="VK_EXT_descriptor_buffer">
+                <enum bitpos="29" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_conditional_rendering">
+                <enum bitpos="9"  extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT"/>
+            </require>
+            <require depends="VK_KHR_ray_tracing_pipeline">
+                <enum bitpos="10" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR"/>
+            </require>
+            <require depends="VK_NV_ray_tracing">
+                <enum extends="VkBufferUsageFlagBits2KHR"                name="VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV" alias="VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR"/>
+            </require>
+            <require depends="VK_EXT_transform_feedback">
+                <enum bitpos="11" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"/>
+                <enum bitpos="12" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"/>
+            </require>
+            <require depends="VK_KHR_video_decode_queue">
+                <enum bitpos="13" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR"/>
+                <enum bitpos="14" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR"/>
+            </require>
+            <require depends="VK_KHR_video_encode_queue">
+                <enum bitpos="15" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+                <enum bitpos="16" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+            </require>
+            <require depends="VK_VERSION_1_2,VK_KHR_buffer_device_address,VK_EXT_buffer_device_address">
+                <enum bitpos="17" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR"/>
+            </require>
+            <require depends="VK_KHR_acceleration_structure">
+                <enum bitpos="19" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"/>
+                <enum bitpos="20" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"/>
+            </require>
+            <require depends="VK_EXT_descriptor_buffer">
+                <enum bitpos="21" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"/>
+                <enum bitpos="22" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"/>
+                <enum bitpos="26" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_opacity_micromap">
+                <enum bitpos="23" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"/>
+                <enum bitpos="24" extends="VkBufferUsageFlagBits2KHR"    name="VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT"/>
             </require>
         </extension>
         <extension name="VK_AMD_extension_472" number="472" author="AMD" contact="Stu Smith" supported="disabled">
@@ -20790,6 +23196,7 @@
             <require>
                 <enum value="0"                                         name="VK_AMD_EXTENSION_479_SPEC_VERSION"/>
                 <enum value="&quot;VK_AMD_extension_479&quot;"          name="VK_AMD_EXTENSION_479_EXTENSION_NAME"/>
+                <enum bitpos="32" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RESERVED_32_BIT_KHR"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_480" number="480" author="EXT" contact="Daniel Stone" supported="disabled">
@@ -20804,28 +23211,132 @@
                 <enum value="&quot;VK_EXT_extension_481&quot;"          name="VK_EXT_EXTENSION_481_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_482" number="482" author="KHR" contact="Eric Werness" supported="disabled">
+        <extension name="VK_KHR_ray_tracing_position_fetch" number="482" type="device" depends="VK_KHR_acceleration_structure" author="KHR" contact="Eric Werness" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_EXT_EXTENSION_482_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_482&quot;"          name="VK_EXT_EXTENSION_482_EXTENSION_NAME"/>
+                <enum value="1"                                                     name="VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_ray_tracing_position_fetch&quot;"         name="VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                          name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR"/>
+                <enum bitpos="11" extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR"/>
+                <type name="VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_483" number="483" author="EXT" contact="Piers Daniell" supported="disabled">
+        <extension name="VK_EXT_shader_object" number="483" depends="(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+(VK_KHR_dynamic_rendering,VK_VERSION_1_3)" type="device" author="EXT" contact="Daniel Story @daniel-story" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                         name="VK_EXT_EXTENSION_483_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_483&quot;"          name="VK_EXT_EXTENSION_483_EXTENSION_NAME"/>
-                <enum bitpos="15" extends="VkShaderStageFlagBits"       name="VK_SHADER_STAGE_EXT_483_RESERVE_15"/>
-                <enum bitpos="16" extends="VkShaderStageFlagBits"       name="VK_SHADER_STAGE_EXT_483_RESERVE_16"/>
-                <enum bitpos="17" extends="VkShaderStageFlagBits"       name="VK_SHADER_STAGE_EXT_483_RESERVE_17"/>
+                <enum value="1"                                            name="VK_EXT_SHADER_OBJECT_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_shader_object&quot;"             name="VK_EXT_SHADER_OBJECT_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT"/>
+                <enum offset="1" extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT"/>
+                <enum offset="2" extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT"/>
+                <enum extnumber="353" offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"/>
+                <enum extnumber="353" offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"/>
+                <enum extends="VkStructureType"                            name="VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"/>
+                <enum offset="0" extends="VkObjectType"                    name="VK_OBJECT_TYPE_SHADER_EXT"/>
+                <enum offset="0" extends="VkResult"                        name="VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT"/>
+                <type name="VkShaderEXT"/>
+                <type name="VkShaderCreateFlagBitsEXT"/>
+                <type name="VkShaderCreateFlagsEXT"/>
+                <type name="VkShaderCodeTypeEXT"/>
+                <type name="VkPhysicalDeviceShaderObjectFeaturesEXT"/>
+                <type name="VkPhysicalDeviceShaderObjectPropertiesEXT"/>
+                <type name="VkShaderCreateInfoEXT"/>
+                <type name="VkShaderRequiredSubgroupSizeCreateInfoEXT"/>
+                <type name="VkVertexInputBindingDescription2EXT"/>
+                <type name="VkVertexInputAttributeDescription2EXT"/>
+                <type name="VkColorBlendEquationEXT"/>
+                <type name="VkColorBlendAdvancedEXT"/>
+                <command name="vkCreateShadersEXT"/>
+                <command name="vkDestroyShaderEXT"/>
+                <command name="vkGetShaderBinaryDataEXT"/>
+                <command name="vkCmdBindShadersEXT"/>
+                <command name="vkCmdSetCullModeEXT"/>
+                <command name="vkCmdSetFrontFaceEXT"/>
+                <command name="vkCmdSetPrimitiveTopologyEXT"/>
+                <command name="vkCmdSetViewportWithCountEXT"/>
+                <command name="vkCmdSetScissorWithCountEXT"/>
+                <command name="vkCmdBindVertexBuffers2EXT"/>
+                <command name="vkCmdSetDepthTestEnableEXT"/>
+                <command name="vkCmdSetDepthWriteEnableEXT"/>
+                <command name="vkCmdSetDepthCompareOpEXT"/>
+                <command name="vkCmdSetDepthBoundsTestEnableEXT"/>
+                <command name="vkCmdSetStencilTestEnableEXT"/>
+                <command name="vkCmdSetStencilOpEXT"/>
+                <command name="vkCmdSetVertexInputEXT"/>
+                <command name="vkCmdSetPatchControlPointsEXT"/>
+                <command name="vkCmdSetRasterizerDiscardEnableEXT"/>
+                <command name="vkCmdSetDepthBiasEnableEXT"/>
+                <command name="vkCmdSetLogicOpEXT"/>
+                <command name="vkCmdSetPrimitiveRestartEnableEXT"/>
+                <command name="vkCmdSetTessellationDomainOriginEXT"/>
+                <command name="vkCmdSetDepthClampEnableEXT"/>
+                <command name="vkCmdSetPolygonModeEXT"/>
+                <command name="vkCmdSetRasterizationSamplesEXT"/>
+                <command name="vkCmdSetSampleMaskEXT"/>
+                <command name="vkCmdSetAlphaToCoverageEnableEXT"/>
+                <command name="vkCmdSetAlphaToOneEnableEXT"/>
+                <command name="vkCmdSetLogicOpEnableEXT"/>
+                <command name="vkCmdSetColorBlendEnableEXT"/>
+                <command name="vkCmdSetColorBlendEquationEXT"/>
+                <command name="vkCmdSetColorWriteMaskEXT"/>
+                <command name="vkCmdSetRasterizationStreamEXT"/>
+                <command name="vkCmdSetConservativeRasterizationModeEXT"/>
+                <command name="vkCmdSetExtraPrimitiveOverestimationSizeEXT"/>
+                <command name="vkCmdSetDepthClipEnableEXT"/>
+                <command name="vkCmdSetSampleLocationsEnableEXT"/>
+                <command name="vkCmdSetColorBlendAdvancedEXT"/>
+                <command name="vkCmdSetProvokingVertexModeEXT"/>
+                <command name="vkCmdSetLineRasterizationModeEXT"/>
+                <command name="vkCmdSetLineStippleEnableEXT"/>
+                <command name="vkCmdSetDepthClipNegativeOneToOneEXT"/>
+            </require>
+            <require depends="VK_EXT_subgroup_size_control,VK_VERSION_1_3">
+                <enum bitpos="1" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"/>
+                <enum bitpos="2" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_mesh_shader,VK_NV_mesh_shader">
+                <enum bitpos="3" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT"/>
+            </require>
+            <require depends="VK_KHR_device_group,VK_VERSION_1_1">
+                <enum bitpos="4" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT"/>
+            </require>
+            <require depends="VK_KHR_fragment_shading_rate">
+                <enum bitpos="5" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT"/>
+            </require>
+            <require depends="VK_EXT_fragment_density_map">
+                <enum bitpos="6" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"/>
+            </require>
+            <require depends="VK_NV_clip_space_w_scaling">
+                <command name="vkCmdSetViewportWScalingEnableNV"/>
+            </require>
+            <require depends="VK_NV_viewport_swizzle">
+                <command name="vkCmdSetViewportSwizzleNV"/>
+            </require>
+            <require depends="VK_NV_fragment_coverage_to_color">
+                <command name="vkCmdSetCoverageToColorEnableNV"/>
+                <command name="vkCmdSetCoverageToColorLocationNV"/>
+            </require>
+            <require depends="VK_NV_framebuffer_mixed_samples">
+                <command name="vkCmdSetCoverageModulationModeNV"/>
+                <command name="vkCmdSetCoverageModulationTableEnableNV"/>
+                <command name="vkCmdSetCoverageModulationTableNV"/>
+            </require>
+            <require depends="VK_NV_shading_rate_image">
+                <command name="vkCmdSetShadingRateImageEnableNV"/>
+            </require>
+            <require depends="VK_NV_representative_fragment_test">
+                <command name="vkCmdSetRepresentativeFragmentTestEnableNV"/>
+            </require>
+            <require depends="VK_NV_coverage_reduction_mode">
+                <command name="vkCmdSetCoverageReductionModeNV"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_484" number="484" author="KHR" contact="Chris Glover @cdglove" supported="disabled">
             <require>
-                <enum value="0"                                         name="VK_EXT_EXTENSION_484_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_484&quot;"          name="VK_EXT_EXTENSION_484_EXTENSION_NAME"/>
+                <enum value="0"                                          name="VK_EXT_EXTENSION_484_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_484&quot;"           name="VK_EXT_EXTENSION_484_EXTENSION_NAME"/>
+                <enum bitpos="31" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RESERVED_31_BIT_KHR"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_tile_properties" number="485" type="device" requires="VK_KHR_get_physical_device_properties2" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
+        <extension name="VK_QCOM_tile_properties" number="485" type="device" depends="VK_KHR_get_physical_device_properties2" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
             <require>
                 <enum value="1"                                               name="VK_QCOM_TILE_PROPERTIES_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_tile_properties&quot;"             name="VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME"/>
@@ -20835,10 +23346,12 @@
                 <enum offset="1" extends="VkStructureType"                    name="VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"/>
                 <type name="VkPhysicalDeviceTilePropertiesFeaturesQCOM"/>
                 <type name="VkTilePropertiesQCOM"/>
+            </require>
+            <require depends="VK_KHR_dynamic_rendering">
                 <type name="VkRenderingInfoKHR"/>
             </require>
         </extension>
-        <extension name="VK_SEC_amigo_profiling" number="486" type="device" requires="VK_KHR_get_physical_device_properties2" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="vulkan">
+        <extension name="VK_SEC_amigo_profiling" number="486" type="device" depends="VK_KHR_get_physical_device_properties2" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="vulkan">
             <require>
                 <enum value="1"                                               name="VK_SEC_AMIGO_PROFILING_SPEC_VERSION"/>
                 <enum value="&quot;VK_SEC_amigo_profiling&quot;"              name="VK_SEC_AMIGO_PROFILING_EXTENSION_NAME"/>
@@ -20860,7 +23373,7 @@
                 <enum value="&quot;VK_EXT_extension_488&quot;"          name="VK_EXT_EXTENSION_488_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_QCOM_multiview_per_view_viewports" number="489" type="device" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
+        <extension name="VK_QCOM_multiview_per_view_viewports" number="489" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="1"                                                name="VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION"/>
                 <enum value="&quot;VK_QCOM_multiview_per_view_viewports&quot;" name="VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME"/>
@@ -20868,13 +23381,46 @@
                 <type name="VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_490" number="490" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_NV_external_sci_sync2" number="490" author="NV" depends="VK_VERSION_1_1" platform="sci" type="device" contact="Kai Zhang @kazhang" supported="vulkansc">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_490_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_490&quot;"           name="VK_NV_EXTENSION_490_EXTENSION_NAME"/>
+                <enum value="1"                                         name="VK_NV_EXTERNAL_SCI_SYNC_2_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_external_sci_sync2&quot;"      name="VK_NV_EXTERNAL_SCI_SYNC_2_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkObjectType"                name="VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV"   comment="VkSemaphoreSciSyncPoolNV"/>
+                <enum offset="0"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV"/>
+                <enum offset="1"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV"/>
+                <enum offset="2"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV"/>
+                <type name="VkSemaphoreSciSyncPoolNV"/>
+                <type name="VkPhysicalDeviceExternalSciSync2FeaturesNV"/>
+                <type name="VkSemaphoreSciSyncPoolCreateInfoNV"/>
+                <type name="VkSemaphoreSciSyncCreateInfoNV"/>
+                <command name="vkCreateSemaphoreSciSyncPoolNV"/>
+                <command name="vkDestroySemaphoreSciSyncPoolNV"/>
+            </require>
+            <require comment="functionality re-used unmodified from VK_NV_external_sci_sync">
+                <enum extnumber="374" offset="0" extends="VkStructureType"   name="VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV"/>
+                <enum extnumber="374" offset="1" extends="VkStructureType"   name="VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV"/>
+                <enum extnumber="374" offset="2" extends="VkStructureType"   name="VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV"/>
+                <enum extnumber="374" offset="3" extends="VkStructureType"   name="VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV"/>
+                <enum bitpos="4" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV"/>
+                <enum bitpos="5" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV"/>
+                <type name="VkSciSyncClientTypeNV"/>
+                <type name="VkSciSyncPrimitiveTypeNV"/>
+                <type name="VkExportFenceSciSyncInfoNV"/>
+                <type name="VkImportFenceSciSyncInfoNV"/>
+                <type name="VkFenceGetSciSyncInfoNV"/>
+                <type name="VkSciSyncAttributesInfoNV"/>
+                <command name="vkGetFenceSciSyncFenceNV"/>
+                <command name="vkGetFenceSciSyncObjNV"/>
+                <command name="vkImportFenceSciSyncFenceNV"/>
+                <command name="vkImportFenceSciSyncObjNV"/>
+                <command name="vkGetPhysicalDeviceSciSyncAttributesNV"/>
+            </require>
+            <require depends="VKSC_VERSION_1_0" api="vulkansc">
+                <enum offset="3" extends="VkStructureType"         name="VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV"/>
+                <type name="VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV"/>
             </require>
         </extension>
-        <extension name="VK_NV_ray_tracing_invocation_reorder" number="491" type="device" requires="VK_KHR_ray_tracing_pipeline" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
+        <extension name="VK_NV_ray_tracing_invocation_reorder" number="491" type="device" depends="VK_KHR_ray_tracing_pipeline" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
             <require>
                 <enum value="1"                                                 name="VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_ray_tracing_invocation_reorder&quot;"  name="VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME"/>
@@ -20891,10 +23437,14 @@
                 <enum value="&quot;VK_NV_extension_492&quot;"           name="VK_NV_EXTENSION_492_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_NV_extension_493" number="493" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+        <extension name="VK_NV_extended_sparse_address_space" number="493" type="device" author="NV" contact="Russell Chou @russellcnv" supported="vulkan">
             <require>
-                <enum value="0"                                         name="VK_NV_EXTENSION_493_SPEC_VERSION"/>
-                <enum value="&quot;VK_NV_extension_493&quot;"           name="VK_NV_EXTENSION_493_EXTENSION_NAME"/>
+                <enum value="1"                                               name="VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_extended_sparse_address_space&quot;" name="VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                    name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV"/>
+                <enum offset="1" extends="VkStructureType"                    name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV"/>
+                <type name="VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV"/>
+                <type name="VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV"/>
             </require>
         </extension>
         <extension name="VK_NV_extension_494" number="494" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
@@ -20903,7 +23453,7 @@
                 <enum value="&quot;VK_NV_extension_494&quot;"           name="VK_NV_EXTENSION_494_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_mutable_descriptor_type" number="495" type="device" supported="vulkan" author="EXT" contact="Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" requires="VK_KHR_maintenance3">
+        <extension name="VK_EXT_mutable_descriptor_type" number="495" type="device" supported="vulkan" author="EXT" contact="Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" depends="VK_KHR_maintenance3">
             <require>
                 <enum value="1"                                                name="VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_mutable_descriptor_type&quot;"       name="VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME"/>
@@ -20923,13 +23473,17 @@
                 <enum value="&quot;VK_EXT_extension_496&quot;"              name="VK_EXT_EXTENSION_496_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_497" number="497" author="EXT" contact="Christophe Riccio @christophe" type="device" supported="disabled">
+        <extension name="VK_EXT_layer_settings" number="497" author="EXT" contact="Christophe Riccio @christophe" type="instance" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_EXT_EXTENSION_497_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_497&quot;"              name="VK_EXT_EXTENSION_497_EXTENSION_NAME"/>
+                <enum value="2"                                             name="VK_EXT_LAYER_SETTINGS_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_layer_settings&quot;"              name="VK_EXT_LAYER_SETTINGS_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"/>
+                <type name="VkLayerSettingsCreateInfoEXT"/>
+                <type name="VkLayerSettingEXT"/>
+                <type name="VkLayerSettingTypeEXT"/>
             </require>
         </extension>
-        <extension name="VK_ARM_shader_core_builtins" number="498" author="ARM" contact="Kevin Petit @kevinpetit" type="device" supported="vulkan">
+        <extension name="VK_ARM_shader_core_builtins" number="498" author="ARM" contact="Kevin Petit @kpet" type="device" depends="VK_KHR_get_physical_device_properties2" supported="vulkan">
             <require>
                 <enum value="2"                                         name="VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION"/>
                 <enum value="&quot;VK_ARM_shader_core_builtins&quot;"   name="VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME"/>
@@ -20939,16 +23493,20 @@
                 <type name="VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_499" number="499" author="EXT" contact="Hans-Kristian Arntzen @HansKristian-Work" type="device" supported="disabled">
+        <extension name="VK_EXT_pipeline_library_group_handles" number="499" type="device" depends="VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library" author="EXT" contact="Hans-Kristian Arntzen @HansKristian-Work" supported="vulkan">
             <require>
-                <enum value="0"                                             name="VK_EXT_EXTENSION_499_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_499&quot;"              name="VK_EXT_EXTENSION_499_EXTENSION_NAME"/>
+                <enum value="1"                                                  name="VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_pipeline_library_group_handles&quot;"  name="VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                       name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT"/>
+                <type name="VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT"/>
             </require>
         </extension>
-        <extension name="VK_EXT_extension_500" number="500" author="EXT" contact="Piers Daniell @pdaniell-nv" type="device" supported="disabled">
+        <extension name="VK_EXT_dynamic_rendering_unused_attachments" number="500" author="EXT" contact="Piers Daniell @pdaniell-nv" type="device" depends="(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+(VK_KHR_dynamic_rendering,VK_VERSION_1_3)" supported="vulkan" ratified="vulkan">
             <require>
-                <enum value="0"                                             name="VK_EXT_EXTENSION_500_SPEC_VERSION"/>
-                <enum value="&quot;VK_EXT_extension_500&quot;"              name="VK_EXT_EXTENSION_500_EXTENSION_NAME"/>
+                <enum value="1"                                                        name="VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_dynamic_rendering_unused_attachments&quot;"  name="VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME"/>
+                <enum offset="0"  extends="VkStructureType"                            name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT"/>
+                <type name="VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT"/>
             </require>
         </extension>
         <extension name="VK_EXT_extension_501" number="501" author="SEC" contact="Chris Hambacher @chambacher" type="device" supported="disabled">
@@ -20981,6 +23539,451 @@
                 <enum value="&quot;VK_EXT_extension_505&quot;"              name="VK_EXT_EXTENSION_505_EXTENSION_NAME"/>
             </require>
         </extension>
+        <extension name="VK_NV_low_latency2" number="506" author="NV" depends="VK_VERSION_1_2,VK_KHR_timeline_semaphore" contact="Charles Hansen @cshansen" type="device" supported="vulkan">
+            <require>
+                <enum value="2"                                             name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_low_latency2&quot;"                name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"/>
+                <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"/>
+                <enum offset="5" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV"/>
+                <enum offset="6" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV"/>
+                <enum offset="7" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV"/>
+                <enum offset="8" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV"/>
+                <type name="VkLatencySleepModeInfoNV"/>
+                <type name="VkLatencySleepInfoNV"/>
+                <type name="VkSetLatencyMarkerInfoNV"/>
+                <type name="VkGetLatencyMarkerInfoNV"/>
+                <type name="VkLatencyTimingsFrameReportNV"/>
+                <type name="VkLatencyMarkerNV"/>
+                <type name="VkLatencySubmissionPresentIdNV"/>
+                <type name="VkSwapchainLatencyCreateInfoNV"/>
+                <type name="VkOutOfBandQueueTypeInfoNV"/>
+                <type name="VkOutOfBandQueueTypeNV"/>
+                <type name="VkLatencySurfaceCapabilitiesNV"/>
+                <command name="vkSetLatencySleepModeNV"/>
+                <command name="vkLatencySleepNV"/>
+                <command name="vkSetLatencyMarkerNV"/>
+                <command name="vkGetLatencyTimingsNV"/>
+                <command name="vkQueueNotifyOutOfBandNV"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_cooperative_matrix" number="507" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Kevin Petit @kpet" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="2"                                              name="VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_cooperative_matrix&quot;"          name="VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR"/>
+                <enum offset="2" extends="VkStructureType"                   name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR"/>
+                <type name="VkCooperativeMatrixPropertiesKHR"/>
+                <type name="VkScopeKHR"/>
+                <type name="VkComponentTypeKHR"/>
+                <type name="VkPhysicalDeviceCooperativeMatrixFeaturesKHR"/>
+                <type name="VkPhysicalDeviceCooperativeMatrixPropertiesKHR"/>
+                <command name="vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_508" number="508" author="EXT" contact="Kevin Petit @kpet" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_EXT_EXTENSION_508_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_508&quot;"              name="VK_EXT_EXTENSION_508_EXTENSION_NAME"/>
+                <enum bitpos="10" extends="VkQueueFlagBits"                 name="VK_QUEUE_RESERVED_10_BIT_EXT" />
+                <enum bitpos="42" extends="VkPipelineStageFlagBits2"        name="VK_PIPELINE_STAGE_2_RESERVED_42_BIT_EXT" />
+                <enum bitpos="47" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_47_BIT_EXT" />
+                <enum bitpos="48" extends="VkAccessFlagBits2"               name="VK_ACCESS_2_RESERVED_48_BIT_EXT" />
+                <enum bitpos="48" extends="VkFormatFeatureFlagBits2"        name="VK_FORMAT_FEATURE_2_RESERVED_48_BIT_EXT" />
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_509" number="509" author="EXT" contact="Kevin Petit @kpet" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_EXT_EXTENSION_509_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_509&quot;"              name="VK_EXT_EXTENSION_509_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_MESA_extension_510" number="510" author="MESA" contact="Dave Airlie @airlied" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_MESA_EXTENSION_510_SPEC_VERSION"/>
+                <enum value="&quot;VK_MESA_extension_510&quot;"             name="VK_MESA_EXTENSION_510_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_multiview_per_view_render_areas" number="511" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
+            <require>
+                <enum value="1"                                                   name="VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_multiview_per_view_render_areas&quot;" name="VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM"/>
+                <enum offset="1" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"/>
+                <type name="VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM"/>
+               <type name="VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_512" number="512" author="EXT" contact="Jean-Noe Morissette @MagicPoncho" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_EXT_EXTENSION_512_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_512&quot;"              name="VK_EXT_EXTENSION_512_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_513" number="513" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_513_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_513&quot;"              name="VK_KHR_EXTENSION_513_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_514" number="514" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_514_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_514&quot;"              name="VK_KHR_EXTENSION_514_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_515" number="515" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_515_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_515&quot;"              name="VK_KHR_EXTENSION_515_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_video_maintenance1" number="516" author="KHR" contact="Daniel Rakos @aqnuep" type="device" depends="VK_KHR_video_queue" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="1"                                             name="VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_video_maintenance1&quot;"         name="VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR"/>
+                <enum bitpos="20" extends="VkImageCreateFlagBits"           name="VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"/>
+                <enum bitpos="6" extends="VkBufferCreateFlagBits"           name="VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"/>
+                <enum bitpos="2" extends="VkVideoSessionCreateFlagBitsKHR"  name="VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR"/>
+                <type name="VkPhysicalDeviceVideoMaintenance1FeaturesKHR"/>
+                <type name="VkVideoInlineQueryInfoKHR"/>
+            </require>
+        </extension>
+        <extension name="VK_NV_per_stage_descriptor_set" number="517" depends="VK_KHR_maintenance6" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+            <require>
+                <enum value="1"                                                name="VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_per_stage_descriptor_set&quot;"       name="VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                     name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV"/>
+                <enum bitpos="6" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV"/>
+                <type name="VkPhysicalDevicePerStageDescriptorSetFeaturesNV"/>
+            </require>
+        </extension>
+        <extension name="VK_MESA_extension_518" number="518" author="MESA" contact="Dave Airlie @airlied" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_MESA_EXTENSION_518_SPEC_VERSION"/>
+                <enum value="&quot;VK_MESA_extension_518&quot;"             name="VK_MESA_EXTENSION_518_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_image_processing2" number="519" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan" depends="VK_QCOM_image_processing">
+            <require>
+                <enum value="1"                                                   name="VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_image_processing2&quot;"               name="VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM"/>
+                <enum offset="1" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM"/>
+                <enum offset="2" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM"/>
+                <type name="VkPhysicalDeviceImageProcessing2FeaturesQCOM"/>
+                <type name="VkPhysicalDeviceImageProcessing2PropertiesQCOM"/>
+                <type name="VkSamplerBlockMatchWindowCreateInfoQCOM"/>
+                <type name="VkBlockMatchWindowCompareModeQCOM"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_filter_cubic_weights" number="520" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan" depends="VK_EXT_filter_cubic">
+            <require>
+                <enum value="1"                                             name="VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_filter_cubic_weights&quot;"      name="VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"/>
+                <type name="VkPhysicalDeviceCubicWeightsFeaturesQCOM"/>
+                <type name="VkSamplerCubicWeightsCreateInfoQCOM"/>
+                <type name="VkBlitImageCubicWeightsInfoQCOM"/>
+                <type name="VkCubicFilterWeightsQCOM"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_ycbcr_degamma" number="521" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
+            <require>
+                <enum value="1"                                                   name="VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_ycbcr_degamma&quot;"                   name="VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM"/>
+                <enum offset="1" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM"/>
+                <type name="VkPhysicalDeviceYcbcrDegammaFeaturesQCOM"/>
+                <type name="VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_filter_cubic_clamp" number="522" type="device" author="QCOM" depends="(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)" contact="Matthew Netsch @mnetsch" supported="vulkan">
+            <require>
+                <enum value="1"                                                   name="VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_filter_cubic_clamp&quot;"              name="VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                        name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM"/>
+                <enum offset="0" extends="VkSamplerReductionMode"                 name="VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM"/>
+                <type name="VkPhysicalDeviceCubicClampFeaturesQCOM"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_523" number="523" author="EXT" contact="Kevin Petit @kpet" supported="disabled">
+            <require>
+                <enum value="0"                                                name="VK_EXT_EXTENSION_523_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_523&quot;"                 name="VK_EXT_EXTENSION_523_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_524" number="524" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="disabled">
+            <require>
+                <enum value="0"                                                name="VK_EXT_EXTENSION_524_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_524&quot;"                 name="VK_EXT_EXTENSION_524_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_attachment_feedback_loop_dynamic_state" number="525" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2+VK_EXT_attachment_feedback_loop_layout" contact="Mike Blumenkrantz @zmike" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="1"                                                                name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_attachment_feedback_loop_dynamic_state&quot;" name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                                     name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"/>
+                <enum offset="0" extends="VkDynamicState"                                      name="VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT"/>
+                <type name="VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT"/>
+                <command name="vkCmdSetAttachmentFeedbackLoopEnableEXT"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_vertex_attribute_divisor" number="526" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="KHR" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="1"                                            name="VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_vertex_attribute_divisor&quot;"  name="VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                 name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"/>
+                <enum offset="1" extends="VkStructureType" extnumber="191" name="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"/>
+                <enum offset="2" extends="VkStructureType" extnumber="191" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"/>
+                <type name="VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR"/>
+                <type name="VkVertexInputBindingDivisorDescriptionKHR"/>
+                <type name="VkPipelineVertexInputDivisorStateCreateInfoKHR"/>
+                <type name="VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_527" number="527" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_527_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_527&quot;"          name="VK_EXT_EXTENSION_527_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_528" number="528" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_528_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_528&quot;"          name="VK_EXT_EXTENSION_528_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_529" number="529" author="KHR" contact="Graeme Leese @gnl21" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_KHR_EXTENSION_529_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_529&quot;"          name="VK_KHR_EXTENSION_529_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_QNX_external_memory_screen_buffer" number="530" type="device" author="QNX" depends="((VK_KHR_sampler_ycbcr_conversion+VK_KHR_external_memory+VK_KHR_dedicated_allocation),VK_VERSION_1_1)+VK_EXT_queue_family_foreign" platform="screen" contact="Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry" supported="vulkan,vulkansc">
+            <require>
+                <enum value="1"                                             name="VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION"/>
+                <enum value="&quot;VK_QNX_external_memory_screen_buffer&quot;" name="VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME"/>
+                <enum bitpos="14" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX"/>
+                <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX"/>
+                <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX"/>
+                <enum offset="2" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX"/>
+                <enum offset="3" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX"/>
+                <enum offset="4" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX"/>
+                <type name="VkScreenBufferPropertiesQNX"/>
+                <type name="VkScreenBufferFormatPropertiesQNX"/>
+                <type name="VkImportScreenBufferInfoQNX"/>
+                <type name="VkExternalFormatQNX"/>
+                <type name="VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX"/>
+                <command name="vkGetScreenBufferPropertiesQNX"/>
+            </require>
+        </extension>
+        <extension name="VK_MSFT_layered_driver" number="531" type="device" depends="VK_KHR_get_physical_device_properties2" author="MSFT" contact="Jesse Natalie @jenatali" supported="vulkan">
+            <require>
+                <enum value="1"                                         name="VK_MSFT_LAYERED_DRIVER_SPEC_VERSION"/>
+                <enum value="&quot;VK_MSFT_layered_driver&quot;"        name="VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"/>
+                <type name="VkLayeredDriverUnderlyingApiMSFT"/>
+                <type name="VkPhysicalDeviceLayeredDriverPropertiesMSFT"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_532" number="532" author="KHR" contact="Tobias Hector @tobias" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_KHR_EXTENSION_532_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_532&quot;"         name="VK_KHR_EXTENSION_532_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_533" number="533" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_533_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_533&quot;"          name="VK_EXT_EXTENSION_533_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_534" number="534" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_KHR_EXTENSION_534_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_534&quot;"          name="VK_KHR_EXTENSION_534_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_535" number="535" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_KHR_EXTENSION_535_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_535&quot;"          name="VK_KHR_EXTENSION_535_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_extension_536" number="536" type="device" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
+            <require>
+                <enum value="0"                                                   name="VK_QCOM_EXTENSION_536_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_extension_536&quot;"                   name="VK_QCOM_EXTENSION_536_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_537" number="537" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_537_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_537&quot;"          name="VK_EXT_EXTENSION_537_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_538" number="538" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_538_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_538&quot;"          name="VK_EXT_EXTENSION_538_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_539" number="539" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_539_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_539&quot;"          name="VK_EXT_EXTENSION_539_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_540" number="540" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_540_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_540&quot;"          name="VK_EXT_EXTENSION_540_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_541" number="541" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_541_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_541&quot;"          name="VK_EXT_EXTENSION_541_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_542" number="542" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_542_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_542&quot;"          name="VK_EXT_EXTENSION_542_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_EXT_extension_543" number="543" author="EXT" contact="Daniel Koch @dgkoch" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_EXT_EXTENSION_543_SPEC_VERSION"/>
+                <enum value="&quot;VK_EXT_extension_543&quot;"          name="VK_EXT_EXTENSION_543_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_calibrated_timestamps" number="544" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="KHR" contact="Daniel Rakos @aqnuep" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="1"                                         name="VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_calibrated_timestamps&quot;"  name="VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType" extnumber="185" name="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"/>
+                <type name="VkTimeDomainKHR"/>
+                <type name="VkCalibratedTimestampInfoKHR"/>
+                <command name="vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"/>
+                <command name="vkGetCalibratedTimestampsKHR"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_545" number="545" author="KHR" contact="Kevin Petit @kpet" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_KHR_EXTENSION_545_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_545&quot;"          name="VK_KHR_EXTENSION_545_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_maintenance6" number="546" type="device" depends="VK_VERSION_1_1" author="KHR" contact="Jon Leech @oddhack" supported="vulkan" ratified="vulkan">
+            <require>
+                <enum value="1"                                         name="VK_KHR_MAINTENANCE_6_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_maintenance6&quot;"           name="VK_KHR_MAINTENANCE_6_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR"/>
+                <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR"/>
+                <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR"/>
+                <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR"/>
+                <type name="VkPhysicalDeviceMaintenance6FeaturesKHR"/>
+                <type name="VkPhysicalDeviceMaintenance6PropertiesKHR"/>
+                <type name="VkBindMemoryStatusKHR"/>
+                <type name="VkBindDescriptorSetsInfoKHR"/>
+                <type name="VkPushConstantsInfoKHR"/>
+                <command name="vkCmdBindDescriptorSets2KHR"/>
+                <command name="vkCmdPushConstants2KHR"/>
+            </require>
+            <require depends="VK_KHR_push_descriptor">
+                <enum offset="5" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR"/>
+                <enum offset="6" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR"/>
+                <type name="VkPushDescriptorSetInfoKHR"/>
+                <type name="VkPushDescriptorSetWithTemplateInfoKHR"/>
+                <command name="vkCmdPushDescriptorSet2KHR"/>
+                <command name="vkCmdPushDescriptorSetWithTemplate2KHR"/>
+            </require>
+            <require depends="VK_EXT_descriptor_buffer">
+                <enum offset="7" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT"/>
+                <enum offset="8" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT"/>
+                <type name="VkSetDescriptorBufferOffsetsInfoEXT"/>
+                <type name="VkBindDescriptorBufferEmbeddedSamplersInfoEXT"/>
+                <command name="vkCmdSetDescriptorBufferOffsets2EXT"/>
+                <command name="vkCmdBindDescriptorBufferEmbeddedSamplers2EXT"/>
+            </require>
+            <require comment="Individual APIs with dependencies on specific versions/extensions should get their own require blocks with depends= attribute set appropriately">
+            </require>
+        </extension>
+        <extension name="VK_NV_descriptor_pool_overallocation" number="547" type="device" author="NV" depends="VK_VERSION_1_1" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+            <require>
+                <enum value="1"                                                 name="VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_descriptor_pool_overallocation&quot;"  name="VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME"/>
+                <enum offset="0" extends="VkStructureType"                      name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"/>
+                <enum bitpos="3" extends="VkDescriptorPoolCreateFlagBits"       name="VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV"/>
+                <enum bitpos="4" extends="VkDescriptorPoolCreateFlagBits"       name="VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV"/>
+                <type name="VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV"/>
+            </require>
+        </extension>
+        <extension name="VK_QCOM_extension_548" number="548" type="device" author="QCOM" contact="Patrick Boyle @pboyleQCOM" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_QCOM_EXTENSION_548_SPEC_VERSION"/>
+                <enum value="&quot;VK_QCOM_extension_548&quot;"         name="VK_QCOM_EXTENSION_548_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <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"/>
+            </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>
+        <extension name="VK_NV_extension_552" number="552" author="NV" contact="Russell Chou @russellcnv" supported="disabled">
+            <require>
+                <enum value="0"                                         name="VK_NV_EXTENSION_552_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_extension_552&quot;"           name="VK_NV_EXTENSION_552_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_553" number="553" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_553_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_553&quot;"              name="VK_KHR_EXTENSION_553_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_KHR_extension_554" number="554" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_KHR_EXTENSION_554_SPEC_VERSION"/>
+                <enum value="&quot;VK_KHR_extension_554&quot;"              name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_IMG_extension_555" number="555" author="IMG" contact="Jarred Davies" supported="disabled">
+            <require>
+                <enum value="0"                                             name="VK_IMG_EXTENSION_555_SPEC_VERSION"/>
+                <enum value="&quot;VK_IMG_extension_555&quot;"              name="VK_IMG_EXTENSION_555_EXTENSION_NAME"/>
+            </require>
+        </extension>
+        <extension name="VK_NV_extension_556" number="556" type="device" author="NV" contact="Rodrigo Locatti @rlocatti" supported="disabled">
+            <require>
+                <enum value="1"                                             name="VK_NV_EXTENSION_556_SPEC_VERSION"/>
+                <enum value="&quot;VK_NV_extension_556&quot;"               name="VK_NV_EXTENSION_556_EXTENSION_NAME"/>
+            </require>
+        </extension>
     </extensions>
     <formats>
         <format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@@ -21017,8 +24020,8 @@
         </format>
         <format name="VK_FORMAT_B5G5R5A1_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
             <component name="B" bits="5" numericFormat="UNORM"/>
-            <component name="R" bits="5" numericFormat="UNORM"/>
             <component name="G" bits="5" numericFormat="UNORM"/>
+            <component name="R" bits="5" numericFormat="UNORM"/>
             <component name="A" bits="1" numericFormat="UNORM"/>
         </format>
         <format name="VK_FORMAT_A1R5G5B5_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
@@ -21027,6 +24030,15 @@
             <component name="G" bits="5" numericFormat="UNORM"/>
             <component name="B" bits="5" numericFormat="UNORM"/>
         </format>
+        <format name="VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
+            <component name="A" bits="1" numericFormat="UNORM"/>
+            <component name="B" bits="5" numericFormat="UNORM"/>
+            <component name="G" bits="5" numericFormat="UNORM"/>
+            <component name="R" bits="5" numericFormat="UNORM"/>
+        </format>
+        <format name="VK_FORMAT_A8_UNORM_KHR" class="8-bit alpha" blockSize="1" texelsPerBlock="1">
+            <component name="A" bits="8" numericFormat="UNORM"/>
+        </format>
         <format name="VK_FORMAT_R8_UNORM" class="8-bit" blockSize="1" texelsPerBlock="1">
             <component name="R" bits="8" numericFormat="UNORM"/>
             <spirvimageformat name="R8"/>
@@ -21575,15 +24587,15 @@
         </format>
         <format name="VK_FORMAT_R64G64_UINT" class="128-bit" blockSize="16" texelsPerBlock="1">
             <component name="R" bits="64" numericFormat="UINT"/>
-            <component name="B" bits="64" numericFormat="UINT"/>
+            <component name="G" bits="64" numericFormat="UINT"/>
         </format>
         <format name="VK_FORMAT_R64G64_SINT" class="128-bit" blockSize="16" texelsPerBlock="1">
             <component name="R" bits="64" numericFormat="SINT"/>
-            <component name="B" bits="64" numericFormat="SINT"/>
+            <component name="G" bits="64" numericFormat="SINT"/>
         </format>
         <format name="VK_FORMAT_R64G64_SFLOAT" class="128-bit" blockSize="16" texelsPerBlock="1">
             <component name="R" bits="64" numericFormat="SFLOAT"/>
-            <component name="B" bits="64" numericFormat="SFLOAT"/>
+            <component name="G" bits="64" numericFormat="SFLOAT"/>
         </format>
         <format name="VK_FORMAT_R64G64B64_UINT" class="192-bit" blockSize="24" texelsPerBlock="1">
             <component name="R" bits="64" numericFormat="UINT"/>
@@ -21621,7 +24633,7 @@
         <format name="VK_FORMAT_B10G11R11_UFLOAT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
             <component name="B" bits="10" numericFormat="UFLOAT"/>
             <component name="G" bits="11" numericFormat="UFLOAT"/>
-            <component name="R" bits="10" numericFormat="UFLOAT"/>
+            <component name="R" bits="11" numericFormat="UFLOAT"/>
             <spirvimageformat name="R11fG11fB10f"/>
         </format>
         <format name="VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
@@ -21703,15 +24715,15 @@
             <component name="R" bits="compressed" numericFormat="UNORM"/>
         </format>
         <format name="VK_FORMAT_BC4_SNORM_BLOCK" class="BC4" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
-            <component name="R" bits="compressed" numericFormat="SRGB"/>
+            <component name="R" bits="compressed" numericFormat="SNORM"/>
         </format>
         <format name="VK_FORMAT_BC5_UNORM_BLOCK" class="BC5" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
             <component name="R" bits="compressed" numericFormat="UNORM"/>
             <component name="G" bits="compressed" numericFormat="UNORM"/>
         </format>
         <format name="VK_FORMAT_BC5_SNORM_BLOCK" class="BC5" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
-            <component name="R" bits="compressed" numericFormat="SRGB"/>
-            <component name="G" bits="compressed" numericFormat="SRGB"/>
+            <component name="R" bits="compressed" numericFormat="SNORM"/>
+            <component name="G" bits="compressed" numericFormat="SNORM"/>
         </format>
         <format name="VK_FORMAT_BC6H_UFLOAT_BLOCK" class="BC6H" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
             <component name="R" bits="compressed" numericFormat="UFLOAT"/>
@@ -22510,21 +25522,21 @@
             <enable extension="VK_EXT_fragment_shader_interlock"/>
         </spirvextension>
         <spirvextension name="SPV_EXT_demote_to_helper_invocation">
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_EXT_shader_demote_to_helper_invocation"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_fragment_shading_rate">
             <enable extension="VK_KHR_fragment_shading_rate"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_non_semantic_info">
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_shader_non_semantic_info"/>
         </spirvextension>
         <spirvextension name="SPV_EXT_shader_image_int64">
             <enable extension="VK_EXT_shader_image_atomic_int64"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_terminate_invocation">
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_shader_terminate_invocation"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_multiview">
@@ -22541,7 +25553,7 @@
             <enable extension="VK_KHR_fragment_shader_barycentric"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_subgroup_uniform_control_flow">
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_shader_subgroup_uniform_control_flow"/>
         </spirvextension>
         <spirvextension name="SPV_EXT_shader_atomic_float_min_max">
@@ -22550,23 +25562,56 @@
         <spirvextension name="SPV_EXT_shader_atomic_float16_add">
             <enable extension="VK_EXT_shader_atomic_float2"/>
         </spirvextension>
+        <spirvextension name="SPV_EXT_fragment_fully_covered">
+            <enable extension="VK_EXT_conservative_rasterization"/>
+        </spirvextension>
         <spirvextension name="SPV_KHR_integer_dot_product">
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_shader_integer_dot_product"/>
         </spirvextension>
-        <spirvextension name="SPV_INTEL_shader_integer_functions">
+        <spirvextension name="SPV_INTEL_shader_integer_functions2">
             <enable extension="VK_INTEL_shader_integer_functions2"/>
         </spirvextension>
         <spirvextension name="SPV_KHR_device_group">
-            <enable version="VK_API_VERSION_1_1"/>
+            <enable version="VK_VERSION_1_1"/>
             <enable extension="VK_KHR_device_group"/>
         </spirvextension>
         <spirvextension name="SPV_QCOM_image_processing">
             <enable extension="VK_QCOM_image_processing"/>
         </spirvextension>
+        <spirvextension name="SPV_QCOM_image_processing2">
+            <enable extension="VK_QCOM_image_processing2"/>
+        </spirvextension>
         <spirvextension name="SPV_EXT_mesh_shader">
             <enable extension="VK_EXT_mesh_shader"/>
         </spirvextension>
+        <spirvextension name="SPV_KHR_ray_tracing_position_fetch">
+            <enable extension="VK_KHR_ray_tracing_position_fetch"/>
+        </spirvextension>
+        <spirvextension name="SPV_EXT_shader_tile_image">
+            <enable extension="VK_EXT_shader_tile_image"/>
+        </spirvextension>
+        <spirvextension name="SPV_EXT_opacity_micromap">
+            <enable extension="VK_EXT_opacity_micromap"/>
+        </spirvextension>
+        <spirvextension name="SPV_KHR_cooperative_matrix">
+            <enable extension="VK_KHR_cooperative_matrix"/>
+        </spirvextension>
+        <spirvextension name="SPV_ARM_core_builtins">
+            <enable extension="VK_ARM_shader_core_builtins"/>
+        </spirvextension>
+        <spirvextension name="SPV_AMDX_shader_enqueue">
+            <enable extension="VK_AMDX_shader_enqueue"/>
+        </spirvextension>
+        <spirvextension name="SPV_HUAWEI_cluster_culling_shader">
+            <enable extension="VK_HUAWEI_cluster_culling_shader"/>
+        </spirvextension>
+        <spirvextension name="SPV_HUAWEI_subpass_shading">
+            <enable extension="VK_HUAWEI_subpass_shading"/>
+        </spirvextension>
+        <spirvextension name="SPV_NV_ray_tracing_motion_blur">
+            <enable extension="VK_NV_ray_tracing_motion_blur"/>
+        </spirvextension>
     </spirvextensions>
     <spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it">
         <spirvcapability name="Matrix">
@@ -22701,12 +25746,12 @@
         </spirvcapability>
         <spirvcapability name="StorageImageReadWithoutFormat">
             <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageReadWithoutFormat" requires="VK_VERSION_1_0"/>
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_format_feature_flags2"/>
         </spirvcapability>
         <spirvcapability name="StorageImageWriteWithoutFormat">
             <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageWriteWithoutFormat" requires="VK_VERSION_1_0"/>
-            <enable version="VK_API_VERSION_1_3"/>
+            <enable version="VK_VERSION_1_3"/>
             <enable extension="VK_KHR_format_feature_flags2"/>
         </spirvcapability>
         <spirvcapability name="MultiViewport">
@@ -22940,7 +25985,7 @@
             <enable struct="VkPhysicalDeviceRayQueryFeaturesKHR" feature="rayQuery" requires="VK_KHR_ray_query"/>
         </spirvcapability>
         <spirvcapability name="RayCullMaskKHR">
-             <enable struct="VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR" feature="rayTracingMaintenance1" requires="VK_KHR_ray_tracing_maintenance1"/>
+            <enable struct="VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR" feature="rayTracingMaintenance1" requires="VK_KHR_ray_tracing_maintenance1"/>
         </spirvcapability>
         <spirvcapability name="RayTracingNV">
             <enable extension="VK_NV_ray_tracing"/>
@@ -23026,6 +26071,9 @@
         <spirvcapability name="TextureBlockMatchQCOM">
             <enable struct="VkPhysicalDeviceImageProcessingFeaturesQCOM" feature="textureBlockMatch" requires="VK_QCOM_image_processing"/>
         </spirvcapability>
+        <spirvcapability name="TextureBlockMatch2QCOM">
+            <enable struct="VkPhysicalDeviceImageProcessing2FeaturesQCOM" feature="textureBlockMatch2" requires="VK_QCOM_image_processing2"/>
+        </spirvcapability>
         <spirvcapability name="MeshShadingEXT">
             <enable extension="VK_EXT_mesh_shader"/>
         </spirvcapability>
@@ -23038,5 +26086,361 @@
         <spirvcapability name="ShaderInvocationReorderNV">
             <enable extension="VK_NV_ray_tracing_invocation_reorder"/>
         </spirvcapability>
+        <spirvcapability name="ClusterCullingShadingHUAWEI">
+            <enable struct="VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI" feature="clustercullingShader" requires="VK_HUAWEI_cluster_culling_shader"/>
+        </spirvcapability>
+        <spirvcapability name="RayTracingPositionFetchKHR">
+            <enable struct="VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR" feature="rayTracingPositionFetch" requires="VK_KHR_ray_tracing_position_fetch"/>
+        </spirvcapability>
+        <spirvcapability name="TileImageColorReadAccessEXT">
+            <enable struct="VkPhysicalDeviceShaderTileImageFeaturesEXT" feature="shaderTileImageColorReadAccess" requires="VK_EXT_shader_tile_image"/>
+        </spirvcapability>
+        <spirvcapability name="TileImageDepthReadAccessEXT">
+            <enable struct="VkPhysicalDeviceShaderTileImageFeaturesEXT" feature="shaderTileImageDepthReadAccess" requires="VK_EXT_shader_tile_image"/>
+        </spirvcapability>
+        <spirvcapability name="TileImageStencilReadAccessEXT">
+            <enable struct="VkPhysicalDeviceShaderTileImageFeaturesEXT" feature="shaderTileImageStencilReadAccess" requires="VK_EXT_shader_tile_image"/>
+        </spirvcapability>
+        <spirvcapability name="CooperativeMatrixKHR">
+            <enable struct="VkPhysicalDeviceCooperativeMatrixFeaturesKHR" feature="cooperativeMatrix" requires="VK_KHR_cooperative_matrix"/>
+        </spirvcapability>
+        <spirvcapability name="ShaderEnqueueAMDX">
+            <enable struct="VkPhysicalDeviceShaderEnqueueFeaturesAMDX" feature="shaderEnqueue" requires="VK_AMDX_shader_enqueue"/>
+        </spirvcapability>
     </spirvcapabilities>
+    <sync comment="Machine readable representation of the synchronization objects and their mappings">
+        <syncstage name="VK_PIPELINE_STAGE_2_NONE" alias="VK_PIPELINE_STAGE_NONE">
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT" alias="VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT">
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT" alias="VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT">
+            <syncsupport queues="graphics,compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT" alias="VK_PIPELINE_STAGE_VERTEX_INPUT_BIT">
+            <syncsupport queues="graphics"/>
+            <syncequivalent stage="VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT" alias="VK_PIPELINE_STAGE_VERTEX_SHADER_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT" alias="VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT" alias="VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT" alias="VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT" alias="VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT" alias="VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT" alias="VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT" alias="VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT" alias="VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT">
+            <syncsupport queues="compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT" alias="VK_PIPELINE_STAGE_TRANSFER_BIT">
+            <syncsupport queues="graphics,compute,transfer"/>
+            <syncequivalent stage="VK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_CLEAR_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT" alias="VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT">
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_HOST_BIT" alias="VK_PIPELINE_STAGE_HOST_BIT">
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT" alias="VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT">
+            <syncsupport queues="graphics"/>
+            <syncequivalent stage="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT" alias="VK_PIPELINE_STAGE_ALL_COMMANDS_BIT">
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_COPY_BIT">
+            <syncsupport queues="graphics,compute,transfer"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_RESOLVE_BIT">
+            <syncsupport queues="graphics,compute,transfer"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_BLIT_BIT">
+            <syncsupport queues="graphics,compute,transfer"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_CLEAR_BIT">
+            <syncsupport queues="graphics,compute,transfer"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT">
+            <syncsupport queues="graphics"/>
+            <syncequivalent stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR">
+            <syncsupport queues="decode"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR">
+            <syncsupport queues="encode"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT" alias="VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" alias="VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT">
+            <syncsupport queues="graphics,compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV" alias="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV">
+            <syncsupport queues="graphics,compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" alias="VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR" alias="VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR">
+            <syncsupport queues="compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR">
+            <syncsupport queues="compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT" alias="VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT" alias="VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT" alias="VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR">
+            <syncsupport queues="graphics,compute,transfer"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT">
+            <syncsupport queues="compute"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI">
+            <syncsupport queues="graphics"/>
+        </syncstage>
+        <syncstage name="VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV">
+            <syncsupport queues="opticalflow"/>
+        </syncstage>
+        <syncaccess name="VK_ACCESS_2_NONE" alias="VK_ACCESS_NONE">
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT" alias="VK_ACCESS_INDIRECT_COMMAND_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_INDEX_READ_BIT" alias="VK_ACCESS_INDEX_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT" alias="VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_UNIFORM_READ_BIT" alias="VK_ACCESS_UNIFORM_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT" alias="VK_ACCESS_INPUT_ATTACHMENT_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_READ_BIT" alias="VK_ACCESS_SHADER_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+            <syncequivalent access="VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,VK_ACCESS_2_SHADER_STORAGE_READ_BIT,VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_WRITE_BIT" alias="VK_ACCESS_SHADER_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+            <syncequivalent access="VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT" alias="VK_ACCESS_COLOR_ATTACHMENT_READ_BIT">
+            <comment>Fragment shader stage is added by the VK_EXT_shader_tile_image extension</comment>
+            <syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT" alias="VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT" alias="VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT">
+            <comment>Fragment shader stage is added by the VK_EXT_shader_tile_image extension</comment>
+            <syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT" alias="VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_TRANSFER_READ_BIT" alias="VK_ACCESS_TRANSFER_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_TRANSFER_WRITE_BIT" alias="VK_ACCESS_TRANSFER_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_CLEAR_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_HOST_READ_BIT" alias="VK_ACCESS_HOST_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_HOST_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_HOST_WRITE_BIT" alias="VK_ACCESS_HOST_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_HOST_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_MEMORY_READ_BIT" alias="VK_ACCESS_MEMORY_READ_BIT">
+            <comment>TODO/Suggestion. Introduce 'synclist' (could be a different name) element
+            that specifies the list of stages, accesses, etc. This list can be used by
+            'syncaccess' or 'syncstage' elements. For example, 'syncsupport' in addition to the
+            'stage' attribute can support 'list' attribute to reference 'synclist'.
+            We can have the lists defined for ALL stages and it can be shared between MEMORY_READ
+            and MEMORY_WRITE accesses. Similarly, ALL shader stages list is often used. This proposal
+            is a way to fix duplication problem. When new stage is added multiple places needs to be
+            updated. It is potential source of bugs. The expectation such setup will produce more
+            robust system and also more simple structure to review and validate.
+            </comment>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_MEMORY_WRITE_BIT" alias="VK_ACCESS_MEMORY_WRITE_BIT">
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_SAMPLED_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_STORAGE_READ_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT" alias="VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT" alias="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT" alias="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT" alias="VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV" alias="VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV" alias="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR" alias="VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR" alias="VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR" alias="VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT" alias="VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT" alias="VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_MICROMAP_READ_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"/>
+        </syncaccess>
+        <syncaccess name="VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV">
+            <syncsupport stage="VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"/>
+        </syncaccess>
+        <syncpipeline name="graphics primitive">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</syncpipelinestage>
+            <syncpipelinestage order="None" before="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT">VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</syncpipelinestage>
+            <syncpipelinestage order="None">VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="graphics mesh" depends="VK_NV_mesh_shader,VK_EXT_mesh_shader">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</syncpipelinestage>
+            <syncpipelinestage order="None" before="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT">VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</syncpipelinestage>
+            <syncpipelinestage order="None">VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="compute">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT</syncpipelinestage>
+            <syncpipelinestage order="None">VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="transfer">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_TRANSFER_BIT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="host">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_HOST_BIT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="subpass shading" depends="VK_HUAWEI_subpass_shading">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="command preprocessing" depends="VK_NV_device_generated_commands">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="acceleration structure build" depends="VK_KHR_acceleration_structure,VK_NV_ray_tracing">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="acceleration structure copy" depends="VK_KHR_acceleration_structure,VK_NV_ray_tracing">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="opacity micromap" depends="VK_EXT_opacity_micromap">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="ray tracing" depends="VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</syncpipelinestage>
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="video decode" depends="VK_KHR_video_decode_queue">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="video encode" depends="VK_KHR_video_encode_queue">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</syncpipelinestage>
+        </syncpipeline>
+        <syncpipeline name="optical flow" depends="VK_NV_optical_flow">
+            <syncpipelinestage>VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV</syncpipelinestage>
+        </syncpipeline>
+    </sync>
 </registry>
diff --git a/registry/vkconventions.py b/registry/vkconventions.py
old mode 100644
new mode 100755
index c8ee937..07ccebe
--- a/registry/vkconventions.py
+++ b/registry/vkconventions.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3 -i
 #
-# Copyright 2013-2022 The Khronos Group Inc.
+# Copyright 2013-2024 The Khronos Group Inc.
 #
 # SPDX-License-Identifier: Apache-2.0
 
@@ -50,9 +50,21 @@
         """Preferred spelling of NULL."""
         return '`NULL`'
 
+    def formatVersion(self, name, apivariant, major, minor):
+        """Mark up an API version name as a link in the spec."""
+        version = f'{major}.{minor}'
+        if apivariant == 'VKSC':
+            # Vulkan SC has a different anchor pattern for version appendices
+            if version == '1.0':
+                return 'Vulkan SC 1.0'
+            else:
+                return f'<<versions-sc-{version}, Version SC {version}>>'
+        else:
+            return f'<<versions-{version}, Version {version}>>'
+
     def formatExtension(self, name):
-        """Mark up an extension name as a link the spec."""
-        return '`apiext:{}`'.format(name)
+        """Mark up an extension name as a link in the spec."""
+        return f'apiext:{name}'
 
     @property
     def struct_macro(self):
@@ -108,7 +120,10 @@
         subpats = [
             [ r'_H_(26[45])_',              r'_H\1_' ],
             [ r'_VULKAN_([0-9])([0-9])_',   r'_VULKAN_\1_\2_' ],
+            [ r'_VULKAN_SC_([0-9])([0-9])_',r'_VULKAN_SC_\1_\2_' ],
             [ r'_DIRECT_FB_',               r'_DIRECTFB_' ],
+            [ r'_VULKAN_SC_10',             r'_VULKAN_SC_1_0' ],
+
         ]
 
         for subpat in subpats:
@@ -275,3 +290,21 @@
         """Return any extra text (following the title) for generated
            reference pages."""
         return 'include::{generated}/specattribs.adoc[]'
+
+
+class VulkanSCConventions(VulkanConventions):
+
+    def specURL(self, spectype='api'):
+        """Return public registry URL which ref pages should link to for the
+           current all-extensions HTML specification, so xrefs in the
+           asciidoc source that are not to ref pages can link into it
+           instead. N.b. this may need to change on a per-refpage basis if
+           there are multiple documents involved.
+        """
+        return 'https://registry.khronos.org/vulkansc/specs/1.0-extensions/html/vkspec.html'
+
+    @property
+    def xml_api_name(self):
+        """Return the name used in the default API XML registry for the default API"""
+        return 'vulkansc'
+
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..5a5984b
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,33 @@
+# ~~~
+# Copyright 2022-2023 The Khronos Group Inc.
+# Copyright 2022-2023 Valve Corporation
+# Copyright 2022-2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ~~~
+
+# Test add_subdirectory suppport
+add_test(NAME integration.add_subdirectory
+    COMMAND ${CMAKE_CTEST_COMMAND}
+        --build-and-test ${CMAKE_CURRENT_LIST_DIR}/integration
+                         ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory
+        --build-generator ${CMAKE_GENERATOR}
+        --build-options -DFIND_PACKAGE_TESTING=OFF
+)
+
+set(test_install_dir "${CMAKE_CURRENT_BINARY_DIR}/install")
+add_test(NAME integration.install
+    COMMAND ${CMAKE_COMMAND} --install ${VULKAN_HEADERS_BINARY_DIR} --prefix ${test_install_dir} --config $<CONFIG>
+)
+
+# Test find_package suppport
+add_test(NAME integration.find_package
+    COMMAND ${CMAKE_CTEST_COMMAND}
+        --build-and-test ${CMAKE_CURRENT_LIST_DIR}/integration
+                         ${CMAKE_CURRENT_BINARY_DIR}/find_package
+        --build-generator ${CMAKE_GENERATOR}
+        --build-options -DFIND_PACKAGE_TESTING=ON -DCMAKE_PREFIX_PATH=${test_install_dir}
+)
+
+# Installing comes before testing
+set_tests_properties(integration.find_package PROPERTIES DEPENDS integration.install)
diff --git a/tests/integration/CMakeLists.txt b/tests/integration/CMakeLists.txt
new file mode 100644
index 0000000..6a3388e
--- /dev/null
+++ b/tests/integration/CMakeLists.txt
@@ -0,0 +1,73 @@
+# ~~~
+# Copyright 2022-2023 The Khronos Group Inc.
+# Copyright 2022-2023 Valve Corporation
+# Copyright 2022-2023 LunarG, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ~~~
+cmake_minimum_required(VERSION 3.14.2)
+
+project(API LANGUAGES C)
+
+if (FIND_PACKAGE_TESTING)
+    find_package(VulkanHeaders REQUIRED CONFIG)
+else()
+    add_subdirectory(../../ ${CMAKE_CURRENT_BINARY_DIR}/headers)
+endif()
+
+if (NOT TARGET Vulkan::Headers)
+    message(FATAL_ERROR "Vulkan::Headers target not defined")
+endif()
+
+if (FIND_PACKAGE_TESTING)
+    if (NOT DEFINED VulkanHeaders_VERSION)
+        message(FATAL_ERROR "VulkanHeaders_VERSION not defined!")
+    endif()
+    message(STATUS "VulkanHeaders_VERSION = ${VulkanHeaders_VERSION}")
+endif()
+
+if (NOT FIND_PACKAGE_TESTING)
+    # Consuming vulkan-headers via add_subdirectory should NOT add installation code to the parent CMake project.
+    if (DEFINED CMAKE_INSTALL_INCLUDEDIR)
+        message(FATAL_ERROR "CMAKE_INSTALL_INCLUDEDIR was defined!")
+    endif()
+
+    # NOTE: Some users may not be using the namespace target.
+    # Don't accidentally break them unless we have to.
+    if (NOT TARGET Vulkan-Headers)
+        message(FATAL_ERROR "Backcompat for Vulkan-Headers target broken!")
+    endif()
+endif()
+
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+set(CMAKE_C_EXTENSIONS OFF)
+
+if(${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
+    add_compile_options(
+        -Wpedantic
+        -Wall
+        -Wextra
+        -Werror
+    )
+endif()
+
+if (MSVC)
+    add_compile_options(
+        /W4
+        /permissive-
+        /WX
+    )
+endif()
+
+# Test the non-API headers provided by this repo
+# NOTE: For us testing just means that these header files compile
+# with reasonable warnings.
+
+# vk_icd.h
+add_library(vk_icd MODULE ../vk_icd.c)
+target_link_libraries(vk_icd PRIVATE Vulkan::Headers)
+
+# vk_layer.h
+add_library(vk_layer MODULE ../vk_layer.c)
+target_link_libraries(vk_layer PRIVATE Vulkan::Headers)
diff --git a/tests/vk_icd.c b/tests/vk_icd.c
new file mode 100644
index 0000000..48f5ef8
--- /dev/null
+++ b/tests/vk_icd.c
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2022-2023 The Khronos Group Inc.
+ * Copyright 2022-2023 Valve Corporation
+ * Copyright 2022-2023 LunarG, Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "vulkan/vk_icd.h"
+
+int square(int i)
+{
+    return i * i;
+}
diff --git a/tests/vk_layer.c b/tests/vk_layer.c
new file mode 100644
index 0000000..a87e324
--- /dev/null
+++ b/tests/vk_layer.c
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2022-2023 The Khronos Group Inc.
+ * Copyright 2022-2023 Valve Corporation
+ * Copyright 2022-2023 LunarG, Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "vulkan/vk_layer.h"
+
+int square(int i)
+{
+    return i * i;
+}